ETH Price: $2,390.92 (+0.79%)

Token

Colored Coins (COINS)
 

Overview

Max Total Supply

10,000,000,000 COINS

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
43,992,238.311819306 COINS

Value
$0.00
0x3ec5dcddfc0d7544d5d180e8a809b1f5a08c2583
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:
COINS

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-08
*/

// SPDX-License-Identifier: UNLICENSE

/*

Colored Coins Vitalik Buterins Project before $ETH

https://twitter.com/ColoredCoinsETH/status/1777471737149415633


TG: https://t.me/ColoredCoinsPortal
X: https://twitter.com/ColoredCoinsETH
WEB: coloredcoins.xyz

*/

pragma solidity 0.8.23;

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 COINS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=17;
    uint256 private _initialSellTax=17;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=24;
    uint256 private _reduceSellTaxAt=24;
    uint256 private _preventSwapBefore=24;
    uint256 private _transferTax=85;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000000 * 10**_decimals;
    string private constant _name = unicode"Colored Coins";
    string private constant _symbol = unicode"COINS";
    uint256 public _maxTxAmount = 200000000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 200000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 200000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

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

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

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

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

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

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

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","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":[{"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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601160065560116007555f6008555f6009556018600a556018600b556018600c556055600d555f600e556009600a6200003e919062000601565b630bebc2006200004f919062000651565b600f556009600a62000062919062000601565b630bebc20062000073919062000651565b6010556009600a62000086919062000601565b630bebc20062000097919062000651565b6011556009600a620000aa919062000601565b630bebc200620000bb919062000651565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f60165534801562000106575f80fd5b505f620001186200044160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c46200044160201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000213919062000601565b6402540be40062000225919062000651565b60015f620002386200044160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028a6200044860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b46200044160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000412919062000601565b6402540be40062000424919062000651565b604051620004339190620006ac565b60405180910390a3620006c7565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f957808604811115620004d157620004d06200046f565b5b6001851615620004e15780820291505b8081029050620004f1856200049c565b9450620004b1565b94509492505050565b5f82620005135760019050620005e5565b8162000522575f9050620005e5565b81600181146200053b576002811462000546576200057c565b6001915050620005e5565b60ff8411156200055b576200055a6200046f565b5b8360020a9150848211156200057557620005746200046f565b5b50620005e5565b5060208310610133831016604e8410600b8410161715620005b65782820a905083811115620005b057620005af6200046f565b5b620005e5565b620005c58484846001620004a8565b92509050818404811115620005df57620005de6200046f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060d82620005ec565b91506200061a83620005f5565b9250620006497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000502565b905092915050565b5f6200065d82620005ec565b91506200066a83620005ec565b92508282026200067a81620005ec565b915082820484148315176200069457620006936200046f565b5b5092915050565b620006a681620005ec565b82525050565b5f602082019050620006c15f8301846200069b565b92915050565b61355380620006d55f395ff3fe608060405260043610610143575f3560e01c806370a08231116100b55780638f9a55c01161006e5780638f9a55c0146103f857806395d89b4114610422578063a9059cbb1461044c578063bf474bed14610488578063dd62ed3e146104b2578063ec1f3f63146104ee5761014a565b806370a0823114610326578063715018a614610362578063751039fc146103785780637d1db4a51461038e5780638a8c523c146103b85780638da5cb5b146103ce5761014a565b806318160ddd1161010757806318160ddd1461021c57806323b872dd14610246578063313ce5671461028257806331c2d847146102ac5780633bbac579146102d457806351bc3c85146103105761014a565b8063041f173f1461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc578063109daa99146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612617565b610516565b005b348015610181575f80fd5b5061018a610635565b60405161019791906126d8565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c1919061272b565b610672565b6040516101d39190612783565b60405180910390f35b3480156101e7575f80fd5b506101f061068f565b6040516101fd91906127ab565b60405180910390f35b348015610211575f80fd5b5061021a610695565b005b348015610227575f80fd5b50610230610769565b60405161023d91906127ab565b60405180910390f35b348015610251575f80fd5b5061026c600480360381019061026791906127c4565b61078d565b6040516102799190612783565b60405180910390f35b34801561028d575f80fd5b50610296610861565b6040516102a3919061282f565b60405180910390f35b3480156102b7575f80fd5b506102d260048036038101906102cd9190612617565b610869565b005b3480156102df575f80fd5b506102fa60048036038101906102f59190612848565b610987565b6040516103079190612783565b60405180910390f35b34801561031b575f80fd5b506103246109d9565b005b348015610331575f80fd5b5061034c60048036038101906103479190612848565b610a70565b60405161035991906127ab565b60405180910390f35b34801561036d575f80fd5b50610376610ab6565b005b348015610383575f80fd5b5061038c610c04565b005b348015610399575f80fd5b506103a2610d36565b6040516103af91906127ab565b60405180910390f35b3480156103c3575f80fd5b506103cc610d3c565b005b3480156103d9575f80fd5b506103e261125c565b6040516103ef9190612882565b60405180910390f35b348015610403575f80fd5b5061040c611283565b60405161041991906127ab565b60405180910390f35b34801561042d575f80fd5b50610436611289565b60405161044391906126d8565b60405180910390f35b348015610457575f80fd5b50610472600480360381019061046d919061272b565b6112c6565b60405161047f9190612783565b60405180910390f35b348015610493575f80fd5b5061049c6112e3565b6040516104a991906127ab565b60405180910390f35b3480156104bd575f80fd5b506104d860048036038101906104d3919061289b565b6112e9565b6040516104e591906127ab565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f91906128d9565b61136b565b005b61051e6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a19061294e565b60405180910390fd5b5f5b815181101561063157600160045f8484815181106105cd576105cc61296c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506105ac565b5050565b60606040518060400160405280600d81526020017f436f6c6f72656420436f696e7300000000000000000000000000000000000000815250905090565b5f61068561067e6113f7565b84846113fe565b6001905092915050565b60125481565b61069d6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107209061294e565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161075f91906129db565b60405180910390a1565b5f6009600a6107789190612b50565b6402540be4006107889190612b9a565b905090565b5f6107998484846115c1565b610856846107a56113f7565b610851856040518060600160405280602881526020016134f66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108086113f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f489092919063ffffffff16565b6113fe565b600190509392505050565b5f6009905090565b6108716113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f49061294e565b60405180910390fd5b5f5b8151811015610983575f60045f84848151811061091f5761091e61296c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108ff565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a196113f7565b73ffffffffffffffffffffffffffffffffffffffff1614610a38575f80fd5b5f610a4230610a70565b90505f811115610a5657610a5581611faa565b5b5f4790505f811115610a6c57610a6b81612215565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610abe6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b419061294e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c0c6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f9061294e565b60405180910390fd5b6009600a610ca69190612b50565b6402540be400610cb69190612b9a565b600f819055506009600a610cca9190612b50565b6402540be400610cda9190612b9a565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d0f9190612b50565b6402540be400610d1f9190612b9a565b604051610d2c91906127ab565b60405180910390a1565b600f5481565b610d446113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc79061294e565b60405180910390fd5b60148054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612c25565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ebb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ea69190612b50565b6402540be400610eb69190612b9a565b6113fe565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f499190612c57565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff39190612c57565b6040518363ffffffff1660e01b8152600401611010929190612c82565b6020604051808303815f875af115801561102c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110509190612c57565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110d730610a70565b5f806110e161125c565b426040518863ffffffff1660e01b815260040161110396959493929190612ca9565b60606040518083038185885af115801561111f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111449190612d1c565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111e4929190612d6c565b6020604051808303815f875af1158015611200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112249190612dbd565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f434f494e53000000000000000000000000000000000000000000000000000000815250905090565b5f6112d96112d26113f7565b84846115c1565b6001905092915050565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113ab6113f7565b73ffffffffffffffffffffffffffffffffffffffff16146113ca575f80fd5b60085481111580156113de57506009548111155b6113e6575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390612e58565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190612ee6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b491906127ab565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612f74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490613002565b60405180910390fd5b5f81116116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690613090565b60405180910390fd5b5f6116e861125c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611756575061172661125c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c985760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117f9575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611801575f80fd5b5f600e5403611849576118466064611838600a54600e541161182557600654611829565b6008545b8561227d90919063ffffffff16565b6122f490919063ffffffff16565b90505b5f600e54111561187e5761187b606461186d600d548561227d90919063ffffffff16565b6122f490919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611927575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561197a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a7257600f548211156119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb906130f8565b60405180910390fd5b601054826119d185610a70565b6119db9190613116565b1115611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1390613193565b60405180910390fd5b611a586064611a4a600a54600e5411611a3757600654611a3b565b6008545b8561227d90919063ffffffff16565b6122f490919063ffffffff16565b9050600e5f815480929190611a6c906131b1565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3e57611b3b6064611b2d600b54600e5411611b1a57600754611b1e565b6009545b8561227d90919063ffffffff16565b6122f490919063ffffffff16565b90505b5f611b4830610a70565b9050601460159054906101000a900460ff16158015611bb3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bcb5750601460169054906101000a900460ff165b8015611bd8575060115481115b8015611be75750600c54600e54115b15611c9657601654431115611bfe575f6015819055505b600360155410611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613242565b60405180910390fd5b611c60611c5b84611c568460125461233d565b61233d565b611faa565b5f4790505f811115611c7657611c7547612215565b5b60155f815480929190611c88906131b1565b919050555043601681905550505b505b5f811115611d9757611cf08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d8e91906127ab565b60405180910390a35b611de78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123b290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e8a611e3e82846123b290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f2d84866123b290919063ffffffff16565b604051611f3a91906127ab565b60405180910390a350505050565b5f838311158290611f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8691906126d8565b60405180910390fd5b505f8385611f9d9190613260565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fe157611fe0612481565b5b60405190808252806020026020018201604052801561200f5781602001602082028036833780820191505090505b50905030815f815181106120265761202561296c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ee9190612c57565b816001815181106121025761210161296c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121683060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113fe565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121ca95949392919061334a565b5f604051808303815f87803b1580156121e1575f80fd5b505af11580156121f3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612279573d5f803e3d5ffd5b5050565b5f80830361228d575f90506122ee565b5f828461229a9190612b9a565b90508284826122a991906133cf565b146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e09061346f565b60405180910390fd5b809150505b92915050565b5f61233583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123fb565b905092915050565b5f81831161234b578261234d565b815b905092915050565b5f8082846123639190613116565b9050838110156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f906134d7565b60405180910390fd5b8091505092915050565b5f6123f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f48565b905092915050565b5f8083118290612441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243891906126d8565b60405180910390fd5b505f838561244f91906133cf565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6124b782612471565b810181811067ffffffffffffffff821117156124d6576124d5612481565b5b80604052505050565b5f6124e861245c565b90506124f482826124ae565b919050565b5f67ffffffffffffffff82111561251357612512612481565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255182612528565b9050919050565b61256181612547565b811461256b575f80fd5b50565b5f8135905061257c81612558565b92915050565b5f61259461258f846124f9565b6124df565b905080838252602082019050602084028301858111156125b7576125b6612524565b5b835b818110156125e057806125cc888261256e565b8452602084019350506020810190506125b9565b5050509392505050565b5f82601f8301126125fe576125fd61246d565b5b813561260e848260208601612582565b91505092915050565b5f6020828403121561262c5761262b612465565b5b5f82013567ffffffffffffffff81111561264957612648612469565b5b612655848285016125ea565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269557808201518184015260208101905061267a565b5f8484015250505050565b5f6126aa8261265e565b6126b48185612668565b93506126c4818560208601612678565b6126cd81612471565b840191505092915050565b5f6020820190508181035f8301526126f081846126a0565b905092915050565b5f819050919050565b61270a816126f8565b8114612714575f80fd5b50565b5f8135905061272581612701565b92915050565b5f806040838503121561274157612740612465565b5b5f61274e8582860161256e565b925050602061275f85828601612717565b9150509250929050565b5f8115159050919050565b61277d81612769565b82525050565b5f6020820190506127965f830184612774565b92915050565b6127a5816126f8565b82525050565b5f6020820190506127be5f83018461279c565b92915050565b5f805f606084860312156127db576127da612465565b5b5f6127e88682870161256e565b93505060206127f98682870161256e565b925050604061280a86828701612717565b9150509250925092565b5f60ff82169050919050565b61282981612814565b82525050565b5f6020820190506128425f830184612820565b92915050565b5f6020828403121561285d5761285c612465565b5b5f61286a8482850161256e565b91505092915050565b61287c81612547565b82525050565b5f6020820190506128955f830184612873565b92915050565b5f80604083850312156128b1576128b0612465565b5b5f6128be8582860161256e565b92505060206128cf8582860161256e565b9150509250929050565b5f602082840312156128ee576128ed612465565b5b5f6128fb84828501612717565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612938602083612668565b915061294382612904565b602082019050919050565b5f6020820190508181035f8301526129658161292c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6129c56129c06129bb84612999565b6129a2565b6126f8565b9050919050565b6129d5816129ab565b82525050565b5f6020820190506129ee5f8301846129cc565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a7657808604811115612a5257612a516129f4565b5b6001851615612a615780820291505b8081029050612a6f85612a21565b9450612a36565b94509492505050565b5f82612a8e5760019050612b49565b81612a9b575f9050612b49565b8160018114612ab15760028114612abb57612aea565b6001915050612b49565b60ff841115612acd57612acc6129f4565b5b8360020a915084821115612ae457612ae36129f4565b5b50612b49565b5060208310610133831016604e8410600b8410161715612b1f5782820a905083811115612b1a57612b196129f4565b5b612b49565b612b2c8484846001612a2d565b92509050818404811115612b4357612b426129f4565b5b81810290505b9392505050565b5f612b5a826126f8565b9150612b6583612814565b9250612b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a7f565b905092915050565b5f612ba4826126f8565b9150612baf836126f8565b9250828202612bbd816126f8565b91508282048414831517612bd457612bd36129f4565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c0f601783612668565b9150612c1a82612bdb565b602082019050919050565b5f6020820190508181035f830152612c3c81612c03565b9050919050565b5f81519050612c5181612558565b92915050565b5f60208284031215612c6c57612c6b612465565b5b5f612c7984828501612c43565b91505092915050565b5f604082019050612c955f830185612873565b612ca26020830184612873565b9392505050565b5f60c082019050612cbc5f830189612873565b612cc9602083018861279c565b612cd660408301876129cc565b612ce360608301866129cc565b612cf06080830185612873565b612cfd60a083018461279c565b979650505050505050565b5f81519050612d1681612701565b92915050565b5f805f60608486031215612d3357612d32612465565b5b5f612d4086828701612d08565b9350506020612d5186828701612d08565b9250506040612d6286828701612d08565b9150509250925092565b5f604082019050612d7f5f830185612873565b612d8c602083018461279c565b9392505050565b612d9c81612769565b8114612da6575f80fd5b50565b5f81519050612db781612d93565b92915050565b5f60208284031215612dd257612dd1612465565b5b5f612ddf84828501612da9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e42602483612668565b9150612e4d82612de8565b604082019050919050565b5f6020820190508181035f830152612e6f81612e36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ed0602283612668565b9150612edb82612e76565b604082019050919050565b5f6020820190508181035f830152612efd81612ec4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f5e602583612668565b9150612f6982612f04565b604082019050919050565b5f6020820190508181035f830152612f8b81612f52565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fec602383612668565b9150612ff782612f92565b604082019050919050565b5f6020820190508181035f83015261301981612fe0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61307a602983612668565b915061308582613020565b604082019050919050565b5f6020820190508181035f8301526130a78161306e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130e2601983612668565b91506130ed826130ae565b602082019050919050565b5f6020820190508181035f83015261310f816130d6565b9050919050565b5f613120826126f8565b915061312b836126f8565b9250828201905080821115613143576131426129f4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61317d601a83612668565b915061318882613149565b602082019050919050565b5f6020820190508181035f8301526131aa81613171565b9050919050565b5f6131bb826126f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131ed576131ec6129f4565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61322c601783612668565b9150613237826131f8565b602082019050919050565b5f6020820190508181035f83015261325981613220565b9050919050565b5f61326a826126f8565b9150613275836126f8565b925082820390508181111561328d5761328c6129f4565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132c581612547565b82525050565b5f6132d683836132bc565b60208301905092915050565b5f602082019050919050565b5f6132f882613293565b613302818561329d565b935061330d836132ad565b805f5b8381101561333d57815161332488826132cb565b975061332f836132e2565b925050600181019050613310565b5085935050505092915050565b5f60a08201905061335d5f83018861279c565b61336a60208301876129cc565b818103604083015261337c81866132ee565b905061338b6060830185612873565b613398608083018461279c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133d9826126f8565b91506133e4836126f8565b9250826133f4576133f36133a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613459602183612668565b9150613464826133ff565b604082019050919050565b5f6020820190508181035f8301526134868161344d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134c1601b83612668565b91506134cc8261348d565b602082019050919050565b5f6020820190508181035f8301526134ee816134b5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d574e33ce5fa5521612e08bff66ec22d5581c69eb368cbfaf20a05f85279b31a64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610143575f3560e01c806370a08231116100b55780638f9a55c01161006e5780638f9a55c0146103f857806395d89b4114610422578063a9059cbb1461044c578063bf474bed14610488578063dd62ed3e146104b2578063ec1f3f63146104ee5761014a565b806370a0823114610326578063715018a614610362578063751039fc146103785780637d1db4a51461038e5780638a8c523c146103b85780638da5cb5b146103ce5761014a565b806318160ddd1161010757806318160ddd1461021c57806323b872dd14610246578063313ce5671461028257806331c2d847146102ac5780633bbac579146102d457806351bc3c85146103105761014a565b8063041f173f1461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc578063109daa99146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612617565b610516565b005b348015610181575f80fd5b5061018a610635565b60405161019791906126d8565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c1919061272b565b610672565b6040516101d39190612783565b60405180910390f35b3480156101e7575f80fd5b506101f061068f565b6040516101fd91906127ab565b60405180910390f35b348015610211575f80fd5b5061021a610695565b005b348015610227575f80fd5b50610230610769565b60405161023d91906127ab565b60405180910390f35b348015610251575f80fd5b5061026c600480360381019061026791906127c4565b61078d565b6040516102799190612783565b60405180910390f35b34801561028d575f80fd5b50610296610861565b6040516102a3919061282f565b60405180910390f35b3480156102b7575f80fd5b506102d260048036038101906102cd9190612617565b610869565b005b3480156102df575f80fd5b506102fa60048036038101906102f59190612848565b610987565b6040516103079190612783565b60405180910390f35b34801561031b575f80fd5b506103246109d9565b005b348015610331575f80fd5b5061034c60048036038101906103479190612848565b610a70565b60405161035991906127ab565b60405180910390f35b34801561036d575f80fd5b50610376610ab6565b005b348015610383575f80fd5b5061038c610c04565b005b348015610399575f80fd5b506103a2610d36565b6040516103af91906127ab565b60405180910390f35b3480156103c3575f80fd5b506103cc610d3c565b005b3480156103d9575f80fd5b506103e261125c565b6040516103ef9190612882565b60405180910390f35b348015610403575f80fd5b5061040c611283565b60405161041991906127ab565b60405180910390f35b34801561042d575f80fd5b50610436611289565b60405161044391906126d8565b60405180910390f35b348015610457575f80fd5b50610472600480360381019061046d919061272b565b6112c6565b60405161047f9190612783565b60405180910390f35b348015610493575f80fd5b5061049c6112e3565b6040516104a991906127ab565b60405180910390f35b3480156104bd575f80fd5b506104d860048036038101906104d3919061289b565b6112e9565b6040516104e591906127ab565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f91906128d9565b61136b565b005b61051e6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a19061294e565b60405180910390fd5b5f5b815181101561063157600160045f8484815181106105cd576105cc61296c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506105ac565b5050565b60606040518060400160405280600d81526020017f436f6c6f72656420436f696e7300000000000000000000000000000000000000815250905090565b5f61068561067e6113f7565b84846113fe565b6001905092915050565b60125481565b61069d6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610729576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107209061294e565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161075f91906129db565b60405180910390a1565b5f6009600a6107789190612b50565b6402540be4006107889190612b9a565b905090565b5f6107998484846115c1565b610856846107a56113f7565b610851856040518060600160405280602881526020016134f66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108086113f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f489092919063ffffffff16565b6113fe565b600190509392505050565b5f6009905090565b6108716113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f49061294e565b60405180910390fd5b5f5b8151811015610983575f60045f84848151811061091f5761091e61296c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108ff565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a196113f7565b73ffffffffffffffffffffffffffffffffffffffff1614610a38575f80fd5b5f610a4230610a70565b90505f811115610a5657610a5581611faa565b5b5f4790505f811115610a6c57610a6b81612215565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610abe6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b419061294e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c0c6113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f9061294e565b60405180910390fd5b6009600a610ca69190612b50565b6402540be400610cb69190612b9a565b600f819055506009600a610cca9190612b50565b6402540be400610cda9190612b9a565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d0f9190612b50565b6402540be400610d1f9190612b9a565b604051610d2c91906127ab565b60405180910390a1565b600f5481565b610d446113f7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc79061294e565b60405180910390fd5b60148054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612c25565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ebb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ea69190612b50565b6402540be400610eb69190612b9a565b6113fe565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f499190612c57565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff39190612c57565b6040518363ffffffff1660e01b8152600401611010929190612c82565b6020604051808303815f875af115801561102c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110509190612c57565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110d730610a70565b5f806110e161125c565b426040518863ffffffff1660e01b815260040161110396959493929190612ca9565b60606040518083038185885af115801561111f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111449190612d1c565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111e4929190612d6c565b6020604051808303815f875af1158015611200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112249190612dbd565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f434f494e53000000000000000000000000000000000000000000000000000000815250905090565b5f6112d96112d26113f7565b84846115c1565b6001905092915050565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113ab6113f7565b73ffffffffffffffffffffffffffffffffffffffff16146113ca575f80fd5b60085481111580156113de57506009548111155b6113e6575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390612e58565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190612ee6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b491906127ab565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612f74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490613002565b60405180910390fd5b5f81116116df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d690613090565b60405180910390fd5b5f6116e861125c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611756575061172661125c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c985760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117f9575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611801575f80fd5b5f600e5403611849576118466064611838600a54600e541161182557600654611829565b6008545b8561227d90919063ffffffff16565b6122f490919063ffffffff16565b90505b5f600e54111561187e5761187b606461186d600d548561227d90919063ffffffff16565b6122f490919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611927575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561197a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a7257600f548211156119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb906130f8565b60405180910390fd5b601054826119d185610a70565b6119db9190613116565b1115611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1390613193565b60405180910390fd5b611a586064611a4a600a54600e5411611a3757600654611a3b565b6008545b8561227d90919063ffffffff16565b6122f490919063ffffffff16565b9050600e5f815480929190611a6c906131b1565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3e57611b3b6064611b2d600b54600e5411611b1a57600754611b1e565b6009545b8561227d90919063ffffffff16565b6122f490919063ffffffff16565b90505b5f611b4830610a70565b9050601460159054906101000a900460ff16158015611bb3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bcb5750601460169054906101000a900460ff165b8015611bd8575060115481115b8015611be75750600c54600e54115b15611c9657601654431115611bfe575f6015819055505b600360155410611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613242565b60405180910390fd5b611c60611c5b84611c568460125461233d565b61233d565b611faa565b5f4790505f811115611c7657611c7547612215565b5b60155f815480929190611c88906131b1565b919050555043601681905550505b505b5f811115611d9757611cf08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d8e91906127ab565b60405180910390a35b611de78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123b290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e8a611e3e82846123b290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f2d84866123b290919063ffffffff16565b604051611f3a91906127ab565b60405180910390a350505050565b5f838311158290611f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8691906126d8565b60405180910390fd5b505f8385611f9d9190613260565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fe157611fe0612481565b5b60405190808252806020026020018201604052801561200f5781602001602082028036833780820191505090505b50905030815f815181106120265761202561296c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ee9190612c57565b816001815181106121025761210161296c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121683060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113fe565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121ca95949392919061334a565b5f604051808303815f87803b1580156121e1575f80fd5b505af11580156121f3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612279573d5f803e3d5ffd5b5050565b5f80830361228d575f90506122ee565b5f828461229a9190612b9a565b90508284826122a991906133cf565b146122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e09061346f565b60405180910390fd5b809150505b92915050565b5f61233583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123fb565b905092915050565b5f81831161234b578261234d565b815b905092915050565b5f8082846123639190613116565b9050838110156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f906134d7565b60405180910390fd5b8091505092915050565b5f6123f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f48565b905092915050565b5f8083118290612441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243891906126d8565b60405180910390fd5b505f838561244f91906133cf565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6124b782612471565b810181811067ffffffffffffffff821117156124d6576124d5612481565b5b80604052505050565b5f6124e861245c565b90506124f482826124ae565b919050565b5f67ffffffffffffffff82111561251357612512612481565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255182612528565b9050919050565b61256181612547565b811461256b575f80fd5b50565b5f8135905061257c81612558565b92915050565b5f61259461258f846124f9565b6124df565b905080838252602082019050602084028301858111156125b7576125b6612524565b5b835b818110156125e057806125cc888261256e565b8452602084019350506020810190506125b9565b5050509392505050565b5f82601f8301126125fe576125fd61246d565b5b813561260e848260208601612582565b91505092915050565b5f6020828403121561262c5761262b612465565b5b5f82013567ffffffffffffffff81111561264957612648612469565b5b612655848285016125ea565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269557808201518184015260208101905061267a565b5f8484015250505050565b5f6126aa8261265e565b6126b48185612668565b93506126c4818560208601612678565b6126cd81612471565b840191505092915050565b5f6020820190508181035f8301526126f081846126a0565b905092915050565b5f819050919050565b61270a816126f8565b8114612714575f80fd5b50565b5f8135905061272581612701565b92915050565b5f806040838503121561274157612740612465565b5b5f61274e8582860161256e565b925050602061275f85828601612717565b9150509250929050565b5f8115159050919050565b61277d81612769565b82525050565b5f6020820190506127965f830184612774565b92915050565b6127a5816126f8565b82525050565b5f6020820190506127be5f83018461279c565b92915050565b5f805f606084860312156127db576127da612465565b5b5f6127e88682870161256e565b93505060206127f98682870161256e565b925050604061280a86828701612717565b9150509250925092565b5f60ff82169050919050565b61282981612814565b82525050565b5f6020820190506128425f830184612820565b92915050565b5f6020828403121561285d5761285c612465565b5b5f61286a8482850161256e565b91505092915050565b61287c81612547565b82525050565b5f6020820190506128955f830184612873565b92915050565b5f80604083850312156128b1576128b0612465565b5b5f6128be8582860161256e565b92505060206128cf8582860161256e565b9150509250929050565b5f602082840312156128ee576128ed612465565b5b5f6128fb84828501612717565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612938602083612668565b915061294382612904565b602082019050919050565b5f6020820190508181035f8301526129658161292c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f6129c56129c06129bb84612999565b6129a2565b6126f8565b9050919050565b6129d5816129ab565b82525050565b5f6020820190506129ee5f8301846129cc565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a7657808604811115612a5257612a516129f4565b5b6001851615612a615780820291505b8081029050612a6f85612a21565b9450612a36565b94509492505050565b5f82612a8e5760019050612b49565b81612a9b575f9050612b49565b8160018114612ab15760028114612abb57612aea565b6001915050612b49565b60ff841115612acd57612acc6129f4565b5b8360020a915084821115612ae457612ae36129f4565b5b50612b49565b5060208310610133831016604e8410600b8410161715612b1f5782820a905083811115612b1a57612b196129f4565b5b612b49565b612b2c8484846001612a2d565b92509050818404811115612b4357612b426129f4565b5b81810290505b9392505050565b5f612b5a826126f8565b9150612b6583612814565b9250612b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a7f565b905092915050565b5f612ba4826126f8565b9150612baf836126f8565b9250828202612bbd816126f8565b91508282048414831517612bd457612bd36129f4565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c0f601783612668565b9150612c1a82612bdb565b602082019050919050565b5f6020820190508181035f830152612c3c81612c03565b9050919050565b5f81519050612c5181612558565b92915050565b5f60208284031215612c6c57612c6b612465565b5b5f612c7984828501612c43565b91505092915050565b5f604082019050612c955f830185612873565b612ca26020830184612873565b9392505050565b5f60c082019050612cbc5f830189612873565b612cc9602083018861279c565b612cd660408301876129cc565b612ce360608301866129cc565b612cf06080830185612873565b612cfd60a083018461279c565b979650505050505050565b5f81519050612d1681612701565b92915050565b5f805f60608486031215612d3357612d32612465565b5b5f612d4086828701612d08565b9350506020612d5186828701612d08565b9250506040612d6286828701612d08565b9150509250925092565b5f604082019050612d7f5f830185612873565b612d8c602083018461279c565b9392505050565b612d9c81612769565b8114612da6575f80fd5b50565b5f81519050612db781612d93565b92915050565b5f60208284031215612dd257612dd1612465565b5b5f612ddf84828501612da9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e42602483612668565b9150612e4d82612de8565b604082019050919050565b5f6020820190508181035f830152612e6f81612e36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ed0602283612668565b9150612edb82612e76565b604082019050919050565b5f6020820190508181035f830152612efd81612ec4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f5e602583612668565b9150612f6982612f04565b604082019050919050565b5f6020820190508181035f830152612f8b81612f52565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fec602383612668565b9150612ff782612f92565b604082019050919050565b5f6020820190508181035f83015261301981612fe0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61307a602983612668565b915061308582613020565b604082019050919050565b5f6020820190508181035f8301526130a78161306e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130e2601983612668565b91506130ed826130ae565b602082019050919050565b5f6020820190508181035f83015261310f816130d6565b9050919050565b5f613120826126f8565b915061312b836126f8565b9250828201905080821115613143576131426129f4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61317d601a83612668565b915061318882613149565b602082019050919050565b5f6020820190508181035f8301526131aa81613171565b9050919050565b5f6131bb826126f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131ed576131ec6129f4565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61322c601783612668565b9150613237826131f8565b602082019050919050565b5f6020820190508181035f83015261325981613220565b9050919050565b5f61326a826126f8565b9150613275836126f8565b925082820390508181111561328d5761328c6129f4565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132c581612547565b82525050565b5f6132d683836132bc565b60208301905092915050565b5f602082019050919050565b5f6132f882613293565b613302818561329d565b935061330d836132ad565b805f5b8381101561333d57815161332488826132cb565b975061332f836132e2565b925050600181019050613310565b5085935050505092915050565b5f60a08201905061335d5f83018861279c565b61336a60208301876129cc565b818103604083015261337c81866132ee565b905061338b6060830185612873565b613398608083018461279c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133d9826126f8565b91506133e4836126f8565b9250826133f4576133f36133a2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613459602183612668565b9150613464826133ff565b604082019050919050565b5f6020820190508181035f8301526134868161344d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134c1601b83612668565b91506134cc8261348d565b602082019050919050565b5f6020820190508181035f8301526134ee816134b5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d574e33ce5fa5521612e08bff66ec22d5581c69eb368cbfaf20a05f85279b31a64736f6c63430008170033

Deployed Bytecode Sourcemap

3715:8833:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10812:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5697:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6530:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4851:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10585:119;;;;;;;;;;;;;:::i;:::-;;5974:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6699:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5883:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10986:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11156:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12197:348;;;;;;;;;;;;;:::i;:::-;;6077:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2796:148;;;;;;;;;;;;;:::i;:::-;;10418:159;;;;;;;;;;;;;:::i;:::-;;4659:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11247:673;;;;;;;;;;;;;:::i;:::-;;2582:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4721:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5788:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6204:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4785:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6379:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11934:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10812:166;2719:12;:10;:12::i;:::-;2709:22;;:6;;;;;;;;;;:22;;;2701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10888:6:::1;10883:88;10904:5;:12;10900:1;:16;10883:88;;;10955:4;10938;:14;10943:5;10949:1;10943:8;;;;;;;;:::i;:::-;;;;;;;;10938:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10918:3;;;;;;;10883:88;;;;10812:166:::0;:::o;5697:83::-;5734:13;5767:5;;;;;;;;;;;;;;;;;5760:12;;5697:83;:::o;6530:161::-;6605:4;6622:39;6631:12;:10;:12::i;:::-;6645:7;6654:6;6622:8;:39::i;:::-;6679:4;6672:11;;6530:161;;;;:::o;4851:53::-;;;;:::o;10585:119::-;2719:12;:10;:12::i;:::-;2709:22;;:6;;;;;;;;;;:22;;;2701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10658:1:::1;10643:12;:16;;;;10675:21;10694:1;10675:21;;;;;;:::i;:::-;;;;;;;;10585:119::o:0;5974:95::-;6027:7;4466:1;4523:2;:13;;;;:::i;:::-;4509:11;:27;;;;:::i;:::-;6047:14;;5974:95;:::o;6699:313::-;6797:4;6814:36;6824:6;6832:9;6843:6;6814:9;:36::i;:::-;6861:121;6870:6;6878:12;:10;:12::i;:::-;6892:89;6930:6;6892:89;;;;;;;;;;;;;;;;;:11;:19;6904:6;6892:19;;;;;;;;;;;;;;;:33;6912:12;:10;:12::i;:::-;6892:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6861:8;:121::i;:::-;7000:4;6993:11;;6699:313;;;;;:::o;5883:83::-;5924:5;4466:1;5942:16;;5883:83;:::o;10986:162::-;2719:12;:10;:12::i;:::-;2709:22;;:6;;;;;;;;;;:22;;;2701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11059:6:::1;11054:87;11075:6;:13;11071:1;:17;11054:87;;;11126:5;11108:4;:15;11113:6;11120:1;11113:9;;;;;;;;:::i;:::-;;;;;;;;11108:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11090:3;;;;;;;11054:87;;;;10986:162:::0;:::o;11156:83::-;11203:4;11224;:7;11229:1;11224:7;;;;;;;;;;;;;;;;;;;;;;;;;11217:14;;11156:83;;;:::o;12197:348::-;12261:10;;;;;;;;;;;12247:24;;:12;:10;:12::i;:::-;:24;;;12239:33;;;;;;12283:20;12304:24;12322:4;12304:9;:24::i;:::-;12283:45;;12355:1;12342:12;:14;12339:73;;;12370:30;12387:12;12370:16;:30::i;:::-;12339:73;12422:18;12441:21;12422:40;;12487:1;12476:10;:12;12473:65;;;12502:24;12515:10;12502:12;:24::i;:::-;12473:65;12228:317;;12197:348::o;6077:119::-;6143:7;6170:9;:18;6180:7;6170:18;;;;;;;;;;;;;;;;6163:25;;6077:119;;;:::o;2796:148::-;2719:12;:10;:12::i;:::-;2709:22;;:6;;;;;;;;;;:22;;;2701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2903:1:::1;2866:40;;2887:6;::::0;::::1;;;;;;;;2866:40;;;;;;;;;;;;2934:1;2917:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2796:148::o:0;10418:159::-;2719:12;:10;:12::i;:::-;2709:22;;:6;;;;;;;;;;:22;;;2701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4466:1:::1;4523:2;:13;;;;:::i;:::-;4509:11;:27;;;;:::i;:::-;10471:12;:22;;;;4466:1;4523:2;:13;;;;:::i;:::-;4509:11;:27;;;;:::i;:::-;10504:14;:22;;;;10542:27;4466:1;4523:2;:13;;;;:::i;:::-;4509:11;:27;;;;:::i;:::-;10542;;;;;;:::i;:::-;;;;;;;;10418:159::o:0;4659:55::-;;;;:::o;11247:673::-;2719:12;:10;:12::i;:::-;2709:22;;:6;;;;;;;;;;:22;;;2701:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11313:11:::1;::::0;::::1;;;;;;;;11312:12;11304:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11399:42;11362:15;;:80;;;;;;;;;;;;;;;;;;11453:58;11470:4;11485:15;;;;;;;;;;;4466:1;4523:2;:13;;;;:::i;:::-;4509:11;:27;;;;:::i;:::-;11453:8;:58::i;:::-;11556:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11538:55;;;11602:4;11609:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11538:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11522:13;;:110;;;;;;;;;;;;;;;;;;11643:15;;;;;;;;;;;:31;;;11682:21;11713:4;11719:24;11737:4;11719:9;:24::i;:::-;11744:1;11746::::0;11748:7:::1;:5;:7::i;:::-;11756:15;11643:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11790:13;;;;;;;;;;;11783:29;;;11821:15;;;;;;;;;;;11839:14;11783:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11879:4;11865:11;;:18;;;;;;;;;;;;;;;;;;11908:4;11894:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11247:673::o:0;2582:79::-;2620:7;2647:6;;;;;;;;;;;2640:13;;2582:79;:::o;4721:57::-;;;;:::o;5788:87::-;5827:13;5860:7;;;;;;;;;;;;;;;;;5853:14;;5788:87;:::o;6204:167::-;6282:4;6299:42;6309:12;:10;:12::i;:::-;6323:9;6334:6;6299:9;:42::i;:::-;6359:4;6352:11;;6204:167;;;;:::o;4785:59::-;;;;:::o;6379:143::-;6460:7;6487:11;:18;6499:5;6487:18;;;;;;;;;;;;;;;:27;6506:7;6487:27;;;;;;;;;;;;;;;;6480:34;;6379:143;;;;:::o;11934:218::-;12009:10;;;;;;;;;;;11995:24;;:12;:10;:12::i;:::-;:24;;;11987:33;;;;;;12046:12;;12037:7;:21;;:47;;;;;12071:13;;12062:7;:22;;12037:47;12029:56;;;;;;12107:7;12094:12;:20;;;;12137:7;12123:13;:21;;;;11934:218;:::o;337:98::-;390:7;417:10;410:17;;337:98;:::o;7020:335::-;7130:1;7113:19;;:5;:19;;;7105:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7211:1;7192:21;;:7;:21;;;7184:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7293:6;7263:11;:18;7275:5;7263:18;;;;;;;;;;;;;;;:27;7282:7;7263:27;;;;;;;;;;;;;;;:36;;;;7331:7;7315:32;;7324:5;7315:32;;;7340:6;7315:32;;;;;;:::i;:::-;;;;;;;;7020:335;;;:::o;7363:2448::-;7467:1;7451:18;;:4;:18;;;7443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7544:1;7530:16;;:2;:16;;;7522:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7614:1;7605:6;:10;7597:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7672:17;7714:7;:5;:7::i;:::-;7706:15;;:4;:15;;;;:32;;;;;7731:7;:5;:7::i;:::-;7725:13;;:2;:13;;;;7706:32;7702:1753;;;7764:4;:10;7769:4;7764:10;;;;;;;;;;;;;;;;;;;;;;;;;7763:11;:24;;;;;7779:4;:8;7784:2;7779:8;;;;;;;;;;;;;;;;;;;;;;;;;7778:9;7763:24;7755:33;;;;;;7819:1;7808:9;;:12;7805:139;;7852:76;7924:3;7852:67;7874:15;;7864:9;;:25;7863:55;;7904:14;;7863:55;;;7891:12;;7863:55;7852:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7840:88;;7805:139;7971:1;7961:9;;:11;7958:95;;;8004:33;8033:3;8004:24;8015:12;;8004:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7992:45;;7958:95;8081:13;;;;;;;;;;;8073:21;;:4;:21;;;:55;;;;;8112:15;;;;;;;;;;;8098:30;;:2;:30;;;;8073:55;:83;;;;;8134:18;:22;8153:2;8134:22;;;;;;;;;;;;;;;;;;;;;;;;;8132:24;8073:83;8069:420;;;8196:12;;8186:6;:22;;8178:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8291:14;;8281:6;8265:13;8275:2;8265:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8257:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8367:76;8439:3;8367:67;8389:15;;8379:9;;:25;8378:55;;8419:14;;8378:55;;;8406:12;;8378:55;8367:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8355:88;;8462:9;;:11;;;;;;;;;:::i;:::-;;;;;;8069:420;8514:13;;;;;;;;;;;8508:19;;:2;:19;;;:43;;;;;8546:4;8531:20;;:4;:20;;;;8508:43;8505:174;;;8584:79;8659:3;8584:70;8606:16;;8596:9;;:26;8595:58;;8638:15;;8595:58;;;8624:13;;8595:58;8584:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8572:91;;8505:174;8695:28;8726:24;8744:4;8726:9;:24::i;:::-;8695:55;;8770:6;;;;;;;;;;;8769:7;:30;;;;;8786:13;;;;;;;;;;;8780:19;;:2;:19;;;8769:30;:45;;;;;8803:11;;;;;;;;;;;8769:45;:89;;;;;8841:17;;8818:20;:40;8769:89;:123;;;;;8874:18;;8862:9;;:30;8769:123;8765:679;;;8932:13;;8917:12;:28;8913:90;;;8982:1;8970:9;:13;;;;8913:90;9041:1;9029:9;;:13;9021:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9089:69;9106:51;9110:6;9118:38;9122:20;9144:11;;9118:3;:38::i;:::-;9106:3;:51::i;:::-;9089:16;:69::i;:::-;9177:26;9206:21;9177:50;;9271:1;9250:18;:22;9246:106;;;9297:35;9310:21;9297:12;:35::i;:::-;9246:106;9370:9;;:11;;;;;;;;;:::i;:::-;;;;;;9416:12;9400:13;:28;;;;8894:550;8765:679;7740:1715;7702:1753;9480:1;9470:9;:11;9467:161;;;9520:39;9549:9;9520;:24;9538:4;9520:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9495:9;:24;9513:4;9495:24;;;;;;;;;;;;;;;:64;;;;9600:4;9577:39;;9586:4;9577:39;;;9606:9;9577:39;;;;;;:::i;:::-;;;;;;;;9467:161;9654:27;9674:6;9654:9;:15;9664:4;9654:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9638:9;:15;9648:4;9638:15;;;;;;;;;;;;;;;:43;;;;9706:40;9724:21;9735:9;9724:6;:10;;:21;;;;:::i;:::-;9706:9;:13;9716:2;9706:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9692:9;:13;9702:2;9692:13;;;;;;;;;;;;;;;:54;;;;9777:2;9762:41;;9771:4;9762:41;;;9781:21;9792:9;9781:6;:10;;:21;;;;:::i;:::-;9762:41;;;;;;:::i;:::-;;;;;;;;7432:2379;7363:2448;;;:::o;1474:190::-;1560:7;1593:1;1588;:6;;1596:12;1580:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1620:9;1636:1;1632;:5;;;;:::i;:::-;1620:17;;1655:1;1648:8;;;1474:190;;;;;:::o;9927:483::-;5315:4;5306:6;;:13;;;;;;;;;;;;;;;;;;10005:21:::1;10043:1;10029:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10005:40;;10074:4;10056;10061:1;10056:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10100:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10090:4;10095:1;10090:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10133:62;10150:4;10165:15;;;;;;;;;;;10183:11;10133:8;:62::i;:::-;10206:15;;;;;;;;;;;:66;;;10287:11;10313:1;10329:4;10356;10376:15;10206:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9994:416;5351:5:::0;5342:6;;:14;;;;;;;;;;;;;;;;;;9927:483;:::o;10712:92::-;10769:10;;;;;;;;;;;:19;;:27;10789:6;10769:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10712:92;:::o;1672:246::-;1730:7;1759:1;1754;:6;1750:47;;1784:1;1777:8;;;;1750:47;1807:9;1823:1;1819;:5;;;;:::i;:::-;1807:17;;1852:1;1847;1843;:5;;;;:::i;:::-;:10;1835:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1909:1;1902:8;;;1672:246;;;;;:::o;1926:132::-;1984:7;2011:39;2015:1;2018;2011:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2004:46;;1926:132;;;;:::o;9821:98::-;9878:7;9905:1;9903;:3;9902:9;;9910:1;9902:9;;;9908:1;9902:9;9895:16;;9821:98;;;;:::o;1143:179::-;1201:7;1221:9;1237:1;1233;:5;;;;:::i;:::-;1221:17;;1262:1;1257;:6;;1249:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1313:1;1306:8;;;1143:179;;;;:::o;1330:136::-;1388:7;1415:43;1419:1;1422;1415:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1408:50;;1330:136;;;;:::o;2066:189::-;2152:7;2184:1;2180;:5;2187:12;2172:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2211:9;2227:1;2223;:5;;;;:::i;:::-;2211:17;;2246:1;2239:8;;;2066:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:118::-;6375:24;6393:5;6375:24;:::i;:::-;6370:3;6363:37;6288:118;;:::o;6412:222::-;6505:4;6543:2;6532:9;6528:18;6520:26;;6556:71;6624:1;6613:9;6609:17;6600:6;6556:71;:::i;:::-;6412:222;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:182::-;9337:34;9333:1;9325:6;9321:14;9314:58;9197:182;:::o;9385:366::-;9527:3;9548:67;9612:2;9607:3;9548:67;:::i;:::-;9541:74;;9624:93;9713:3;9624:93;:::i;:::-;9742:2;9737:3;9733:12;9726:19;;9385:366;;;:::o;9757:419::-;9923:4;9961:2;9950:9;9946:18;9938:26;;10010:9;10004:4;10000:20;9996:1;9985:9;9981:17;9974:47;10038:131;10164:4;10038:131;:::i;:::-;10030:139;;9757:419;;;:::o;10182:180::-;10230:77;10227:1;10220:88;10327:4;10324:1;10317:15;10351:4;10348:1;10341:15;10368:85;10413:7;10442:5;10431:16;;10368:85;;;:::o;10459:60::-;10487:3;10508:5;10501:12;;10459:60;;;:::o;10525:158::-;10583:9;10616:61;10634:42;10643:32;10669:5;10643:32;:::i;:::-;10634:42;:::i;:::-;10616:61;:::i;:::-;10603:74;;10525:158;;;:::o;10689:147::-;10784:45;10823:5;10784:45;:::i;:::-;10779:3;10772:58;10689:147;;:::o;10842:238::-;10943:4;10981:2;10970:9;10966:18;10958:26;;10994:79;11070:1;11059:9;11055:17;11046:6;10994:79;:::i;:::-;10842:238;;;;:::o;11086:180::-;11134:77;11131:1;11124:88;11231:4;11228:1;11221:15;11255:4;11252:1;11245:15;11272:102;11314:8;11361:5;11358:1;11354:13;11333:34;;11272:102;;;:::o;11380:848::-;11441:5;11448:4;11472:6;11463:15;;11496:5;11487:14;;11510:712;11531:1;11521:8;11518:15;11510:712;;;11626:4;11621:3;11617:14;11611:4;11608:24;11605:50;;;11635:18;;:::i;:::-;11605:50;11685:1;11675:8;11671:16;11668:451;;;12100:4;12093:5;12089:16;12080:25;;11668:451;12150:4;12144;12140:15;12132:23;;12180:32;12203:8;12180:32;:::i;:::-;12168:44;;11510:712;;;11380:848;;;;;;;:::o;12234:1073::-;12288:5;12479:8;12469:40;;12500:1;12491:10;;12502:5;;12469:40;12528:4;12518:36;;12545:1;12536:10;;12547:5;;12518:36;12614:4;12662:1;12657:27;;;;12698:1;12693:191;;;;12607:277;;12657:27;12675:1;12666:10;;12677:5;;;12693:191;12738:3;12728:8;12725:17;12722:43;;;12745:18;;:::i;:::-;12722:43;12794:8;12791:1;12787:16;12778:25;;12829:3;12822:5;12819:14;12816:40;;;12836:18;;:::i;:::-;12816:40;12869:5;;;12607:277;;12993:2;12983:8;12980:16;12974:3;12968:4;12965:13;12961:36;12943:2;12933:8;12930:16;12925:2;12919:4;12916:12;12912:35;12896:111;12893:246;;;13049:8;13043:4;13039:19;13030:28;;13084:3;13077:5;13074:14;13071:40;;;13091:18;;:::i;:::-;13071:40;13124:5;;12893:246;13164:42;13202:3;13192:8;13186:4;13183:1;13164:42;:::i;:::-;13149:57;;;;13238:4;13233:3;13229:14;13222:5;13219:25;13216:51;;;13247:18;;:::i;:::-;13216:51;13296:4;13289:5;13285:16;13276:25;;12234:1073;;;;;;:::o;13313:281::-;13371:5;13395:23;13413:4;13395:23;:::i;:::-;13387:31;;13439:25;13455:8;13439:25;:::i;:::-;13427:37;;13483:104;13520:66;13510:8;13504:4;13483:104;:::i;:::-;13474:113;;13313:281;;;;:::o;13600:410::-;13640:7;13663:20;13681:1;13663:20;:::i;:::-;13658:25;;13697:20;13715:1;13697:20;:::i;:::-;13692:25;;13752:1;13749;13745:9;13774:30;13792:11;13774:30;:::i;:::-;13763:41;;13953:1;13944:7;13940:15;13937:1;13934:22;13914:1;13907:9;13887:83;13864:139;;13983:18;;:::i;:::-;13864:139;13648:362;13600:410;;;;:::o;14016:173::-;14156:25;14152:1;14144:6;14140:14;14133:49;14016:173;:::o;14195:366::-;14337:3;14358:67;14422:2;14417:3;14358:67;:::i;:::-;14351:74;;14434:93;14523:3;14434:93;:::i;:::-;14552:2;14547:3;14543:12;14536:19;;14195:366;;;:::o;14567:419::-;14733:4;14771:2;14760:9;14756:18;14748:26;;14820:9;14814:4;14810:20;14806:1;14795:9;14791:17;14784:47;14848:131;14974:4;14848:131;:::i;:::-;14840:139;;14567:419;;;:::o;14992:143::-;15049:5;15080:6;15074:13;15065:22;;15096:33;15123:5;15096:33;:::i;:::-;14992:143;;;;:::o;15141:351::-;15211:6;15260:2;15248:9;15239:7;15235:23;15231:32;15228:119;;;15266:79;;:::i;:::-;15228:119;15386:1;15411:64;15467:7;15458:6;15447:9;15443:22;15411:64;:::i;:::-;15401:74;;15357:128;15141:351;;;;:::o;15498:332::-;15619:4;15657:2;15646:9;15642:18;15634:26;;15670:71;15738:1;15727:9;15723:17;15714:6;15670:71;:::i;:::-;15751:72;15819:2;15808:9;15804:18;15795:6;15751:72;:::i;:::-;15498:332;;;;;:::o;15836:807::-;16085:4;16123:3;16112:9;16108:19;16100:27;;16137:71;16205:1;16194:9;16190:17;16181:6;16137:71;:::i;:::-;16218:72;16286:2;16275:9;16271:18;16262:6;16218:72;:::i;:::-;16300:80;16376:2;16365:9;16361:18;16352:6;16300:80;:::i;:::-;16390;16466:2;16455:9;16451:18;16442:6;16390:80;:::i;:::-;16480:73;16548:3;16537:9;16533:19;16524:6;16480:73;:::i;:::-;16563;16631:3;16620:9;16616:19;16607:6;16563:73;:::i;:::-;15836:807;;;;;;;;;:::o;16649:143::-;16706:5;16737:6;16731:13;16722:22;;16753:33;16780:5;16753:33;:::i;:::-;16649:143;;;;:::o;16798:663::-;16886:6;16894;16902;16951:2;16939:9;16930:7;16926:23;16922:32;16919:119;;;16957:79;;:::i;:::-;16919:119;17077:1;17102:64;17158:7;17149:6;17138:9;17134:22;17102:64;:::i;:::-;17092:74;;17048:128;17215:2;17241:64;17297:7;17288:6;17277:9;17273:22;17241:64;:::i;:::-;17231:74;;17186:129;17354:2;17380:64;17436:7;17427:6;17416:9;17412:22;17380:64;:::i;:::-;17370:74;;17325:129;16798:663;;;;;:::o;17467:332::-;17588:4;17626:2;17615:9;17611:18;17603:26;;17639:71;17707:1;17696:9;17692:17;17683:6;17639:71;:::i;:::-;17720:72;17788:2;17777:9;17773:18;17764:6;17720:72;:::i;:::-;17467:332;;;;;:::o;17805:116::-;17875:21;17890:5;17875:21;:::i;:::-;17868:5;17865:32;17855:60;;17911:1;17908;17901:12;17855:60;17805:116;:::o;17927:137::-;17981:5;18012:6;18006:13;17997:22;;18028:30;18052:5;18028:30;:::i;:::-;17927:137;;;;:::o;18070:345::-;18137:6;18186:2;18174:9;18165:7;18161:23;18157:32;18154:119;;;18192:79;;:::i;:::-;18154:119;18312:1;18337:61;18390:7;18381:6;18370:9;18366:22;18337:61;:::i;:::-;18327:71;;18283:125;18070:345;;;;:::o;18421:223::-;18561:34;18557:1;18549:6;18545:14;18538:58;18630:6;18625:2;18617:6;18613:15;18606:31;18421:223;:::o;18650:366::-;18792:3;18813:67;18877:2;18872:3;18813:67;:::i;:::-;18806:74;;18889:93;18978:3;18889:93;:::i;:::-;19007:2;19002:3;18998:12;18991:19;;18650:366;;;:::o;19022:419::-;19188:4;19226:2;19215:9;19211:18;19203:26;;19275:9;19269:4;19265:20;19261:1;19250:9;19246:17;19239:47;19303:131;19429:4;19303:131;:::i;:::-;19295:139;;19022:419;;;:::o;19447:221::-;19587:34;19583:1;19575:6;19571:14;19564:58;19656:4;19651:2;19643:6;19639:15;19632:29;19447:221;:::o;19674:366::-;19816:3;19837:67;19901:2;19896:3;19837:67;:::i;:::-;19830:74;;19913:93;20002:3;19913:93;:::i;:::-;20031:2;20026:3;20022:12;20015:19;;19674:366;;;:::o;20046:419::-;20212:4;20250:2;20239:9;20235:18;20227:26;;20299:9;20293:4;20289:20;20285:1;20274:9;20270:17;20263:47;20327:131;20453:4;20327:131;:::i;:::-;20319:139;;20046:419;;;:::o;20471:224::-;20611:34;20607:1;20599:6;20595:14;20588:58;20680:7;20675:2;20667:6;20663:15;20656:32;20471:224;:::o;20701:366::-;20843:3;20864:67;20928:2;20923:3;20864:67;:::i;:::-;20857:74;;20940:93;21029:3;20940:93;:::i;:::-;21058:2;21053:3;21049:12;21042:19;;20701:366;;;:::o;21073:419::-;21239:4;21277:2;21266:9;21262:18;21254:26;;21326:9;21320:4;21316:20;21312:1;21301:9;21297:17;21290:47;21354:131;21480:4;21354:131;:::i;:::-;21346:139;;21073:419;;;:::o;21498:222::-;21638:34;21634:1;21626:6;21622:14;21615:58;21707:5;21702:2;21694:6;21690:15;21683:30;21498:222;:::o;21726:366::-;21868:3;21889:67;21953:2;21948:3;21889:67;:::i;:::-;21882:74;;21965:93;22054:3;21965:93;:::i;:::-;22083:2;22078:3;22074:12;22067:19;;21726:366;;;:::o;22098:419::-;22264:4;22302:2;22291:9;22287:18;22279:26;;22351:9;22345:4;22341:20;22337:1;22326:9;22322:17;22315:47;22379:131;22505:4;22379:131;:::i;:::-;22371:139;;22098:419;;;:::o;22523:228::-;22663:34;22659:1;22651:6;22647:14;22640:58;22732:11;22727:2;22719:6;22715:15;22708:36;22523:228;:::o;22757:366::-;22899:3;22920:67;22984:2;22979:3;22920:67;:::i;:::-;22913:74;;22996:93;23085:3;22996:93;:::i;:::-;23114:2;23109:3;23105:12;23098:19;;22757:366;;;:::o;23129:419::-;23295:4;23333:2;23322:9;23318:18;23310:26;;23382:9;23376:4;23372:20;23368:1;23357:9;23353:17;23346:47;23410:131;23536:4;23410:131;:::i;:::-;23402:139;;23129:419;;;:::o;23554:175::-;23694:27;23690:1;23682:6;23678:14;23671:51;23554:175;:::o;23735:366::-;23877:3;23898:67;23962:2;23957:3;23898:67;:::i;:::-;23891:74;;23974:93;24063:3;23974:93;:::i;:::-;24092:2;24087:3;24083:12;24076:19;;23735:366;;;:::o;24107:419::-;24273:4;24311:2;24300:9;24296:18;24288:26;;24360:9;24354:4;24350:20;24346:1;24335:9;24331:17;24324:47;24388:131;24514:4;24388:131;:::i;:::-;24380:139;;24107:419;;;:::o;24532:191::-;24572:3;24591:20;24609:1;24591:20;:::i;:::-;24586:25;;24625:20;24643:1;24625:20;:::i;:::-;24620:25;;24668:1;24665;24661:9;24654:16;;24689:3;24686:1;24683:10;24680:36;;;24696:18;;:::i;:::-;24680:36;24532:191;;;;:::o;24729:176::-;24869:28;24865:1;24857:6;24853:14;24846:52;24729:176;:::o;24911:366::-;25053:3;25074:67;25138:2;25133:3;25074:67;:::i;:::-;25067:74;;25150:93;25239:3;25150:93;:::i;:::-;25268:2;25263:3;25259:12;25252:19;;24911:366;;;:::o;25283:419::-;25449:4;25487:2;25476:9;25472:18;25464:26;;25536:9;25530:4;25526:20;25522:1;25511:9;25507:17;25500:47;25564:131;25690:4;25564:131;:::i;:::-;25556:139;;25283:419;;;:::o;25708:233::-;25747:3;25770:24;25788:5;25770:24;:::i;:::-;25761:33;;25816:66;25809:5;25806:77;25803:103;;25886:18;;:::i;:::-;25803:103;25933:1;25926:5;25922:13;25915:20;;25708:233;;;:::o;25947:173::-;26087:25;26083:1;26075:6;26071:14;26064:49;25947:173;:::o;26126:366::-;26268:3;26289:67;26353:2;26348:3;26289:67;:::i;:::-;26282:74;;26365:93;26454:3;26365:93;:::i;:::-;26483:2;26478:3;26474:12;26467:19;;26126:366;;;:::o;26498:419::-;26664:4;26702:2;26691:9;26687:18;26679:26;;26751:9;26745:4;26741:20;26737:1;26726:9;26722:17;26715:47;26779:131;26905:4;26779:131;:::i;:::-;26771:139;;26498:419;;;:::o;26923:194::-;26963:4;26983:20;27001:1;26983:20;:::i;:::-;26978:25;;27017:20;27035:1;27017:20;:::i;:::-;27012:25;;27061:1;27058;27054:9;27046:17;;27085:1;27079:4;27076:11;27073:37;;;27090:18;;:::i;:::-;27073:37;26923:194;;;;:::o;27123:114::-;27190:6;27224:5;27218:12;27208:22;;27123:114;;;:::o;27243:184::-;27342:11;27376:6;27371:3;27364:19;27416:4;27411:3;27407:14;27392:29;;27243:184;;;;:::o;27433:132::-;27500:4;27523:3;27515:11;;27553:4;27548:3;27544:14;27536:22;;27433:132;;;:::o;27571:108::-;27648:24;27666:5;27648:24;:::i;:::-;27643:3;27636:37;27571:108;;:::o;27685:179::-;27754:10;27775:46;27817:3;27809:6;27775:46;:::i;:::-;27853:4;27848:3;27844:14;27830:28;;27685:179;;;;:::o;27870:113::-;27940:4;27972;27967:3;27963:14;27955:22;;27870:113;;;:::o;28019:732::-;28138:3;28167:54;28215:5;28167:54;:::i;:::-;28237:86;28316:6;28311:3;28237:86;:::i;:::-;28230:93;;28347:56;28397:5;28347:56;:::i;:::-;28426:7;28457:1;28442:284;28467:6;28464:1;28461:13;28442:284;;;28543:6;28537:13;28570:63;28629:3;28614:13;28570:63;:::i;:::-;28563:70;;28656:60;28709:6;28656:60;:::i;:::-;28646:70;;28502:224;28489:1;28486;28482:9;28477:14;;28442:284;;;28446:14;28742:3;28735:10;;28143:608;;;28019:732;;;;:::o;28757:831::-;29020:4;29058:3;29047:9;29043:19;29035:27;;29072:71;29140:1;29129:9;29125:17;29116:6;29072:71;:::i;:::-;29153:80;29229:2;29218:9;29214:18;29205:6;29153:80;:::i;:::-;29280:9;29274:4;29270:20;29265:2;29254:9;29250:18;29243:48;29308:108;29411:4;29402:6;29308:108;:::i;:::-;29300:116;;29426:72;29494:2;29483:9;29479:18;29470:6;29426:72;:::i;:::-;29508:73;29576:3;29565:9;29561:19;29552:6;29508:73;:::i;:::-;28757:831;;;;;;;;:::o;29594:180::-;29642:77;29639:1;29632:88;29739:4;29736:1;29729:15;29763:4;29760:1;29753:15;29780:185;29820:1;29837:20;29855:1;29837:20;:::i;:::-;29832:25;;29871:20;29889:1;29871:20;:::i;:::-;29866:25;;29910:1;29900:35;;29915:18;;:::i;:::-;29900:35;29957:1;29954;29950:9;29945:14;;29780:185;;;;:::o;29971:220::-;30111:34;30107:1;30099:6;30095:14;30088:58;30180:3;30175:2;30167:6;30163:15;30156:28;29971:220;:::o;30197:366::-;30339:3;30360:67;30424:2;30419:3;30360:67;:::i;:::-;30353:74;;30436:93;30525:3;30436:93;:::i;:::-;30554:2;30549:3;30545:12;30538:19;;30197:366;;;:::o;30569:419::-;30735:4;30773:2;30762:9;30758:18;30750:26;;30822:9;30816:4;30812:20;30808:1;30797:9;30793:17;30786:47;30850:131;30976:4;30850:131;:::i;:::-;30842:139;;30569:419;;;:::o;30994:177::-;31134:29;31130:1;31122:6;31118:14;31111:53;30994:177;:::o;31177:366::-;31319:3;31340:67;31404:2;31399:3;31340:67;:::i;:::-;31333:74;;31416:93;31505:3;31416:93;:::i;:::-;31534:2;31529:3;31525:12;31518:19;;31177:366;;;:::o;31549:419::-;31715:4;31753:2;31742:9;31738:18;31730:26;;31802:9;31796:4;31792:20;31788:1;31777:9;31773:17;31766:47;31830:131;31956:4;31830:131;:::i;:::-;31822:139;;31549:419;;;:::o

Swarm Source

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