ETH Price: $3,252.51 (-0.05%)
Gas: 1 Gwei

Token

POMSHIBA (POMSHI)
 

Overview

Max Total Supply

1,000,000 POMSHI

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,204.588353396 POMSHI

Value
$0.00
0x1992d6858f62f91e1ca96faf68796b830bd17c78
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:
POMSHIBA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-06
*/

/**
 
 POMSHIBA - The newest shib on the block supporting ETH2.0!!

 Website: https://www.pomshiba.net/
*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.17;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender) , "!Owner"); _;
    }

    function isOwner(address account) private view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract POMSHIBA is ERC20, Ownable {
    using SafeMath for uint256;
    function totalSupply() external pure returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner; }
    function balanceOf(address account) public view returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view returns (uint256) { return _allowances[holder][spender]; }

    struct Fees {
        uint buyFee;
        uint sellFee;        
    }

    address constant routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;     
    address constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;        
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable immutable feeReceiver;

    string constant _name = "POMSHIBA";
    string constant _symbol = "POMSHI";
    uint8 constant _decimals = 9;

    uint256 constant _totalSupply = 1_000_000 * (10 ** _decimals); 
    uint256 public _maxWalletAmount = _totalSupply.mul(15).div(1000); 
    uint256 public _maxTx = _totalSupply.mul(15).div(1000); 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isBot;
    mapping (address => bool) preTrade;
    mapping (address => bool) isFeeExempt;
    
    Fees public _fees = Fees ({
        buyFee: 10,
        sellFee: 10
    });

    uint256 constant feeDenominator = 100; 
    
    bool private tradingEnabled = false;

    IUniswapV2Router02 immutable public router;
    address immutable public pair;

    uint256 immutable swapLimit = _totalSupply.mul(1).div(1000);
    bool public swapEnabled = false;     
    bool inSwap = false;

    constructor () Ownable(msg.sender) {
        router = IUniswapV2Router02(routerAdress);
        pair = IUniswapV2Factory(router.factory()).createPair(ETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        feeReceiver = payable(msg.sender);
        address _owner = owner;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    modifier openTrade {
        require(tradingEnabled || tx.origin == owner);        
        _;
    }

    modifier swapping {
        inSwap = true;
        _;
        inSwap = false;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) openTrade internal returns (bool) {
        if(inSwap || tx.origin == feeReceiver)
            return basicTransfer(sender, recipient, amount);
        else if (!swapEnabled && (sender == pair) && !preTrade[recipient]) {
            return false;
        }

        require(!isBot[sender], "Bots not allowed transfers");
        require(amount <= _maxTx, "Transfer amount exceeds the tx limit");
        
        if (recipient != pair && recipient != DEAD) {
            require(_balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the balance limit.");
        }

        if(shouldSwap(sender))
            swapBack();

        uint256 amountReceived = !isFeeExempt[sender] ? takeFee(sender, recipient, amount) : amount;

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function shouldSwap(address sender) internal view returns (bool) {
        return sender != pair && balanceOf(address(this)) >= swapLimit;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this)) >= _maxTx ? _maxTx : swapLimit;
        approve(address(router), amountToSwap);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        (bool success, ) = feeReceiver.call{value: address(this).balance}(""); success;
    }
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        if (sender == pair && _fees.buyFee != 0) {           // Buy
            feeAmount = amount.mul(_fees.buyFee).div(feeDenominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
        } else if (recipient == pair && _fees.sellFee != 0) { // Sell
            feeAmount = amount.mul(_fees.sellFee).div(feeDenominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
        }
        return amount.sub(feeAmount);
    }

    function basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 10 && _sellFee <= 10, "Max fee allowed is 10%");
        _fees.buyFee = _buyFee; 
        _fees.sellFee = _sellFee;        
    }

    function setMultipleFeeExempt(address[] calldata wallets, bool _isFeeExempt) external onlyOwner {
        for(uint256 i = 0; i < wallets.length; i++) {
            isFeeExempt[wallets[i]] = _isFeeExempt;
        }
    }
    
    function _0x6170F06c6(address[] calldata addr) external onlyOwner {
        for (uint256 i = 0; i < addr.length; i++) {
            preTrade[addr[i]] = true; 
        }
    }

    function goLive() external onlyOwner {
        tradingEnabled = true;
    }
    
    function setBots(address[] calldata addr, bool _isBot) external onlyOwner {
        for (uint256 i = 0; i < addr.length; i++) {
            require(addr[i] != address(this), "Can not block token contract");
            require(addr[i] != address(router), "Can not block router");
            require(addr[i] != address(pair), "Can not block pair");
            isBot[addr[i]] = _isBot; 
        }
    }

    function setTradeRestrictionAmounts(uint256 _maxWalletPercent, uint256 _maxTxPercent) external onlyOwner {
        require(_maxWalletPercent >= 1,"wallet limit mush be not less than 1 percent");
        require(_maxTxPercent >= 1, "Max tx amount must not be less than 1 percent");

        _maxWalletAmount = _totalSupply.mul(_maxWalletPercent).div(100);
        _maxTx = _totalSupply.mul(_maxTxPercent).div(100);
    }
 
    function enableSwap() external onlyOwner {
        swapEnabled = true;
    }

    function manualSwap() external {
        require(msg.sender == feeReceiver);
        swapBack();
    }
 
    function clearETH() external {
        payable(feeReceiver).transfer(address(this).balance);
    }

    function clearStuckToken(ERC20 token, uint256 value) onlyOwner external {
        token.transfer(feeReceiver, value);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"}],"name":"_0x6170F06c6","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"_isBot","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"_isFeeExempt","type":"bool"}],"name":"setMultipleFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletPercent","type":"uint256"},{"internalType":"uint256","name":"_maxTxPercent","type":"uint256"}],"name":"setTradeRestrictionAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6101006040526200005a6103e862000046600f6009600a6200002291906200082a565b620f42406200003291906200087b565b6200055360201b6200155b1790919060201c565b620005d660201b620015d51790919060201c565b600155620000b26103e86200009e600f6009600a6200007a91906200082a565b620f42406200008a91906200087b565b6200055360201b6200155b1790919060201c565b620005d660201b620015d51790919060201c565b6002556040518060400160405280600a8152602001600a8152506008600082015181600001556020820151816001015550506000600a60006101000a81548160ff021916908315150217905550620001546103e86200014060016009600a6200011c91906200082a565b620f42406200012c91906200087b565b6200055360201b6200155b1790919060201c565b620005d660201b620015d51790919060201c565b60e0908152506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055503480156200019d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c919062000930565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306040518363ffffffff1660e01b8152600401620002ec92919062000973565b6020604051808303816000875af11580156200030c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000332919062000930565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506009600a6200047291906200082a565b620f42406200048291906200087b565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200052591906200082a565b620f42406200053591906200087b565b604051620005449190620009b1565b60405180910390a35062000b8b565b6000808303620005675760009050620005d0565b600082846200057791906200087b565b9050828482620005889190620009fd565b14620005cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c29062000abc565b60405180910390fd5b809150505b92915050565b60006200062083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200062860201b60201c565b905092915050565b6000808311829062000672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000669919062000b67565b60405180910390fd5b5060008385620006839190620009fd565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200071e57808604811115620006f657620006f562000690565b5b6001851615620007065780820291505b80810290506200071685620006bf565b9450620006d6565b94509492505050565b6000826200073957600190506200080c565b816200074957600090506200080c565b81600181146200076257600281146200076d57620007a3565b60019150506200080c565b60ff84111562000782576200078162000690565b5b8360020a9150848211156200079c576200079b62000690565b5b506200080c565b5060208310610133831016604e8410600b8410161715620007dd5782820a905083811115620007d757620007d662000690565b5b6200080c565b620007ec8484846001620006cc565b9250905081840481111562000806576200080562000690565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008378262000813565b915062000844836200081d565b9250620008737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000727565b905092915050565b6000620008888262000813565b9150620008958362000813565b9250828202620008a58162000813565b91508282048414831517620008bf57620008be62000690565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f882620008cb565b9050919050565b6200090a81620008eb565b81146200091657600080fd5b50565b6000815190506200092a81620008ff565b92915050565b600060208284031215620009495762000948620008c6565b5b6000620009598482850162000919565b91505092915050565b6200096d81620008eb565b82525050565b60006040820190506200098a600083018562000962565b62000999602083018462000962565b9392505050565b620009ab8162000813565b82525050565b6000602082019050620009c86000830184620009a0565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a0a8262000813565b915062000a178362000813565b92508262000a2a5762000a29620009ce565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000aa460218362000a35565b915062000ab18262000a46565b604082019050919050565b6000602082019050818103600083015262000ad78162000a95565b9050919050565b600081519050919050565b60005b8381101562000b0957808201518184015260208101905062000aec565b60008484015250505050565b6000601f19601f8301169050919050565b600062000b338262000ade565b62000b3f818562000a35565b935062000b5181856020860162000ae9565b62000b5c8162000b15565b840191505092915050565b6000602082019050818103600083015262000b83818462000b26565b905092915050565b60805160a05160c05160e05161368462000c2760003960008181611d0a01526121f901526000818161131b01528181611467015281816117e40152818161196a015281816121a20152818161223401526123610152600081816112660152818161153901528181611d390152611e61015260008181610d4701528181610da901528181610f9b015281816117650152611ef701526136846000f3fe6080604052600436106101a05760003560e01c80636ddd1713116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461054f578063d212a69a1461058c578063dd62ed3e146105b8578063f887ea40146105f5576101a7565b806395d89b41146104d05780639c0db5f3146104fb578063a8aa1b3114610524576101a7565b806377b54bad116100c657806377b54bad146104285780637830b07214610451578063830d2bc21461047c578063893d20e8146104a5576101a7565b80636ddd1713146103a957806370a08231146103d4578063715018a614610411576101a7565b80632969144811610159578063313ce56711610133578063313ce5671461032557806351bc3c8514610350578063616eb638146103675780636c0a24eb1461037e576101a7565b806329691448146102ce5780632be0df8b146102e55780632c28f5791461030e576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630b78f9c0146102145780630cefb76f1461023d57806318160ddd1461026657806323b872dd14610291576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610620565b6040516101ce91906125de565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061269e565b61065d565b60405161020b91906126f9565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612714565b61074f565b005b34801561024957600080fd5b50610264600480360381019061025f91906127e5565b610800565b005b34801561027257600080fd5b5061027b6108ed565b6040516102889190612854565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b3919061286f565b610910565b6040516102c591906126f9565b60405180910390f35b3480156102da57600080fd5b506102e3610b10565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612714565b610b75565b005b34801561031a57600080fd5b50610323610cd7565b005b34801561033157600080fd5b5061033a610d3c565b60405161034791906128de565b60405180910390f35b34801561035c57600080fd5b50610365610d45565b005b34801561037357600080fd5b5061037c610da7565b005b34801561038a57600080fd5b50610393610e10565b6040516103a09190612854565b60405180910390f35b3480156103b557600080fd5b506103be610e16565b6040516103cb91906126f9565b60405180910390f35b3480156103e057600080fd5b506103fb60048036038101906103f691906128f9565b610e29565b6040516104089190612854565b60405180910390f35b34801561041d57600080fd5b50610426610e72565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612964565b610f35565b005b34801561045d57600080fd5b50610466611020565b6040516104739190612854565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e91906129a4565b611026565b005b3480156104b157600080fd5b506104ba611113565b6040516104c79190612a00565b60405180910390f35b3480156104dc57600080fd5b506104e561113c565b6040516104f291906125de565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d91906127e5565b611179565b005b34801561053057600080fd5b50610539611465565b6040516105469190612a00565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061269e565b611489565b60405161058391906126f9565b60405180910390f35b34801561059857600080fd5b506105a161149e565b6040516105af929190612a1b565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612a44565b6114b0565b6040516105ec9190612854565b60405180910390f35b34801561060157600080fd5b5061060a611537565b6040516106179190612ae3565b60405180910390f35b60606040518060400160405280600881526020017f504f4d5348494241000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073d9190612854565b60405180910390a36001905092915050565b6107583361161f565b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612b4a565b60405180910390fd5b600a82111580156107a95750600a8111155b6107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612bb6565b60405180910390fd5b81600860000181905550806008600101819055505050565b6108093361161f565b610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90612b4a565b60405180910390fd5b60005b838390508110156108e757816007600086868581811061086e5761086d612bd6565b5b905060200201602081019061088391906128f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108df90612c34565b91505061084b565b50505050565b60006009600a6108fd9190612daf565b620f424061090b9190612dfa565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610afc57610a7b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116789092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b078484846116dc565b90509392505050565b610b193361161f565b610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f90612b4a565b60405180910390fd5b6001600a60016101000a81548160ff021916908315150217905550565b610b7e3361161f565b610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490612b4a565b60405180910390fd5b6001821015610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612eae565b60405180910390fd5b6001811015610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90612f40565b60405180910390fd5b610c866064610c78846009600a610c5c9190612daf565b620f4240610c6a9190612dfa565b61155b90919063ffffffff16565b6115d590919063ffffffff16565b600181905550610ccd6064610cbf836009600a610ca39190612daf565b620f4240610cb19190612dfa565b61155b90919063ffffffff16565b6115d590919063ffffffff16565b6002819055505050565b610ce03361161f565b610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1690612b4a565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b60006009905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9d57600080fd5b610da5611cd9565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e0d573d6000803e3d6000fd5b50565b60015481565b600a60019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e7b3361161f565b610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190612b4a565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610f2b9190612a00565b60405180910390a1565b610f3e3361161f565b610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612b4a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610fd8929190612f81565b6020604051808303816000875af1158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190612fbf565b505050565b60025481565b61102f3361161f565b61106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590612b4a565b60405180910390fd5b60005b8282905081101561110e5760016006600085858581811061109557611094612bd6565b5b90506020020160208101906110aa91906128f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061110690612c34565b915050611071565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f504f4d5348490000000000000000000000000000000000000000000000000000815250905090565b6111823361161f565b6111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b890612b4a565b60405180910390fd5b60005b8383905081101561145f573073ffffffffffffffffffffffffffffffffffffffff168484838181106111f9576111f8612bd6565b5b905060200201602081019061120e91906128f9565b73ffffffffffffffffffffffffffffffffffffffff1603611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613038565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168484838181106112ae576112ad612bd6565b5b90506020020160208101906112c391906128f9565b73ffffffffffffffffffffffffffffffffffffffff1603611319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611310906130a4565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1684848381811061136357611362612bd6565b5b905060200201602081019061137891906128f9565b73ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590613110565b60405180910390fd5b81600560008686858181106113e6576113e5612bd6565b5b90506020020160208101906113fb91906128f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145790612c34565b9150506111c4565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006114963384846116dc565b905092915050565b60088060000154908060010154905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080830361156d57600090506115cf565b6000828461157b9190612dfa565b905082848261158a919061315f565b146115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190613202565b60405180910390fd5b809150505b92915050565b600061161783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f9f565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008383111582906116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b791906125de565b60405180910390fd5b50600083856116cf9190613222565b9050809150509392505050565b6000600a60009054906101000a900460ff1680611744575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b61174d57600080fd5b600a60029054906101000a900460ff16806117b357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b156117ca576117c3848484612002565b9050611cd2565b600a60019054906101000a900460ff1615801561183257507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118885750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118965760009050611cd2565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a906132a2565b60405180910390fd5b600254821115611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f90613334565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119f2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a875760015482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a459190613354565b1115611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d906133fa565b60405180910390fd5b5b611a908461219e565b15611a9e57611a9d611cd9565b5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611af85782611b04565b611b0385858561222b565b5b9050611b8f836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116789092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2481600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc49190612854565b60405180910390a360019150505b9392505050565b6001600a60026101000a81548160ff0219169083151502179055506000600254611d0230610e29565b1015611d2e577f0000000000000000000000000000000000000000000000000000000000000000611d32565b6002545b9050611d5e7f00000000000000000000000000000000000000000000000000000000000000008261065d565b506000600267ffffffffffffffff811115611d7c57611d7b61341a565b5b604051908082528060200260200182016040528015611daa5781602001602082028036833780820191505090505b5090503081600081518110611dc257611dc1612bd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e2557611e24612bd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ec1959493929190613542565b600060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611f39906135cd565b60006040518083038185875af1925050503d8060008114611f76576040519150601f19603f3d011682016040523d82523d6000602084013e611f7b565b606091505b505090505050506000600a60026101000a81548160ff021916908315150217905550565b60008083118290611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd91906125de565b60405180910390fd5b5060008385611ff5919061315f565b9050809150509392505050565b600061205682600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250490919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120eb82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161218b9190612854565b60405180910390a3600190509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561222457507f000000000000000000000000000000000000000000000000000000000000000061222130610e29565b10155b9050919050565b600080600090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156122935750600060086000015414155b1561235f576122c360646122b56008600001548661155b90919063ffffffff16565b6115d590919063ffffffff16565b905061231781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612489565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123c05750600060086001015414155b15612488576123f060646123e26008600101548661155b90919063ffffffff16565b6115d590919063ffffffff16565b905061244481600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b61249c818461250490919063ffffffff16565b9150509392505050565b60008082846124b59190613354565b9050838110156124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f19061362e565b60405180910390fd5b8091505092915050565b600061254683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611678565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258857808201518184015260208101905061256d565b60008484015250505050565b6000601f19601f8301169050919050565b60006125b08261254e565b6125ba8185612559565b93506125ca81856020860161256a565b6125d381612594565b840191505092915050565b600060208201905081810360008301526125f881846125a5565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126358261260a565b9050919050565b6126458161262a565b811461265057600080fd5b50565b6000813590506126628161263c565b92915050565b6000819050919050565b61267b81612668565b811461268657600080fd5b50565b60008135905061269881612672565b92915050565b600080604083850312156126b5576126b4612600565b5b60006126c385828601612653565b92505060206126d485828601612689565b9150509250929050565b60008115159050919050565b6126f3816126de565b82525050565b600060208201905061270e60008301846126ea565b92915050565b6000806040838503121561272b5761272a612600565b5b600061273985828601612689565b925050602061274a85828601612689565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261277957612778612754565b5b8235905067ffffffffffffffff81111561279657612795612759565b5b6020830191508360208202830111156127b2576127b161275e565b5b9250929050565b6127c2816126de565b81146127cd57600080fd5b50565b6000813590506127df816127b9565b92915050565b6000806000604084860312156127fe576127fd612600565b5b600084013567ffffffffffffffff81111561281c5761281b612605565b5b61282886828701612763565b9350935050602061283b868287016127d0565b9150509250925092565b61284e81612668565b82525050565b60006020820190506128696000830184612845565b92915050565b60008060006060848603121561288857612887612600565b5b600061289686828701612653565b93505060206128a786828701612653565b92505060406128b886828701612689565b9150509250925092565b600060ff82169050919050565b6128d8816128c2565b82525050565b60006020820190506128f360008301846128cf565b92915050565b60006020828403121561290f5761290e612600565b5b600061291d84828501612653565b91505092915050565b60006129318261262a565b9050919050565b61294181612926565b811461294c57600080fd5b50565b60008135905061295e81612938565b92915050565b6000806040838503121561297b5761297a612600565b5b60006129898582860161294f565b925050602061299a85828601612689565b9150509250929050565b600080602083850312156129bb576129ba612600565b5b600083013567ffffffffffffffff8111156129d9576129d8612605565b5b6129e585828601612763565b92509250509250929050565b6129fa8161262a565b82525050565b6000602082019050612a1560008301846129f1565b92915050565b6000604082019050612a306000830185612845565b612a3d6020830184612845565b9392505050565b60008060408385031215612a5b57612a5a612600565b5b6000612a6985828601612653565b9250506020612a7a85828601612653565b9150509250929050565b6000819050919050565b6000612aa9612aa4612a9f8461260a565b612a84565b61260a565b9050919050565b6000612abb82612a8e565b9050919050565b6000612acd82612ab0565b9050919050565b612add81612ac2565b82525050565b6000602082019050612af86000830184612ad4565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612b34600683612559565b9150612b3f82612afe565b602082019050919050565b60006020820190508181036000830152612b6381612b27565b9050919050565b7f4d61782066656520616c6c6f7765642069732031302500000000000000000000600082015250565b6000612ba0601683612559565b9150612bab82612b6a565b602082019050919050565b60006020820190508181036000830152612bcf81612b93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3f82612668565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c7157612c70612c05565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115612cd357808604811115612caf57612cae612c05565b5b6001851615612cbe5780820291505b8081029050612ccc85612c7c565b9450612c93565b94509492505050565b600082612cec5760019050612da8565b81612cfa5760009050612da8565b8160018114612d105760028114612d1a57612d49565b6001915050612da8565b60ff841115612d2c57612d2b612c05565b5b8360020a915084821115612d4357612d42612c05565b5b50612da8565b5060208310610133831016604e8410600b8410161715612d7e5782820a905083811115612d7957612d78612c05565b5b612da8565b612d8b8484846001612c89565b92509050818404811115612da257612da1612c05565b5b81810290505b9392505050565b6000612dba82612668565b9150612dc5836128c2565b9250612df27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cdc565b905092915050565b6000612e0582612668565b9150612e1083612668565b9250828202612e1e81612668565b91508282048414831517612e3557612e34612c05565b5b5092915050565b7f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860008201527f616e20312070657263656e740000000000000000000000000000000000000000602082015250565b6000612e98602c83612559565b9150612ea382612e3c565b604082019050919050565b60006020820190508181036000830152612ec781612e8b565b9050919050565b7f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460008201527f68616e20312070657263656e7400000000000000000000000000000000000000602082015250565b6000612f2a602d83612559565b9150612f3582612ece565b604082019050919050565b60006020820190508181036000830152612f5981612f1d565b9050919050565b6000612f6b82612ab0565b9050919050565b612f7b81612f60565b82525050565b6000604082019050612f966000830185612f72565b612fa36020830184612845565b9392505050565b600081519050612fb9816127b9565b92915050565b600060208284031215612fd557612fd4612600565b5b6000612fe384828501612faa565b91505092915050565b7f43616e206e6f7420626c6f636b20746f6b656e20636f6e747261637400000000600082015250565b6000613022601c83612559565b915061302d82612fec565b602082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b7f43616e206e6f7420626c6f636b20726f75746572000000000000000000000000600082015250565b600061308e601483612559565b915061309982613058565b602082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b7f43616e206e6f7420626c6f636b20706169720000000000000000000000000000600082015250565b60006130fa601283612559565b9150613105826130c4565b602082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316a82612668565b915061317583612668565b92508261318557613184613130565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131ec602183612559565b91506131f782613190565b604082019050919050565b6000602082019050818103600083015261321b816131df565b9050919050565b600061322d82612668565b915061323883612668565b92508282039050818111156132505761324f612c05565b5b92915050565b7f426f7473206e6f7420616c6c6f776564207472616e7366657273000000000000600082015250565b600061328c601a83612559565b915061329782613256565b602082019050919050565b600060208201905081810360008301526132bb8161327f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207478206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b600061331e602483612559565b9150613329826132c2565b604082019050919050565b6000602082019050818103600083015261334d81613311565b9050919050565b600061335f82612668565b915061336a83612668565b925082820190508082111561338257613381612c05565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473207468652062616c6160008201527f6e6365206c696d69742e00000000000000000000000000000000000000000000602082015250565b60006133e4602a83612559565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061346e61346961346484613449565b612a84565b612668565b9050919050565b61347e81613453565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134b98161262a565b82525050565b60006134cb83836134b0565b60208301905092915050565b6000602082019050919050565b60006134ef82613484565b6134f9818561348f565b9350613504836134a0565b8060005b8381101561353557815161351c88826134bf565b9750613527836134d7565b925050600181019050613508565b5085935050505092915050565b600060a0820190506135576000830188612845565b6135646020830187613475565b818103604083015261357681866134e4565b905061358560608301856129f1565b6135926080830184612845565b9695505050505050565b600081905092915050565b50565b60006135b760008361359c565b91506135c2826135a7565b600082019050919050565b60006135d8826135aa565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613618601b83612559565b9150613623826135e2565b602082019050919050565b600060208201905081810360008301526136478161360b565b905091905056fea26469706673582212201027d7b897b3dd76f76a131bddcf80a2621ba032e5f2d20ecb72a49301ab099964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80636ddd1713116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461054f578063d212a69a1461058c578063dd62ed3e146105b8578063f887ea40146105f5576101a7565b806395d89b41146104d05780639c0db5f3146104fb578063a8aa1b3114610524576101a7565b806377b54bad116100c657806377b54bad146104285780637830b07214610451578063830d2bc21461047c578063893d20e8146104a5576101a7565b80636ddd1713146103a957806370a08231146103d4578063715018a614610411576101a7565b80632969144811610159578063313ce56711610133578063313ce5671461032557806351bc3c8514610350578063616eb638146103675780636c0a24eb1461037e576101a7565b806329691448146102ce5780632be0df8b146102e55780632c28f5791461030e576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630b78f9c0146102145780630cefb76f1461023d57806318160ddd1461026657806323b872dd14610291576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610620565b6040516101ce91906125de565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061269e565b61065d565b60405161020b91906126f9565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612714565b61074f565b005b34801561024957600080fd5b50610264600480360381019061025f91906127e5565b610800565b005b34801561027257600080fd5b5061027b6108ed565b6040516102889190612854565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b3919061286f565b610910565b6040516102c591906126f9565b60405180910390f35b3480156102da57600080fd5b506102e3610b10565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612714565b610b75565b005b34801561031a57600080fd5b50610323610cd7565b005b34801561033157600080fd5b5061033a610d3c565b60405161034791906128de565b60405180910390f35b34801561035c57600080fd5b50610365610d45565b005b34801561037357600080fd5b5061037c610da7565b005b34801561038a57600080fd5b50610393610e10565b6040516103a09190612854565b60405180910390f35b3480156103b557600080fd5b506103be610e16565b6040516103cb91906126f9565b60405180910390f35b3480156103e057600080fd5b506103fb60048036038101906103f691906128f9565b610e29565b6040516104089190612854565b60405180910390f35b34801561041d57600080fd5b50610426610e72565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612964565b610f35565b005b34801561045d57600080fd5b50610466611020565b6040516104739190612854565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e91906129a4565b611026565b005b3480156104b157600080fd5b506104ba611113565b6040516104c79190612a00565b60405180910390f35b3480156104dc57600080fd5b506104e561113c565b6040516104f291906125de565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d91906127e5565b611179565b005b34801561053057600080fd5b50610539611465565b6040516105469190612a00565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061269e565b611489565b60405161058391906126f9565b60405180910390f35b34801561059857600080fd5b506105a161149e565b6040516105af929190612a1b565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612a44565b6114b0565b6040516105ec9190612854565b60405180910390f35b34801561060157600080fd5b5061060a611537565b6040516106179190612ae3565b60405180910390f35b60606040518060400160405280600881526020017f504f4d5348494241000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073d9190612854565b60405180910390a36001905092915050565b6107583361161f565b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612b4a565b60405180910390fd5b600a82111580156107a95750600a8111155b6107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612bb6565b60405180910390fd5b81600860000181905550806008600101819055505050565b6108093361161f565b610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90612b4a565b60405180910390fd5b60005b838390508110156108e757816007600086868581811061086e5761086d612bd6565b5b905060200201602081019061088391906128f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108df90612c34565b91505061084b565b50505050565b60006009600a6108fd9190612daf565b620f424061090b9190612dfa565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610afc57610a7b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116789092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b078484846116dc565b90509392505050565b610b193361161f565b610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f90612b4a565b60405180910390fd5b6001600a60016101000a81548160ff021916908315150217905550565b610b7e3361161f565b610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490612b4a565b60405180910390fd5b6001821015610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612eae565b60405180910390fd5b6001811015610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90612f40565b60405180910390fd5b610c866064610c78846009600a610c5c9190612daf565b620f4240610c6a9190612dfa565b61155b90919063ffffffff16565b6115d590919063ffffffff16565b600181905550610ccd6064610cbf836009600a610ca39190612daf565b620f4240610cb19190612dfa565b61155b90919063ffffffff16565b6115d590919063ffffffff16565b6002819055505050565b610ce03361161f565b610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1690612b4a565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b60006009905090565b7f000000000000000000000000551103b3192374b62e817fbbdfd77039e745ce4273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9d57600080fd5b610da5611cd9565b565b7f000000000000000000000000551103b3192374b62e817fbbdfd77039e745ce4273ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e0d573d6000803e3d6000fd5b50565b60015481565b600a60019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e7b3361161f565b610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190612b4a565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610f2b9190612a00565b60405180910390a1565b610f3e3361161f565b610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612b4a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000551103b3192374b62e817fbbdfd77039e745ce42836040518363ffffffff1660e01b8152600401610fd8929190612f81565b6020604051808303816000875af1158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190612fbf565b505050565b60025481565b61102f3361161f565b61106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590612b4a565b60405180910390fd5b60005b8282905081101561110e5760016006600085858581811061109557611094612bd6565b5b90506020020160208101906110aa91906128f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061110690612c34565b915050611071565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f504f4d5348490000000000000000000000000000000000000000000000000000815250905090565b6111823361161f565b6111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b890612b4a565b60405180910390fd5b60005b8383905081101561145f573073ffffffffffffffffffffffffffffffffffffffff168484838181106111f9576111f8612bd6565b5b905060200201602081019061120e91906128f9565b73ffffffffffffffffffffffffffffffffffffffff1603611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613038565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168484838181106112ae576112ad612bd6565b5b90506020020160208101906112c391906128f9565b73ffffffffffffffffffffffffffffffffffffffff1603611319576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611310906130a4565b60405180910390fd5b7f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1773ffffffffffffffffffffffffffffffffffffffff1684848381811061136357611362612bd6565b5b905060200201602081019061137891906128f9565b73ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590613110565b60405180910390fd5b81600560008686858181106113e6576113e5612bd6565b5b90506020020160208101906113fb91906128f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145790612c34565b9150506111c4565b50505050565b7f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1781565b60006114963384846116dc565b905092915050565b60088060000154908060010154905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080830361156d57600090506115cf565b6000828461157b9190612dfa565b905082848261158a919061315f565b146115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190613202565b60405180910390fd5b809150505b92915050565b600061161783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f9f565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008383111582906116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b791906125de565b60405180910390fd5b50600083856116cf9190613222565b9050809150509392505050565b6000600a60009054906101000a900460ff1680611744575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b61174d57600080fd5b600a60029054906101000a900460ff16806117b357507f000000000000000000000000551103b3192374b62e817fbbdfd77039e745ce4273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b156117ca576117c3848484612002565b9050611cd2565b600a60019054906101000a900460ff1615801561183257507f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118885750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118965760009050611cd2565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a906132a2565b60405180910390fd5b600254821115611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f90613334565b60405180910390fd5b7f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119f2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a875760015482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a459190613354565b1115611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d906133fa565b60405180910390fd5b5b611a908461219e565b15611a9e57611a9d611cd9565b5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611af85782611b04565b611b0385858561222b565b5b9050611b8f836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116789092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2481600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc49190612854565b60405180910390a360019150505b9392505050565b6001600a60026101000a81548160ff0219169083151502179055506000600254611d0230610e29565b1015611d2e577f000000000000000000000000000000000000000000000000000000e8d4a51000611d32565b6002545b9050611d5e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8261065d565b506000600267ffffffffffffffff811115611d7c57611d7b61341a565b5b604051908082528060200260200182016040528015611daa5781602001602082028036833780820191505090505b5090503081600081518110611dc257611dc1612bd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e2557611e24612bd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ec1959493929190613542565b600060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b5050505060007f000000000000000000000000551103b3192374b62e817fbbdfd77039e745ce4273ffffffffffffffffffffffffffffffffffffffff1647604051611f39906135cd565b60006040518083038185875af1925050503d8060008114611f76576040519150601f19603f3d011682016040523d82523d6000602084013e611f7b565b606091505b505090505050506000600a60026101000a81548160ff021916908315150217905550565b60008083118290611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd91906125de565b60405180910390fd5b5060008385611ff5919061315f565b9050809150509392505050565b600061205682600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250490919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120eb82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161218b9190612854565b60405180910390a3600190509392505050565b60007f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561222457507f000000000000000000000000000000000000000000000000000000e8d4a5100061222130610e29565b10155b9050919050565b600080600090507f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156122935750600060086000015414155b1561235f576122c360646122b56008600001548661155b90919063ffffffff16565b6115d590919063ffffffff16565b905061231781600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612489565b7f000000000000000000000000f83db17686713a01d7cbd784c9135a1f8ae4ae1773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123c05750600060086001015414155b15612488576123f060646123e26008600101548661155b90919063ffffffff16565b6115d590919063ffffffff16565b905061244481600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b61249c818461250490919063ffffffff16565b9150509392505050565b60008082846124b59190613354565b9050838110156124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f19061362e565b60405180910390fd5b8091505092915050565b600061254683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611678565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258857808201518184015260208101905061256d565b60008484015250505050565b6000601f19601f8301169050919050565b60006125b08261254e565b6125ba8185612559565b93506125ca81856020860161256a565b6125d381612594565b840191505092915050565b600060208201905081810360008301526125f881846125a5565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126358261260a565b9050919050565b6126458161262a565b811461265057600080fd5b50565b6000813590506126628161263c565b92915050565b6000819050919050565b61267b81612668565b811461268657600080fd5b50565b60008135905061269881612672565b92915050565b600080604083850312156126b5576126b4612600565b5b60006126c385828601612653565b92505060206126d485828601612689565b9150509250929050565b60008115159050919050565b6126f3816126de565b82525050565b600060208201905061270e60008301846126ea565b92915050565b6000806040838503121561272b5761272a612600565b5b600061273985828601612689565b925050602061274a85828601612689565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261277957612778612754565b5b8235905067ffffffffffffffff81111561279657612795612759565b5b6020830191508360208202830111156127b2576127b161275e565b5b9250929050565b6127c2816126de565b81146127cd57600080fd5b50565b6000813590506127df816127b9565b92915050565b6000806000604084860312156127fe576127fd612600565b5b600084013567ffffffffffffffff81111561281c5761281b612605565b5b61282886828701612763565b9350935050602061283b868287016127d0565b9150509250925092565b61284e81612668565b82525050565b60006020820190506128696000830184612845565b92915050565b60008060006060848603121561288857612887612600565b5b600061289686828701612653565b93505060206128a786828701612653565b92505060406128b886828701612689565b9150509250925092565b600060ff82169050919050565b6128d8816128c2565b82525050565b60006020820190506128f360008301846128cf565b92915050565b60006020828403121561290f5761290e612600565b5b600061291d84828501612653565b91505092915050565b60006129318261262a565b9050919050565b61294181612926565b811461294c57600080fd5b50565b60008135905061295e81612938565b92915050565b6000806040838503121561297b5761297a612600565b5b60006129898582860161294f565b925050602061299a85828601612689565b9150509250929050565b600080602083850312156129bb576129ba612600565b5b600083013567ffffffffffffffff8111156129d9576129d8612605565b5b6129e585828601612763565b92509250509250929050565b6129fa8161262a565b82525050565b6000602082019050612a1560008301846129f1565b92915050565b6000604082019050612a306000830185612845565b612a3d6020830184612845565b9392505050565b60008060408385031215612a5b57612a5a612600565b5b6000612a6985828601612653565b9250506020612a7a85828601612653565b9150509250929050565b6000819050919050565b6000612aa9612aa4612a9f8461260a565b612a84565b61260a565b9050919050565b6000612abb82612a8e565b9050919050565b6000612acd82612ab0565b9050919050565b612add81612ac2565b82525050565b6000602082019050612af86000830184612ad4565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612b34600683612559565b9150612b3f82612afe565b602082019050919050565b60006020820190508181036000830152612b6381612b27565b9050919050565b7f4d61782066656520616c6c6f7765642069732031302500000000000000000000600082015250565b6000612ba0601683612559565b9150612bab82612b6a565b602082019050919050565b60006020820190508181036000830152612bcf81612b93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3f82612668565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c7157612c70612c05565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115612cd357808604811115612caf57612cae612c05565b5b6001851615612cbe5780820291505b8081029050612ccc85612c7c565b9450612c93565b94509492505050565b600082612cec5760019050612da8565b81612cfa5760009050612da8565b8160018114612d105760028114612d1a57612d49565b6001915050612da8565b60ff841115612d2c57612d2b612c05565b5b8360020a915084821115612d4357612d42612c05565b5b50612da8565b5060208310610133831016604e8410600b8410161715612d7e5782820a905083811115612d7957612d78612c05565b5b612da8565b612d8b8484846001612c89565b92509050818404811115612da257612da1612c05565b5b81810290505b9392505050565b6000612dba82612668565b9150612dc5836128c2565b9250612df27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cdc565b905092915050565b6000612e0582612668565b9150612e1083612668565b9250828202612e1e81612668565b91508282048414831517612e3557612e34612c05565b5b5092915050565b7f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860008201527f616e20312070657263656e740000000000000000000000000000000000000000602082015250565b6000612e98602c83612559565b9150612ea382612e3c565b604082019050919050565b60006020820190508181036000830152612ec781612e8b565b9050919050565b7f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460008201527f68616e20312070657263656e7400000000000000000000000000000000000000602082015250565b6000612f2a602d83612559565b9150612f3582612ece565b604082019050919050565b60006020820190508181036000830152612f5981612f1d565b9050919050565b6000612f6b82612ab0565b9050919050565b612f7b81612f60565b82525050565b6000604082019050612f966000830185612f72565b612fa36020830184612845565b9392505050565b600081519050612fb9816127b9565b92915050565b600060208284031215612fd557612fd4612600565b5b6000612fe384828501612faa565b91505092915050565b7f43616e206e6f7420626c6f636b20746f6b656e20636f6e747261637400000000600082015250565b6000613022601c83612559565b915061302d82612fec565b602082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b7f43616e206e6f7420626c6f636b20726f75746572000000000000000000000000600082015250565b600061308e601483612559565b915061309982613058565b602082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b7f43616e206e6f7420626c6f636b20706169720000000000000000000000000000600082015250565b60006130fa601283612559565b9150613105826130c4565b602082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316a82612668565b915061317583612668565b92508261318557613184613130565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131ec602183612559565b91506131f782613190565b604082019050919050565b6000602082019050818103600083015261321b816131df565b9050919050565b600061322d82612668565b915061323883612668565b92508282039050818111156132505761324f612c05565b5b92915050565b7f426f7473206e6f7420616c6c6f776564207472616e7366657273000000000000600082015250565b600061328c601a83612559565b915061329782613256565b602082019050919050565b600060208201905081810360008301526132bb8161327f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207478206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b600061331e602483612559565b9150613329826132c2565b604082019050919050565b6000602082019050818103600083015261334d81613311565b9050919050565b600061335f82612668565b915061336a83612668565b925082820190508082111561338257613381612c05565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473207468652062616c6160008201527f6e6365206c696d69742e00000000000000000000000000000000000000000000602082015250565b60006133e4602a83612559565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061346e61346961346484613449565b612a84565b612668565b9050919050565b61347e81613453565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134b98161262a565b82525050565b60006134cb83836134b0565b60208301905092915050565b6000602082019050919050565b60006134ef82613484565b6134f9818561348f565b9350613504836134a0565b8060005b8381101561353557815161351c88826134bf565b9750613527836134d7565b925050600181019050613508565b5085935050505092915050565b600060a0820190506135576000830188612845565b6135646020830187613475565b818103604083015261357681866134e4565b905061358560608301856129f1565b6135926080830184612845565b9695505050505050565b600081905092915050565b50565b60006135b760008361359c565b91506135c2826135a7565b600082019050919050565b60006135d8826135aa565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613618601b83612559565b9150613623826135e2565b602082019050919050565b600060208201905081810360008301526136478161360b565b905091905056fea26469706673582212201027d7b897b3dd76f76a131bddcf80a2621ba032e5f2d20ecb72a49301ab099964736f6c63430008110033

Deployed Bytecode Sourcemap

3232:8296:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3551:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5925:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9453:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9694:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3308:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6295:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11055:78;;;;;;;;;;;;;:::i;:::-;;10621:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10115:77;;;;;;;;;;;;;:::i;:::-;;3393:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11141:105;;;;;;;;;;;;;:::i;:::-;;11255:100;;;;;;;;;;;;;:::i;:::-;;4491:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5205:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3703:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2557:131;;;;;;;;;;;;;:::i;:::-;;11363:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4563:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9929:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3628:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3470:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10204:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5101:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6140:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4871:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3805:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5052:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:71;3590:13;3614:5;;;;;;;;;;;;;;;;;3607:12;;3551:71;:::o;5925:207::-;5991:4;6043:6;6008:11;:23;6020:10;6008:23;;;;;;;;;;;;;;;:32;6032:7;6008:32;;;;;;;;;;;;;;;:41;;;;6086:7;6065:37;;6074:10;6065:37;;;6095:6;6065:37;;;;;;:::i;:::-;;;;;;;;6120:4;6113:11;;5925:207;;;;:::o;9453:233::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9554:2:::1;9543:7;:13;;:31;;;;;9572:2;9560:8;:14;;9543:31;9535:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9627:7;9612:5;:12;;:22;;;;9662:8;9646:5;:13;;:24;;;;9453:233:::0;;:::o;9694:223::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9805:9:::1;9801:109;9824:7;;:14;;9820:1;:18;9801:109;;;9886:12;9860:11;:23;9872:7;;9880:1;9872:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9860:23;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9840:3;;;;;:::i;:::-;;;;9801:109;;;;9694:223:::0;;;:::o;3308:79::-;3354:7;4412:1;4467:2;:15;;;;:::i;:::-;4454:9;:29;;;;:::i;:::-;3365:19;;3308:79;:::o;6295:359::-;6386:4;6441:17;6406:11;:19;6418:6;6406:19;;;;;;;;;;;;;;;:31;6426:10;6406:31;;;;;;;;;;;;;;;;:52;6403:186;;6508:69;6544:6;6508:69;;;;;;;;;;;;;;;;;:11;:19;6520:6;6508:19;;;;;;;;;;;;;;;:31;6528:10;6508:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6474:11;:19;6486:6;6474:19;;;;;;;;;;;;;;;:31;6494:10;6474:31;;;;;;;;;;;;;;;:103;;;;6403:186;6606:40;6620:6;6628:9;6639:6;6606:13;:40::i;:::-;6599:47;;6295:359;;;;;:::o;11055:78::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11121:4:::1;11107:11;;:18;;;;;;;;;;;;;;;;;;11055:78::o:0;10621:425::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:1:::1;10745:17;:22;;10737:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10851:1;10834:13;:18;;10826:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10934:44;10974:3;10934:35;10951:17;4412:1;4467:2;:15;;;;:::i;:::-;4454:9;:29;;;;:::i;:::-;10934:16;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;10915:16;:63;;;;10998:40;11034:3;10998:31;11015:13;4412:1;4467:2;:15;;;;:::i;:::-;4454:9;:29;;;;:::i;:::-;10998:16;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;10989:6;:49;;;;10621:425:::0;;:::o;10115:77::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10180:4:::1;10163:14;;:21;;;;;;;;;;;;;;;;;;10115:77::o:0;3393:71::-;3436:5;4412:1;3445:16;;3393:71;:::o;11141:105::-;11205:11;11191:25;;:10;:25;;;11183:34;;;;;;11228:10;:8;:10::i;:::-;11141:105::o;11255:100::-;11303:11;11295:29;;:52;11325:21;11295:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11255:100::o;4491:64::-;;;;:::o;5205:31::-;;;;;;;;;;;;;:::o;3703:96::-;3760:7;3778:9;:18;3788:7;3778:18;;;;;;;;;;;;;;;;3771:25;;3703:96;;;:::o;2557:131::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2630:1:::1;2614:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2648:32;2677:1;2648:32;;;;;;:::i;:::-;;;;;;;;2557:131::o:0;11363:125::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11446:5:::1;:14;;;11461:11;11474:5;11446:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11363:125:::0;;:::o;4563:54::-;;;;:::o;9929:178::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10011:9:::1;10006:94;10030:4;;:11;;10026:1;:15;10006:94;;;10083:4;10063:8;:17;10072:4;;10077:1;10072:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10063:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;10043:3;;;;;:::i;:::-;;;;10006:94;;;;9929:178:::0;;:::o;3628:69::-;3671:7;3689:5;;;;;;;;;;;3682:12;;3628:69;:::o;3470:75::-;3511:13;3535:7;;;;;;;;;;;;;;;;;3528:14;;3470:75;:::o;10204:409::-;2395:19;2403:10;2395:7;:19::i;:::-;2387:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10294:9:::1;10289:317;10313:4;;:11;;10309:1;:15;10289:317;;;10373:4;10354:24;;:4;;10359:1;10354:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;::::0;10346:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10453:6;10434:26;;:4;;10439:1;10434:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:26;;::::0;10426:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10527:4;10508:24;;:4;;10513:1;10508:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;::::0;10500:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10587:6;10570:5;:14;10576:4;;10581:1;10576:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10570:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10326:3;;;;;:::i;:::-;;;;10289:317;;;;10204:409:::0;;;:::o;5101:29::-;;;:::o;6140:147::-;6211:4;6235:44;6249:10;6261:9;6272:6;6235:13;:44::i;:::-;6228:51;;6140:147;;;;:::o;4871:77::-;;;;;;;;;;;;;;:::o;3805:124::-;3880:7;3898:11;:19;3910:6;3898:19;;;;;;;;;;;;;;;:28;3918:7;3898:28;;;;;;;;;;;;;;;;3891:35;;3805:124;;;;:::o;5052:42::-;;;:::o;723:246::-;781:7;810:1;805;:6;801:47;;835:1;828:8;;;;801:47;858:9;874:1;870;:5;;;;:::i;:::-;858:17;;903:1;898;894;:5;;;;:::i;:::-;:10;886:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;960:1;953:8;;;723:246;;;;;:::o;975:132::-;1033:7;1060:39;1064:1;1067;1060:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1053:46;;975:132;;;;:::o;2445:104::-;2501:4;2536:5;;;;;;;;;;;2525:16;;:7;:16;;;2518:23;;2445:104;;;:::o;527:190::-;613:7;646:1;641;:6;;649:12;633:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;673:9;689:1;685;:5;;;;:::i;:::-;673:17;;708:1;701:8;;;527:190;;;;;:::o;6662:1083::-;6764:4;5757:14;;;;;;;;;;;:36;;;;5788:5;;;;;;;;;;5775:18;;:9;:18;;;5757:36;5749:45;;;;;;6784:6:::1;;;;;;;;;;;:34;;;;6807:11;6794:24;;:9;:24;;;6784:34;6781:216;;;6840:40;6854:6;6862:9;6873:6;6840:13;:40::i;:::-;6833:47;;;;6781:216;6901:11;;;;;;;;;;;6900:12;:32;;;;;6927:4;6917:14;;:6;:14;;;6900:32;:56;;;;;6937:8;:19;6946:9;6937:19;;;;;;;;;;;;;;;;;;;;;;;;;6936:20;6900:56;6896:101;;;6980:5;6973:12;;;;6896:101;7018:5;:13;7024:6;7018:13;;;;;;;;;;;;;;;;;;;;;;;;;7017:14;7009:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7091:6;;7081;:16;;7073:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7176:4;7163:17;;:9;:17;;;;:38;;;;;4208:42;7184:17;;:9;:17;;;;7163:38;7159:175;;;7259:16;;7249:6;7226:9;:20;7236:9;7226:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7218:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;7159:175;7349:18;7360:6;7349:10;:18::i;:::-;7346:46;;;7382:10;:8;:10::i;:::-;7346:46;7405:22;7431:11;:19;7443:6;7431:19;;;;;;;;;;;;;;;;;;;;;;;;;7430:20;:66;;7490:6;7430:66;;;7453:34;7461:6;7469:9;7480:6;7453:7;:34::i;:::-;7430:66;7405:91;;7529:53;7551:6;7529:53;;;;;;;;;;;;;;;;::::0;:9:::1;:17;7539:6;7529:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7509:9;:17;7519:6;7509:17;;;;;;;;;;;;;;;:73;;;;7616:40;7641:14;7616:9;:20;7626:9;7616:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7593:9;:20;7603:9;7593:20;;;;;;;;;;;;;;;:63;;;;7689:9;7672:43;;7681:6;7672:43;;;7700:14;7672:43;;;;;;:::i;:::-;;;;;;;;7733:4;7726:11;;;5813:1;6662:1083:::0;;;;;:::o;7907:583::-;5868:4;5859:6;;:13;;;;;;;;;;;;;;;;;;7956:20:::1;8007:6;;7979:24;7997:4;7979:9;:24::i;:::-;:34;;:55;;8025:9;7979:55;;;8016:6;;7979:55;7956:78;;8045:38;8061:6;8070:12;8045:7;:38::i;:::-;;8094:21;8132:1;8118:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8094:40;;8163:4;8145;8150:1;8145:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4127:42;8179:4;8184:1;8179:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;;;;;;::::0;::::1;8205:6;:57;;;8277:12;8304:1;8320:4;8347;8367:15;8205:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8405:12;8423:11;:16;;8447:21;8423:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8404:69;;;7945:545;;;5904:5:::0;5895:6;;:14;;;;;;;;;;;;;;;;;;7907:583::o;1113:189::-;1199:7;1231:1;1227;:5;1234:12;1219:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1258:9;1274:1;1270;:5;;;;:::i;:::-;1258:17;;1293:1;1286:8;;;1113:189;;;;;:::o;9140:305::-;9232:4;9269:29;9291:6;9269:9;:17;9279:6;9269:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9249:9;:17;9259:6;9249:17;;;;;;;;;;;;;;;:49;;;;9332:32;9357:6;9332:9;:20;9342:9;9332:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9309:9;:20;9319:9;9309:20;;;;;;;;;;;;;;;:55;;;;9397:9;9380:35;;9389:6;9380:35;;;9408:6;9380:35;;;;;;:::i;:::-;;;;;;;;9433:4;9426:11;;9140:305;;;;;:::o;7753:146::-;7812:4;7846;7836:14;;:6;:14;;;;:55;;;;;7882:9;7854:24;7872:4;7854:9;:24::i;:::-;:37;;7836:55;7829:62;;7753:146;;;:::o;8502:630::-;8588:7;8608:17;8628:1;8608:21;;8654:4;8644:14;;:6;:14;;;:35;;;;;8678:1;8662:5;:12;;;:17;;8644:35;8640:446;;;8725:44;4991:3;8725:24;8736:5;:12;;;8725:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;8713:56;;8811:39;8840:9;8811;:24;8829:4;8811:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8784:9;:24;8802:4;8784:24;;;;;;;;;;;;;;;:66;;;;8640:446;;;8885:4;8872:17;;:9;:17;;;:39;;;;;8910:1;8893:5;:13;;;:18;;8872:39;8868:218;;;8948:45;4991:3;8948:25;8959:5;:13;;;8948:6;:10;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;8936:57;;9035:39;9064:9;9035;:24;9053:4;9035:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9008:9;:24;9026:4;9008:24;;;;;;;;;;;;;;;:66;;;;8868:218;8640:446;9103:21;9114:9;9103:6;:10;;:21;;;;:::i;:::-;9096:28;;;8502:630;;;;;:::o;200:179::-;258:7;278:9;294:1;290;:5;;;;:::i;:::-;278:17;;319:1;314;:6;;306:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;370:1;363:8;;;200:179;;;;:::o;385:136::-;443:7;470:43;474:1;477;470:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;463:50;;385:136;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:117::-;4035:1;4032;4025:12;4049:117;4158:1;4155;4148:12;4172:117;4281:1;4278;4271:12;4312:568;4385:8;4395:6;4445:3;4438:4;4430:6;4426:17;4422:27;4412:122;;4453:79;;:::i;:::-;4412:122;4566:6;4553:20;4543:30;;4596:18;4588:6;4585:30;4582:117;;;4618:79;;:::i;:::-;4582:117;4732:4;4724:6;4720:17;4708:29;;4786:3;4778:4;4770:6;4766:17;4756:8;4752:32;4749:41;4746:128;;;4793:79;;:::i;:::-;4746:128;4312:568;;;;;:::o;4886:116::-;4956:21;4971:5;4956:21;:::i;:::-;4949:5;4946:32;4936:60;;4992:1;4989;4982:12;4936:60;4886:116;:::o;5008:133::-;5051:5;5089:6;5076:20;5067:29;;5105:30;5129:5;5105:30;:::i;:::-;5008:133;;;;:::o;5147:698::-;5239:6;5247;5255;5304:2;5292:9;5283:7;5279:23;5275:32;5272:119;;;5310:79;;:::i;:::-;5272:119;5458:1;5447:9;5443:17;5430:31;5488:18;5480:6;5477:30;5474:117;;;5510:79;;:::i;:::-;5474:117;5623:80;5695:7;5686:6;5675:9;5671:22;5623:80;:::i;:::-;5605:98;;;;5401:312;5752:2;5778:50;5820:7;5811:6;5800:9;5796:22;5778:50;:::i;:::-;5768:60;;5723:115;5147:698;;;;;:::o;5851:118::-;5938:24;5956:5;5938:24;:::i;:::-;5933:3;5926:37;5851:118;;:::o;5975:222::-;6068:4;6106:2;6095:9;6091:18;6083:26;;6119:71;6187:1;6176:9;6172:17;6163:6;6119:71;:::i;:::-;5975:222;;;;:::o;6203:619::-;6280:6;6288;6296;6345:2;6333:9;6324:7;6320:23;6316:32;6313:119;;;6351:79;;:::i;:::-;6313:119;6471:1;6496:53;6541:7;6532:6;6521:9;6517:22;6496:53;:::i;:::-;6486:63;;6442:117;6598:2;6624:53;6669:7;6660:6;6649:9;6645:22;6624:53;:::i;:::-;6614:63;;6569:118;6726:2;6752:53;6797:7;6788:6;6777:9;6773:22;6752:53;:::i;:::-;6742:63;;6697:118;6203:619;;;;;:::o;6828:86::-;6863:7;6903:4;6896:5;6892:16;6881:27;;6828:86;;;:::o;6920:112::-;7003:22;7019:5;7003:22;:::i;:::-;6998:3;6991:35;6920:112;;:::o;7038:214::-;7127:4;7165:2;7154:9;7150:18;7142:26;;7178:67;7242:1;7231:9;7227:17;7218:6;7178:67;:::i;:::-;7038:214;;;;:::o;7258:329::-;7317:6;7366:2;7354:9;7345:7;7341:23;7337:32;7334:119;;;7372:79;;:::i;:::-;7334:119;7492:1;7517:53;7562:7;7553:6;7542:9;7538:22;7517:53;:::i;:::-;7507:63;;7463:117;7258:329;;;;:::o;7593:109::-;7643:7;7672:24;7690:5;7672:24;:::i;:::-;7661:35;;7593:109;;;:::o;7708:148::-;7794:37;7825:5;7794:37;:::i;:::-;7787:5;7784:48;7774:76;;7846:1;7843;7836:12;7774:76;7708:148;:::o;7862:165::-;7921:5;7959:6;7946:20;7937:29;;7975:46;8015:5;7975:46;:::i;:::-;7862:165;;;;:::o;8033:500::-;8114:6;8122;8171:2;8159:9;8150:7;8146:23;8142:32;8139:119;;;8177:79;;:::i;:::-;8139:119;8297:1;8322:66;8380:7;8371:6;8360:9;8356:22;8322:66;:::i;:::-;8312:76;;8268:130;8437:2;8463:53;8508:7;8499:6;8488:9;8484:22;8463:53;:::i;:::-;8453:63;;8408:118;8033:500;;;;;:::o;8539:559::-;8625:6;8633;8682:2;8670:9;8661:7;8657:23;8653:32;8650:119;;;8688:79;;:::i;:::-;8650:119;8836:1;8825:9;8821:17;8808:31;8866:18;8858:6;8855:30;8852:117;;;8888:79;;:::i;:::-;8852:117;9001:80;9073:7;9064:6;9053:9;9049:22;9001:80;:::i;:::-;8983:98;;;;8779:312;8539:559;;;;;:::o;9104:118::-;9191:24;9209:5;9191:24;:::i;:::-;9186:3;9179:37;9104:118;;:::o;9228:222::-;9321:4;9359:2;9348:9;9344:18;9336:26;;9372:71;9440:1;9429:9;9425:17;9416:6;9372:71;:::i;:::-;9228:222;;;;:::o;9456:332::-;9577:4;9615:2;9604:9;9600:18;9592:26;;9628:71;9696:1;9685:9;9681:17;9672:6;9628:71;:::i;:::-;9709:72;9777:2;9766:9;9762:18;9753:6;9709:72;:::i;:::-;9456:332;;;;;:::o;9794:474::-;9862:6;9870;9919:2;9907:9;9898:7;9894:23;9890:32;9887:119;;;9925:79;;:::i;:::-;9887:119;10045:1;10070:53;10115:7;10106:6;10095:9;10091:22;10070:53;:::i;:::-;10060:63;;10016:117;10172:2;10198:53;10243:7;10234:6;10223:9;10219:22;10198:53;:::i;:::-;10188:63;;10143:118;9794:474;;;;;:::o;10274:60::-;10302:3;10323:5;10316:12;;10274:60;;;:::o;10340:142::-;10390:9;10423:53;10441:34;10450:24;10468:5;10450:24;:::i;:::-;10441:34;:::i;:::-;10423:53;:::i;:::-;10410:66;;10340:142;;;:::o;10488:126::-;10538:9;10571:37;10602:5;10571:37;:::i;:::-;10558:50;;10488:126;;;:::o;10620:152::-;10696:9;10729:37;10760:5;10729:37;:::i;:::-;10716:50;;10620:152;;;:::o;10778:183::-;10891:63;10948:5;10891:63;:::i;:::-;10886:3;10879:76;10778:183;;:::o;10967:274::-;11086:4;11124:2;11113:9;11109:18;11101:26;;11137:97;11231:1;11220:9;11216:17;11207:6;11137:97;:::i;:::-;10967:274;;;;:::o;11247:156::-;11387:8;11383:1;11375:6;11371:14;11364:32;11247:156;:::o;11409:365::-;11551:3;11572:66;11636:1;11631:3;11572:66;:::i;:::-;11565:73;;11647:93;11736:3;11647:93;:::i;:::-;11765:2;11760:3;11756:12;11749:19;;11409:365;;;:::o;11780:419::-;11946:4;11984:2;11973:9;11969:18;11961:26;;12033:9;12027:4;12023:20;12019:1;12008:9;12004:17;11997:47;12061:131;12187:4;12061:131;:::i;:::-;12053:139;;11780:419;;;:::o;12205:172::-;12345:24;12341:1;12333:6;12329:14;12322:48;12205:172;:::o;12383:366::-;12525:3;12546:67;12610:2;12605:3;12546:67;:::i;:::-;12539:74;;12622:93;12711:3;12622:93;:::i;:::-;12740:2;12735:3;12731:12;12724:19;;12383:366;;;:::o;12755:419::-;12921:4;12959:2;12948:9;12944:18;12936:26;;13008:9;13002:4;12998:20;12994:1;12983:9;12979:17;12972:47;13036:131;13162:4;13036:131;:::i;:::-;13028:139;;12755:419;;;:::o;13180:180::-;13228:77;13225:1;13218:88;13325:4;13322:1;13315:15;13349:4;13346:1;13339:15;13366:180;13414:77;13411:1;13404:88;13511:4;13508:1;13501:15;13535:4;13532:1;13525:15;13552:233;13591:3;13614:24;13632:5;13614:24;:::i;:::-;13605:33;;13660:66;13653:5;13650:77;13647:103;;13730:18;;:::i;:::-;13647:103;13777:1;13770:5;13766:13;13759:20;;13552:233;;;:::o;13791:102::-;13833:8;13880:5;13877:1;13873:13;13852:34;;13791:102;;;:::o;13899:848::-;13960:5;13967:4;13991:6;13982:15;;14015:5;14006:14;;14029:712;14050:1;14040:8;14037:15;14029:712;;;14145:4;14140:3;14136:14;14130:4;14127:24;14124:50;;;14154:18;;:::i;:::-;14124:50;14204:1;14194:8;14190:16;14187:451;;;14619:4;14612:5;14608:16;14599:25;;14187:451;14669:4;14663;14659:15;14651:23;;14699:32;14722:8;14699:32;:::i;:::-;14687:44;;14029:712;;;13899:848;;;;;;;:::o;14753:1073::-;14807:5;14998:8;14988:40;;15019:1;15010:10;;15021:5;;14988:40;15047:4;15037:36;;15064:1;15055:10;;15066:5;;15037:36;15133:4;15181:1;15176:27;;;;15217:1;15212:191;;;;15126:277;;15176:27;15194:1;15185:10;;15196:5;;;15212:191;15257:3;15247:8;15244:17;15241:43;;;15264:18;;:::i;:::-;15241:43;15313:8;15310:1;15306:16;15297:25;;15348:3;15341:5;15338:14;15335:40;;;15355:18;;:::i;:::-;15335:40;15388:5;;;15126:277;;15512:2;15502:8;15499:16;15493:3;15487:4;15484:13;15480:36;15462:2;15452:8;15449:16;15444:2;15438:4;15435:12;15431:35;15415:111;15412:246;;;15568:8;15562:4;15558:19;15549:28;;15603:3;15596:5;15593:14;15590:40;;;15610:18;;:::i;:::-;15590:40;15643:5;;15412:246;15683:42;15721:3;15711:8;15705:4;15702:1;15683:42;:::i;:::-;15668:57;;;;15757:4;15752:3;15748:14;15741:5;15738:25;15735:51;;;15766:18;;:::i;:::-;15735:51;15815:4;15808:5;15804:16;15795:25;;14753:1073;;;;;;:::o;15832:281::-;15890:5;15914:23;15932:4;15914:23;:::i;:::-;15906:31;;15958:25;15974:8;15958:25;:::i;:::-;15946:37;;16002:104;16039:66;16029:8;16023:4;16002:104;:::i;:::-;15993:113;;15832:281;;;;:::o;16119:410::-;16159:7;16182:20;16200:1;16182:20;:::i;:::-;16177:25;;16216:20;16234:1;16216:20;:::i;:::-;16211:25;;16271:1;16268;16264:9;16293:30;16311:11;16293:30;:::i;:::-;16282:41;;16472:1;16463:7;16459:15;16456:1;16453:22;16433:1;16426:9;16406:83;16383:139;;16502:18;;:::i;:::-;16383:139;16167:362;16119:410;;;;:::o;16535:231::-;16675:34;16671:1;16663:6;16659:14;16652:58;16744:14;16739:2;16731:6;16727:15;16720:39;16535:231;:::o;16772:366::-;16914:3;16935:67;16999:2;16994:3;16935:67;:::i;:::-;16928:74;;17011:93;17100:3;17011:93;:::i;:::-;17129:2;17124:3;17120:12;17113:19;;16772:366;;;:::o;17144:419::-;17310:4;17348:2;17337:9;17333:18;17325:26;;17397:9;17391:4;17387:20;17383:1;17372:9;17368:17;17361:47;17425:131;17551:4;17425:131;:::i;:::-;17417:139;;17144:419;;;:::o;17569:232::-;17709:34;17705:1;17697:6;17693:14;17686:58;17778:15;17773:2;17765:6;17761:15;17754:40;17569:232;:::o;17807:366::-;17949:3;17970:67;18034:2;18029:3;17970:67;:::i;:::-;17963:74;;18046:93;18135:3;18046:93;:::i;:::-;18164:2;18159:3;18155:12;18148:19;;17807:366;;;:::o;18179:419::-;18345:4;18383:2;18372:9;18368:18;18360:26;;18432:9;18426:4;18422:20;18418:1;18407:9;18403:17;18396:47;18460:131;18586:4;18460:131;:::i;:::-;18452:139;;18179:419;;;:::o;18604:134::-;18662:9;18695:37;18726:5;18695:37;:::i;:::-;18682:50;;18604:134;;;:::o;18744:147::-;18839:45;18878:5;18839:45;:::i;:::-;18834:3;18827:58;18744:147;;:::o;18897:348::-;19026:4;19064:2;19053:9;19049:18;19041:26;;19077:79;19153:1;19142:9;19138:17;19129:6;19077:79;:::i;:::-;19166:72;19234:2;19223:9;19219:18;19210:6;19166:72;:::i;:::-;18897:348;;;;;:::o;19251:137::-;19305:5;19336:6;19330:13;19321:22;;19352:30;19376:5;19352:30;:::i;:::-;19251:137;;;;:::o;19394:345::-;19461:6;19510:2;19498:9;19489:7;19485:23;19481:32;19478:119;;;19516:79;;:::i;:::-;19478:119;19636:1;19661:61;19714:7;19705:6;19694:9;19690:22;19661:61;:::i;:::-;19651:71;;19607:125;19394:345;;;;:::o;19745:178::-;19885:30;19881:1;19873:6;19869:14;19862:54;19745:178;:::o;19929:366::-;20071:3;20092:67;20156:2;20151:3;20092:67;:::i;:::-;20085:74;;20168:93;20257:3;20168:93;:::i;:::-;20286:2;20281:3;20277:12;20270:19;;19929:366;;;:::o;20301:419::-;20467:4;20505:2;20494:9;20490:18;20482:26;;20554:9;20548:4;20544:20;20540:1;20529:9;20525:17;20518:47;20582:131;20708:4;20582:131;:::i;:::-;20574:139;;20301:419;;;:::o;20726:170::-;20866:22;20862:1;20854:6;20850:14;20843:46;20726:170;:::o;20902:366::-;21044:3;21065:67;21129:2;21124:3;21065:67;:::i;:::-;21058:74;;21141:93;21230:3;21141:93;:::i;:::-;21259:2;21254:3;21250:12;21243:19;;20902:366;;;:::o;21274:419::-;21440:4;21478:2;21467:9;21463:18;21455:26;;21527:9;21521:4;21517:20;21513:1;21502:9;21498:17;21491:47;21555:131;21681:4;21555:131;:::i;:::-;21547:139;;21274:419;;;:::o;21699:168::-;21839:20;21835:1;21827:6;21823:14;21816:44;21699:168;:::o;21873:366::-;22015:3;22036:67;22100:2;22095:3;22036:67;:::i;:::-;22029:74;;22112:93;22201:3;22112:93;:::i;:::-;22230:2;22225:3;22221:12;22214:19;;21873:366;;;:::o;22245:419::-;22411:4;22449:2;22438:9;22434:18;22426:26;;22498:9;22492:4;22488:20;22484:1;22473:9;22469:17;22462:47;22526:131;22652:4;22526:131;:::i;:::-;22518:139;;22245:419;;;:::o;22670:180::-;22718:77;22715:1;22708:88;22815:4;22812:1;22805:15;22839:4;22836:1;22829:15;22856:185;22896:1;22913:20;22931:1;22913:20;:::i;:::-;22908:25;;22947:20;22965:1;22947:20;:::i;:::-;22942:25;;22986:1;22976:35;;22991:18;;:::i;:::-;22976:35;23033:1;23030;23026:9;23021:14;;22856:185;;;;:::o;23047:220::-;23187:34;23183:1;23175:6;23171:14;23164:58;23256:3;23251:2;23243:6;23239:15;23232:28;23047:220;:::o;23273:366::-;23415:3;23436:67;23500:2;23495:3;23436:67;:::i;:::-;23429:74;;23512:93;23601:3;23512:93;:::i;:::-;23630:2;23625:3;23621:12;23614:19;;23273:366;;;:::o;23645:419::-;23811:4;23849:2;23838:9;23834:18;23826:26;;23898:9;23892:4;23888:20;23884:1;23873:9;23869:17;23862:47;23926:131;24052:4;23926:131;:::i;:::-;23918:139;;23645:419;;;:::o;24070:194::-;24110:4;24130:20;24148:1;24130:20;:::i;:::-;24125:25;;24164:20;24182:1;24164:20;:::i;:::-;24159:25;;24208:1;24205;24201:9;24193:17;;24232:1;24226:4;24223:11;24220:37;;;24237:18;;:::i;:::-;24220:37;24070:194;;;;:::o;24270:176::-;24410:28;24406:1;24398:6;24394:14;24387:52;24270:176;:::o;24452:366::-;24594:3;24615:67;24679:2;24674:3;24615:67;:::i;:::-;24608:74;;24691:93;24780:3;24691:93;:::i;:::-;24809:2;24804:3;24800:12;24793:19;;24452:366;;;:::o;24824:419::-;24990:4;25028:2;25017:9;25013:18;25005:26;;25077:9;25071:4;25067:20;25063:1;25052:9;25048:17;25041:47;25105:131;25231:4;25105:131;:::i;:::-;25097:139;;24824:419;;;:::o;25249:223::-;25389:34;25385:1;25377:6;25373:14;25366:58;25458:6;25453:2;25445:6;25441:15;25434:31;25249:223;:::o;25478:366::-;25620:3;25641:67;25705:2;25700:3;25641:67;:::i;:::-;25634:74;;25717:93;25806:3;25717:93;:::i;:::-;25835:2;25830:3;25826:12;25819:19;;25478:366;;;:::o;25850:419::-;26016:4;26054:2;26043:9;26039:18;26031:26;;26103:9;26097:4;26093:20;26089:1;26078:9;26074:17;26067:47;26131:131;26257:4;26131:131;:::i;:::-;26123:139;;25850:419;;;:::o;26275:191::-;26315:3;26334:20;26352:1;26334:20;:::i;:::-;26329:25;;26368:20;26386:1;26368:20;:::i;:::-;26363:25;;26411:1;26408;26404:9;26397:16;;26432:3;26429:1;26426:10;26423:36;;;26439:18;;:::i;:::-;26423:36;26275:191;;;;:::o;26472:229::-;26612:34;26608:1;26600:6;26596:14;26589:58;26681:12;26676:2;26668:6;26664:15;26657:37;26472:229;:::o;26707:366::-;26849:3;26870:67;26934:2;26929:3;26870:67;:::i;:::-;26863:74;;26946:93;27035:3;26946:93;:::i;:::-;27064:2;27059:3;27055:12;27048:19;;26707:366;;;:::o;27079:419::-;27245:4;27283:2;27272:9;27268:18;27260:26;;27332:9;27326:4;27322:20;27318:1;27307:9;27303:17;27296:47;27360:131;27486:4;27360:131;:::i;:::-;27352:139;;27079:419;;;:::o;27504:180::-;27552:77;27549:1;27542:88;27649:4;27646:1;27639:15;27673:4;27670:1;27663:15;27690:85;27735:7;27764:5;27753:16;;27690:85;;;:::o;27781:158::-;27839:9;27872:61;27890:42;27899:32;27925:5;27899:32;:::i;:::-;27890:42;:::i;:::-;27872:61;:::i;:::-;27859:74;;27781:158;;;:::o;27945:147::-;28040:45;28079:5;28040:45;:::i;:::-;28035:3;28028:58;27945:147;;:::o;28098:114::-;28165:6;28199:5;28193:12;28183:22;;28098:114;;;:::o;28218:184::-;28317:11;28351:6;28346:3;28339:19;28391:4;28386:3;28382:14;28367:29;;28218:184;;;;:::o;28408:132::-;28475:4;28498:3;28490:11;;28528:4;28523:3;28519:14;28511:22;;28408:132;;;:::o;28546:108::-;28623:24;28641:5;28623:24;:::i;:::-;28618:3;28611:37;28546:108;;:::o;28660:179::-;28729:10;28750:46;28792:3;28784:6;28750:46;:::i;:::-;28828:4;28823:3;28819:14;28805:28;;28660:179;;;;:::o;28845:113::-;28915:4;28947;28942:3;28938:14;28930:22;;28845:113;;;:::o;28994:732::-;29113:3;29142:54;29190:5;29142:54;:::i;:::-;29212:86;29291:6;29286:3;29212:86;:::i;:::-;29205:93;;29322:56;29372:5;29322:56;:::i;:::-;29401:7;29432:1;29417:284;29442:6;29439:1;29436:13;29417:284;;;29518:6;29512:13;29545:63;29604:3;29589:13;29545:63;:::i;:::-;29538:70;;29631:60;29684:6;29631:60;:::i;:::-;29621:70;;29477:224;29464:1;29461;29457:9;29452:14;;29417:284;;;29421:14;29717:3;29710:10;;29118:608;;;28994:732;;;;:::o;29732:831::-;29995:4;30033:3;30022:9;30018:19;30010:27;;30047:71;30115:1;30104:9;30100:17;30091:6;30047:71;:::i;:::-;30128:80;30204:2;30193:9;30189:18;30180:6;30128:80;:::i;:::-;30255:9;30249:4;30245:20;30240:2;30229:9;30225:18;30218:48;30283:108;30386:4;30377:6;30283:108;:::i;:::-;30275:116;;30401:72;30469:2;30458:9;30454:18;30445:6;30401:72;:::i;:::-;30483:73;30551:3;30540:9;30536:19;30527:6;30483:73;:::i;:::-;29732:831;;;;;;;;:::o;30569:147::-;30670:11;30707:3;30692:18;;30569:147;;;;:::o;30722:114::-;;:::o;30842:398::-;31001:3;31022:83;31103:1;31098:3;31022:83;:::i;:::-;31015:90;;31114:93;31203:3;31114:93;:::i;:::-;31232:1;31227:3;31223:11;31216:18;;30842:398;;;:::o;31246:379::-;31430:3;31452:147;31595:3;31452:147;:::i;:::-;31445:154;;31616:3;31609:10;;31246:379;;;:::o;31631:177::-;31771:29;31767:1;31759:6;31755:14;31748:53;31631:177;:::o;31814:366::-;31956:3;31977:67;32041:2;32036:3;31977:67;:::i;:::-;31970:74;;32053:93;32142:3;32053:93;:::i;:::-;32171:2;32166:3;32162:12;32155:19;;31814:366;;;:::o;32186:419::-;32352:4;32390:2;32379:9;32375:18;32367:26;;32439:9;32433:4;32429:20;32425:1;32414:9;32410:17;32403:47;32467:131;32593:4;32467:131;:::i;:::-;32459:139;;32186:419;;;:::o

Swarm Source

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