ETH Price: $2,598.17 (+0.28%)
Gas: 1 Gwei

Token

ARCHERO (HERO)
 

Overview

Max Total Supply

80,000,000 HERO

Holders

235

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8.892904911872439555 HERO

Value
$0.00
0xf03b5F229A14B53094D9566642Fb5e2e7273586d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
ARCHERO

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Maximize Gains, Minimize Risks, Archero Knows the Way.

https://t.me/archeroportal
https://archero.org/
https://x.com/archerocoin

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract ARCHERO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 80000000 * 10**_decimals;
    string private constant _name = unicode"ARCHERO";
    string private constant _symbol = unicode"HERO";
    uint256 public _maxTxAmount =   800000 * 10**_decimals;
    uint256 public _maxWalletSize = 800000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 650000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(_tTotal.mul(2).div(100),contractTokenBalance));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

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

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

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

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

    function newFee(uint256 _newBuyFee,uint256 _newSellFee) external onlyOwner{
        _finalBuyTax=_newBuyFee;
        _finalSellTax=_newSellFee;
    }

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

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    
    
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"killBanana","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"newFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60065f6101000a81548160ff0219169083151502179055506019600755602360085560046009556004600a55601e600b556028600c55600f600d555f600e556012600a620000549190620005e8565b620c350062000064919062000638565b600f556012600a620000779190620005e8565b620c350062000087919062000638565b6010556012600a6200009a9190620005e8565b6209eb10620000aa919062000638565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff021916908315150217905550348015620000ed575f80fd5b505f620000ff6200042860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ab6200042860201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001fb9190620005e8565b6304c4b4006200020c919062000638565b60015f6200021f6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002716200042f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200039c6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003fa9190620005e8565b6304c4b4006200040b919062000638565b6040516200041a919062000693565b60405180910390a3620006ae565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004e057808604811115620004b857620004b762000456565b5b6001851615620004c85780820291505b8081029050620004d88562000483565b945062000498565b94509492505050565b5f82620004fa5760019050620005cc565b8162000509575f9050620005cc565b81600181146200052257600281146200052d5762000563565b6001915050620005cc565b60ff84111562000542576200054162000456565b5b8360020a9150848211156200055c576200055b62000456565b5b50620005cc565b5060208310610133831016604e8410600b84101617156200059d5782820a90508381111562000597576200059662000456565b5b620005cc565b620005ac84848460016200048f565b92509050818404811115620005c657620005c562000456565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005f482620005d3565b91506200060183620005dc565b9250620006307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004e9565b905092915050565b5f6200064482620005d3565b91506200065183620005d3565b92508282026200066181620005d3565b915082820484148315176200067b576200067a62000456565b5b5092915050565b6200068d81620005d3565b82525050565b5f602082019050620006a85f83018462000682565b92915050565b6134d080620006bc5f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103b8578063bf474bed146103f4578063c876d0b91461041e578063c9567bf914610448578063dd62ed3e1461045e578063f61945a11461049a57610134565b8063751039fc146102fa5780637d1db4a5146103105780638da5cb5b1461033a5780638f9a55c01461036457806395d89b411461038e57610134565b8063313ce567116100f1578063313ce5671461022c5780633bbac579146102565780634b307f801461029257806370a08231146102a8578063715018a6146102e457610134565b806306fdde031461013857806307056d3714610162578063095ea7b31461018a57806318160ddd146101c657806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c2565b6040516101599190612443565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906124a7565b6104ff565b005b348015610195575f80fd5b506101b060048036038101906101ab919061253f565b6105a5565b6040516101bd9190612597565b60405180910390f35b3480156101d1575f80fd5b506101da6105c2565b6040516101e791906125bf565b60405180910390f35b3480156101fb575f80fd5b50610216600480360381019061021191906125d8565b6105e5565b6040516102239190612597565b60405180910390f35b348015610237575f80fd5b506102406106b9565b60405161024d9190612643565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061265c565b6106c1565b6040516102899190612597565b60405180910390f35b34801561029d575f80fd5b506102a6610713565b005b3480156102b3575f80fd5b506102ce60048036038101906102c9919061265c565b6107ab565b6040516102db91906125bf565b60405180910390f35b3480156102ef575f80fd5b506102f86107f1565b005b348015610305575f80fd5b5061030e61093f565b005b34801561031b575f80fd5b50610324610a87565b60405161033191906125bf565b60405180910390f35b348015610345575f80fd5b5061034e610a8d565b60405161035b9190612696565b60405180910390f35b34801561036f575f80fd5b50610378610ab4565b60405161038591906125bf565b60405180910390f35b348015610399575f80fd5b506103a2610aba565b6040516103af9190612443565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d9919061253f565b610af7565b6040516103eb9190612597565b60405180910390f35b3480156103ff575f80fd5b50610408610b14565b60405161041591906125bf565b60405180910390f35b348015610429575f80fd5b50610432610b1a565b60405161043f9190612597565b60405180910390f35b348015610453575f80fd5b5061045c610b2c565b005b348015610469575f80fd5b50610484600480360381019061047f91906126af565b61104e565b60405161049191906125bf565b60405180910390f35b3480156104a5575f80fd5b506104c060048036038101906104bb919061282d565b6110d0565b005b60606040518060400160405280600781526020017f4152434845524f00000000000000000000000000000000000000000000000000815250905090565b6105076111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a906128be565b60405180910390fd5b8160098190555080600a819055505050565b5f6105b86105b16111f5565b84846111fc565b6001905092915050565b5f6012600a6105d19190612a38565b6304c4b4006105e09190612a82565b905090565b5f6105f18484846113bf565b6106ae846105fd6111f5565b6106a9856040518060600160405280602881526020016134736028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106606111f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e759092919063ffffffff16565b6111fc565b600190509392505050565b5f6012905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107546111f5565b73ffffffffffffffffffffffffffffffffffffffff1614610773575f80fd5b5f61077d306107ab565b90505f8111156107915761079081611ed7565b5b5f4790505f8111156107a7576107a681612160565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107f96111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906128be565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109476111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca906128be565b60405180910390fd5b6012600a6109e19190612a38565b6304c4b4006109f09190612a82565b600f819055506012600a610a049190612a38565b6304c4b400610a139190612a82565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610a619190612a38565b6304c4b400610a709190612a82565b604051610a7d91906125bf565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4845524f00000000000000000000000000000000000000000000000000000000815250905090565b5f610b0a610b036111f5565b84846113bf565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610b346111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb7906128be565b60405180910390fd5b601360149054906101000a900460ff1615610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612b0d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cac3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610c989190612a38565b6304c4b400610ca79190612a82565b6111fc565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3a9190612b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de49190612b3f565b6040518363ffffffff1660e01b8152600401610e01929190612b6a565b6020604051808303815f875af1158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612b3f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ec8306107ab565b5f80610ed2610a8d565b426040518863ffffffff1660e01b8152600401610ef496959493929190612bd3565b60606040518083038185885af1158015610f10573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f359190612c46565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fd5929190612c96565b6020604051808303815f875af1158015610ff1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110159190612ce7565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110d86111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b906128be565b60405180910390fd5b5f5b81518110156111f157600160045f84848151811061118757611186612d12565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806111e990612d3f565b915050611166565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612df6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612e84565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b291906125bf565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490612f12565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290612fa0565b60405180910390fd5b5f81116114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d49061302e565b60405180910390fd5b5f6114e6610a8d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115545750611524610a8d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bc55760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115f7575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6115ff575f80fd5b60065f9054906101000a900460ff16156117855760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116bd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611784574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738906130bc565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561182e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611881575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561195a57600f548211156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290613124565b60405180910390fd5b601054826118d8856107ab565b6118e29190613142565b1115611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a906131bf565b60405180910390fd5b600d54600e54101561194257611938836121c9565b15611941575f80fd5b5b600e5f81548092919061195490612d3f565b91905055505b6119966064611988600b54600e541161197557600754611979565b6009545b856121da90919063ffffffff16565b61225190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611aa957600f54821115611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190613124565b60405180910390fd5b611aa66064611a98600c54600e5411611a8557600854611a89565b600a545b856121da90919063ffffffff16565b61225190919063ffffffff16565b90505b5f611ab3306107ab565b9050601360159054906101000a900460ff16158015611b1e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b365750601360169054906101000a900460ff165b8015611b43575060115481115b8015611b525750600d54600e54115b15611bc357611bab611ba6611ba06064611b9260026012600a611b759190612a38565b6304c4b400611b849190612a82565b6121da90919063ffffffff16565b61225190919063ffffffff16565b8361229a565b611ed7565b5f4790505f811115611bc157611bc047612160565b5b505b505b5f811115611cc457611c1d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cbb91906125bf565b60405180910390a35b611d148260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461230f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611db7611d6b828461230f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e5a848661230f90919063ffffffff16565b604051611e6791906125bf565b60405180910390a350505050565b5f838311158290611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb39190612443565b60405180910390fd5b505f8385611eca91906131dd565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f81031561214357601360149054906101000a900460ff1615612143575f600267ffffffffffffffff811115611f2b57611f2a6126f1565b5b604051908082528060200260200182016040528015611f595781602001602082028036833780820191505090505b50905030815f81518110611f7057611f6f612d12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612014573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120389190612b3f565b8160018151811061204c5761204b612d12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b23060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111fc565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121149594939291906132c7565b5f604051808303815f87803b15801561212b575f80fd5b505af115801561213d573d5f803e3d5ffd5b50505050505b5f601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121c5573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121ea575f905061224b565b5f82846121f79190612a82565b9050828482612206919061334c565b14612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906133ec565b60405180910390fd5b809150505b92915050565b5f61229283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612358565b905092915050565b5f8183116122a857826122aa565b815b905092915050565b5f8082846122c09190613142565b905083811015612305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fc90613454565b60405180910390fd5b8091505092915050565b5f61235083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e75565b905092915050565b5f808311829061239e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123959190612443565b60405180910390fd5b505f83856123ac919061334c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123f05780820151818401526020810190506123d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612415826123b9565b61241f81856123c3565b935061242f8185602086016123d3565b612438816123fb565b840191505092915050565b5f6020820190508181035f83015261245b818461240b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61248681612474565b8114612490575f80fd5b50565b5f813590506124a18161247d565b92915050565b5f80604083850312156124bd576124bc61246c565b5b5f6124ca85828601612493565b92505060206124db85828601612493565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250e826124e5565b9050919050565b61251e81612504565b8114612528575f80fd5b50565b5f8135905061253981612515565b92915050565b5f80604083850312156125555761255461246c565b5b5f6125628582860161252b565b925050602061257385828601612493565b9150509250929050565b5f8115159050919050565b6125918161257d565b82525050565b5f6020820190506125aa5f830184612588565b92915050565b6125b981612474565b82525050565b5f6020820190506125d25f8301846125b0565b92915050565b5f805f606084860312156125ef576125ee61246c565b5b5f6125fc8682870161252b565b935050602061260d8682870161252b565b925050604061261e86828701612493565b9150509250925092565b5f60ff82169050919050565b61263d81612628565b82525050565b5f6020820190506126565f830184612634565b92915050565b5f602082840312156126715761267061246c565b5b5f61267e8482850161252b565b91505092915050565b61269081612504565b82525050565b5f6020820190506126a95f830184612687565b92915050565b5f80604083850312156126c5576126c461246c565b5b5f6126d28582860161252b565b92505060206126e38582860161252b565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612727826123fb565b810181811067ffffffffffffffff82111715612746576127456126f1565b5b80604052505050565b5f612758612463565b9050612764828261271e565b919050565b5f67ffffffffffffffff821115612783576127826126f1565b5b602082029050602081019050919050565b5f80fd5b5f6127aa6127a584612769565b61274f565b905080838252602082019050602084028301858111156127cd576127cc612794565b5b835b818110156127f657806127e2888261252b565b8452602084019350506020810190506127cf565b5050509392505050565b5f82601f830112612814576128136126ed565b5b8135612824848260208601612798565b91505092915050565b5f602082840312156128425761284161246c565b5b5f82013567ffffffffffffffff81111561285f5761285e612470565b5b61286b84828501612800565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128a86020836123c3565b91506128b382612874565b602082019050919050565b5f6020820190508181035f8301526128d58161289c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561295e5780860481111561293a576129396128dc565b5b60018516156129495780820291505b808102905061295785612909565b945061291e565b94509492505050565b5f826129765760019050612a31565b81612983575f9050612a31565b816001811461299957600281146129a3576129d2565b6001915050612a31565b60ff8411156129b5576129b46128dc565b5b8360020a9150848211156129cc576129cb6128dc565b5b50612a31565b5060208310610133831016604e8410600b8410161715612a075782820a905083811115612a0257612a016128dc565b5b612a31565b612a148484846001612915565b92509050818404811115612a2b57612a2a6128dc565b5b81810290505b9392505050565b5f612a4282612474565b9150612a4d83612628565b9250612a7a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612967565b905092915050565b5f612a8c82612474565b9150612a9783612474565b9250828202612aa581612474565b91508282048414831517612abc57612abb6128dc565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612af76017836123c3565b9150612b0282612ac3565b602082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b5f81519050612b3981612515565b92915050565b5f60208284031215612b5457612b5361246c565b5b5f612b6184828501612b2b565b91505092915050565b5f604082019050612b7d5f830185612687565b612b8a6020830184612687565b9392505050565b5f819050919050565b5f819050919050565b5f612bbd612bb8612bb384612b91565b612b9a565b612474565b9050919050565b612bcd81612ba3565b82525050565b5f60c082019050612be65f830189612687565b612bf360208301886125b0565b612c006040830187612bc4565b612c0d6060830186612bc4565b612c1a6080830185612687565b612c2760a08301846125b0565b979650505050505050565b5f81519050612c408161247d565b92915050565b5f805f60608486031215612c5d57612c5c61246c565b5b5f612c6a86828701612c32565b9350506020612c7b86828701612c32565b9250506040612c8c86828701612c32565b9150509250925092565b5f604082019050612ca95f830185612687565b612cb660208301846125b0565b9392505050565b612cc68161257d565b8114612cd0575f80fd5b50565b5f81519050612ce181612cbd565b92915050565b5f60208284031215612cfc57612cfb61246c565b5b5f612d0984828501612cd3565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612d4982612474565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d7b57612d7a6128dc565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612de06024836123c3565b9150612deb82612d86565b604082019050919050565b5f6020820190508181035f830152612e0d81612dd4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e6e6022836123c3565b9150612e7982612e14565b604082019050919050565b5f6020820190508181035f830152612e9b81612e62565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612efc6025836123c3565b9150612f0782612ea2565b604082019050919050565b5f6020820190508181035f830152612f2981612ef0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f8a6023836123c3565b9150612f9582612f30565b604082019050919050565b5f6020820190508181035f830152612fb781612f7e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130186029836123c3565b915061302382612fbe565b604082019050919050565b5f6020820190508181035f8301526130458161300c565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130a66024836123c3565b91506130b18261304c565b604082019050919050565b5f6020820190508181035f8301526130d38161309a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61310e6019836123c3565b9150613119826130da565b602082019050919050565b5f6020820190508181035f83015261313b81613102565b9050919050565b5f61314c82612474565b915061315783612474565b925082820190508082111561316f5761316e6128dc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6131a9601a836123c3565b91506131b482613175565b602082019050919050565b5f6020820190508181035f8301526131d68161319d565b9050919050565b5f6131e782612474565b91506131f283612474565b925082820390508181111561320a576132096128dc565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61324281612504565b82525050565b5f6132538383613239565b60208301905092915050565b5f602082019050919050565b5f61327582613210565b61327f818561321a565b935061328a8361322a565b805f5b838110156132ba5781516132a18882613248565b97506132ac8361325f565b92505060018101905061328d565b5085935050505092915050565b5f60a0820190506132da5f8301886125b0565b6132e76020830187612bc4565b81810360408301526132f9818661326b565b90506133086060830185612687565b61331560808301846125b0565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61335682612474565b915061336183612474565b9250826133715761337061331f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d66021836123c3565b91506133e18261337c565b604082019050919050565b5f6020820190508181035f830152613403816133ca565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61343e601b836123c3565b91506134498261340a565b602082019050919050565b5f6020820190508181035f83015261346b81613432565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220acabfe29cd3ac35c7538cc225af4aefcaf2317b6da76ca7541359a0dcff7752b64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103b8578063bf474bed146103f4578063c876d0b91461041e578063c9567bf914610448578063dd62ed3e1461045e578063f61945a11461049a57610134565b8063751039fc146102fa5780637d1db4a5146103105780638da5cb5b1461033a5780638f9a55c01461036457806395d89b411461038e57610134565b8063313ce567116100f1578063313ce5671461022c5780633bbac579146102565780634b307f801461029257806370a08231146102a8578063715018a6146102e457610134565b806306fdde031461013857806307056d3714610162578063095ea7b31461018a57806318160ddd146101c657806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104c2565b6040516101599190612443565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906124a7565b6104ff565b005b348015610195575f80fd5b506101b060048036038101906101ab919061253f565b6105a5565b6040516101bd9190612597565b60405180910390f35b3480156101d1575f80fd5b506101da6105c2565b6040516101e791906125bf565b60405180910390f35b3480156101fb575f80fd5b50610216600480360381019061021191906125d8565b6105e5565b6040516102239190612597565b60405180910390f35b348015610237575f80fd5b506102406106b9565b60405161024d9190612643565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061265c565b6106c1565b6040516102899190612597565b60405180910390f35b34801561029d575f80fd5b506102a6610713565b005b3480156102b3575f80fd5b506102ce60048036038101906102c9919061265c565b6107ab565b6040516102db91906125bf565b60405180910390f35b3480156102ef575f80fd5b506102f86107f1565b005b348015610305575f80fd5b5061030e61093f565b005b34801561031b575f80fd5b50610324610a87565b60405161033191906125bf565b60405180910390f35b348015610345575f80fd5b5061034e610a8d565b60405161035b9190612696565b60405180910390f35b34801561036f575f80fd5b50610378610ab4565b60405161038591906125bf565b60405180910390f35b348015610399575f80fd5b506103a2610aba565b6040516103af9190612443565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d9919061253f565b610af7565b6040516103eb9190612597565b60405180910390f35b3480156103ff575f80fd5b50610408610b14565b60405161041591906125bf565b60405180910390f35b348015610429575f80fd5b50610432610b1a565b60405161043f9190612597565b60405180910390f35b348015610453575f80fd5b5061045c610b2c565b005b348015610469575f80fd5b50610484600480360381019061047f91906126af565b61104e565b60405161049191906125bf565b60405180910390f35b3480156104a5575f80fd5b506104c060048036038101906104bb919061282d565b6110d0565b005b60606040518060400160405280600781526020017f4152434845524f00000000000000000000000000000000000000000000000000815250905090565b6105076111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a906128be565b60405180910390fd5b8160098190555080600a819055505050565b5f6105b86105b16111f5565b84846111fc565b6001905092915050565b5f6012600a6105d19190612a38565b6304c4b4006105e09190612a82565b905090565b5f6105f18484846113bf565b6106ae846105fd6111f5565b6106a9856040518060600160405280602881526020016134736028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106606111f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e759092919063ffffffff16565b6111fc565b600190509392505050565b5f6012905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107546111f5565b73ffffffffffffffffffffffffffffffffffffffff1614610773575f80fd5b5f61077d306107ab565b90505f8111156107915761079081611ed7565b5b5f4790505f8111156107a7576107a681612160565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107f96111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906128be565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109476111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca906128be565b60405180910390fd5b6012600a6109e19190612a38565b6304c4b4006109f09190612a82565b600f819055506012600a610a049190612a38565b6304c4b400610a139190612a82565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610a619190612a38565b6304c4b400610a709190612a82565b604051610a7d91906125bf565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4845524f00000000000000000000000000000000000000000000000000000000815250905090565b5f610b0a610b036111f5565b84846113bf565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610b346111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb7906128be565b60405180910390fd5b601360149054906101000a900460ff1615610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612b0d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cac3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610c989190612a38565b6304c4b400610ca79190612a82565b6111fc565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3a9190612b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de49190612b3f565b6040518363ffffffff1660e01b8152600401610e01929190612b6a565b6020604051808303815f875af1158015610e1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e419190612b3f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ec8306107ab565b5f80610ed2610a8d565b426040518863ffffffff1660e01b8152600401610ef496959493929190612bd3565b60606040518083038185885af1158015610f10573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f359190612c46565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fd5929190612c96565b6020604051808303815f875af1158015610ff1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110159190612ce7565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110d86111f5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b906128be565b60405180910390fd5b5f5b81518110156111f157600160045f84848151811061118757611186612d12565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806111e990612d3f565b915050611166565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612df6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612e84565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b291906125bf565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490612f12565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290612fa0565b60405180910390fd5b5f81116114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d49061302e565b60405180910390fd5b5f6114e6610a8d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115545750611524610a8d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bc55760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156115f7575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6115ff575f80fd5b60065f9054906101000a900460ff16156117855760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116bd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611784574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738906130bc565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561182e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611881575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561195a57600f548211156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290613124565b60405180910390fd5b601054826118d8856107ab565b6118e29190613142565b1115611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a906131bf565b60405180910390fd5b600d54600e54101561194257611938836121c9565b15611941575f80fd5b5b600e5f81548092919061195490612d3f565b91905055505b6119966064611988600b54600e541161197557600754611979565b6009545b856121da90919063ffffffff16565b61225190919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611aa957600f54821115611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190613124565b60405180910390fd5b611aa66064611a98600c54600e5411611a8557600854611a89565b600a545b856121da90919063ffffffff16565b61225190919063ffffffff16565b90505b5f611ab3306107ab565b9050601360159054906101000a900460ff16158015611b1e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b365750601360169054906101000a900460ff165b8015611b43575060115481115b8015611b525750600d54600e54115b15611bc357611bab611ba6611ba06064611b9260026012600a611b759190612a38565b6304c4b400611b849190612a82565b6121da90919063ffffffff16565b61225190919063ffffffff16565b8361229a565b611ed7565b5f4790505f811115611bc157611bc047612160565b5b505b505b5f811115611cc457611c1d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cbb91906125bf565b60405180910390a35b611d148260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461230f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611db7611d6b828461230f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e5a848661230f90919063ffffffff16565b604051611e6791906125bf565b60405180910390a350505050565b5f838311158290611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb39190612443565b60405180910390fd5b505f8385611eca91906131dd565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f81031561214357601360149054906101000a900460ff1615612143575f600267ffffffffffffffff811115611f2b57611f2a6126f1565b5b604051908082528060200260200182016040528015611f595781602001602082028036833780820191505090505b50905030815f81518110611f7057611f6f612d12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612014573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120389190612b3f565b8160018151811061204c5761204b612d12565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b23060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111fc565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121149594939291906132c7565b5f604051808303815f87803b15801561212b575f80fd5b505af115801561213d573d5f803e3d5ffd5b50505050505b5f601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121c5573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121ea575f905061224b565b5f82846121f79190612a82565b9050828482612206919061334c565b14612246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223d906133ec565b60405180910390fd5b809150505b92915050565b5f61229283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612358565b905092915050565b5f8183116122a857826122aa565b815b905092915050565b5f8082846122c09190613142565b905083811015612305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fc90613454565b60405180910390fd5b8091505092915050565b5f61235083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e75565b905092915050565b5f808311829061239e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123959190612443565b60405180910390fd5b505f83856123ac919061334c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123f05780820151818401526020810190506123d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612415826123b9565b61241f81856123c3565b935061242f8185602086016123d3565b612438816123fb565b840191505092915050565b5f6020820190508181035f83015261245b818461240b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61248681612474565b8114612490575f80fd5b50565b5f813590506124a18161247d565b92915050565b5f80604083850312156124bd576124bc61246c565b5b5f6124ca85828601612493565b92505060206124db85828601612493565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61250e826124e5565b9050919050565b61251e81612504565b8114612528575f80fd5b50565b5f8135905061253981612515565b92915050565b5f80604083850312156125555761255461246c565b5b5f6125628582860161252b565b925050602061257385828601612493565b9150509250929050565b5f8115159050919050565b6125918161257d565b82525050565b5f6020820190506125aa5f830184612588565b92915050565b6125b981612474565b82525050565b5f6020820190506125d25f8301846125b0565b92915050565b5f805f606084860312156125ef576125ee61246c565b5b5f6125fc8682870161252b565b935050602061260d8682870161252b565b925050604061261e86828701612493565b9150509250925092565b5f60ff82169050919050565b61263d81612628565b82525050565b5f6020820190506126565f830184612634565b92915050565b5f602082840312156126715761267061246c565b5b5f61267e8482850161252b565b91505092915050565b61269081612504565b82525050565b5f6020820190506126a95f830184612687565b92915050565b5f80604083850312156126c5576126c461246c565b5b5f6126d28582860161252b565b92505060206126e38582860161252b565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612727826123fb565b810181811067ffffffffffffffff82111715612746576127456126f1565b5b80604052505050565b5f612758612463565b9050612764828261271e565b919050565b5f67ffffffffffffffff821115612783576127826126f1565b5b602082029050602081019050919050565b5f80fd5b5f6127aa6127a584612769565b61274f565b905080838252602082019050602084028301858111156127cd576127cc612794565b5b835b818110156127f657806127e2888261252b565b8452602084019350506020810190506127cf565b5050509392505050565b5f82601f830112612814576128136126ed565b5b8135612824848260208601612798565b91505092915050565b5f602082840312156128425761284161246c565b5b5f82013567ffffffffffffffff81111561285f5761285e612470565b5b61286b84828501612800565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128a86020836123c3565b91506128b382612874565b602082019050919050565b5f6020820190508181035f8301526128d58161289c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561295e5780860481111561293a576129396128dc565b5b60018516156129495780820291505b808102905061295785612909565b945061291e565b94509492505050565b5f826129765760019050612a31565b81612983575f9050612a31565b816001811461299957600281146129a3576129d2565b6001915050612a31565b60ff8411156129b5576129b46128dc565b5b8360020a9150848211156129cc576129cb6128dc565b5b50612a31565b5060208310610133831016604e8410600b8410161715612a075782820a905083811115612a0257612a016128dc565b5b612a31565b612a148484846001612915565b92509050818404811115612a2b57612a2a6128dc565b5b81810290505b9392505050565b5f612a4282612474565b9150612a4d83612628565b9250612a7a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612967565b905092915050565b5f612a8c82612474565b9150612a9783612474565b9250828202612aa581612474565b91508282048414831517612abc57612abb6128dc565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612af76017836123c3565b9150612b0282612ac3565b602082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b5f81519050612b3981612515565b92915050565b5f60208284031215612b5457612b5361246c565b5b5f612b6184828501612b2b565b91505092915050565b5f604082019050612b7d5f830185612687565b612b8a6020830184612687565b9392505050565b5f819050919050565b5f819050919050565b5f612bbd612bb8612bb384612b91565b612b9a565b612474565b9050919050565b612bcd81612ba3565b82525050565b5f60c082019050612be65f830189612687565b612bf360208301886125b0565b612c006040830187612bc4565b612c0d6060830186612bc4565b612c1a6080830185612687565b612c2760a08301846125b0565b979650505050505050565b5f81519050612c408161247d565b92915050565b5f805f60608486031215612c5d57612c5c61246c565b5b5f612c6a86828701612c32565b9350506020612c7b86828701612c32565b9250506040612c8c86828701612c32565b9150509250925092565b5f604082019050612ca95f830185612687565b612cb660208301846125b0565b9392505050565b612cc68161257d565b8114612cd0575f80fd5b50565b5f81519050612ce181612cbd565b92915050565b5f60208284031215612cfc57612cfb61246c565b5b5f612d0984828501612cd3565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612d4982612474565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d7b57612d7a6128dc565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612de06024836123c3565b9150612deb82612d86565b604082019050919050565b5f6020820190508181035f830152612e0d81612dd4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e6e6022836123c3565b9150612e7982612e14565b604082019050919050565b5f6020820190508181035f830152612e9b81612e62565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612efc6025836123c3565b9150612f0782612ea2565b604082019050919050565b5f6020820190508181035f830152612f2981612ef0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f8a6023836123c3565b9150612f9582612f30565b604082019050919050565b5f6020820190508181035f830152612fb781612f7e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130186029836123c3565b915061302382612fbe565b604082019050919050565b5f6020820190508181035f8301526130458161300c565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130a66024836123c3565b91506130b18261304c565b604082019050919050565b5f6020820190508181035f8301526130d38161309a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61310e6019836123c3565b9150613119826130da565b602082019050919050565b5f6020820190508181035f83015261313b81613102565b9050919050565b5f61314c82612474565b915061315783612474565b925082820190508082111561316f5761316e6128dc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6131a9601a836123c3565b91506131b482613175565b602082019050919050565b5f6020820190508181035f8301526131d68161319d565b9050919050565b5f6131e782612474565b91506131f283612474565b925082820390508181111561320a576132096128dc565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61324281612504565b82525050565b5f6132538383613239565b60208301905092915050565b5f602082019050919050565b5f61327582613210565b61327f818561321a565b935061328a8361322a565b805f5b838110156132ba5781516132a18882613248565b97506132ac8361325f565b92505060018101905061328d565b5085935050505092915050565b5f60a0820190506132da5f8301886125b0565b6132e76020830187612bc4565b81810360408301526132f9818661326b565b90506133086060830185612687565b61331560808301846125b0565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61335682612474565b915061336183612474565b9250826133715761337061331f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d66021836123c3565b91506133e18261337c565b604082019050919050565b5f6020820190508181035f830152613403816133ca565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61343e601b836123c3565b91506134498261340a565b602082019050919050565b5f6020820190508181035f83015261346b81613432565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220acabfe29cd3ac35c7538cc225af4aefcaf2317b6da76ca7541359a0dcff7752b64736f6c63430008140033

Deployed Bytecode Sourcemap

3620:8715:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5488:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10882:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6321:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5765:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6490:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5674:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10615;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11961:351;;;;;;;;;;;;;:::i;:::-;;5868:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2701:148;;;;;;;;;;;;;:::i;:::-;;10311:196;;;;;;;;;;;;;:::i;:::-;;4637:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2487:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4698:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5579:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4759:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4009:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11042:671;;;;;;;;;;;;;:::i;:::-;;6170:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10706:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5488:83;5525:13;5558:5;;;;;;;;;;;;;;;;;5551:12;;5488:83;:::o;10882:152::-;2624:12;:10;:12::i;:::-;2614:22;;:6;;;;;;;;;;:22;;;2606:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10980:10:::1;10967:12;:23;;;;11015:11;11001:13;:25;;;;10882:152:::0;;:::o;6321:161::-;6396:4;6413:39;6422:12;:10;:12::i;:::-;6436:7;6445:6;6413:8;:39::i;:::-;6470:4;6463:11;;6321:161;;;;:::o;5765:95::-;5818:7;4453:2;4508;:13;;;;:::i;:::-;4497:8;:24;;;;:::i;:::-;5838:14;;5765:95;:::o;6490:313::-;6588:4;6605:36;6615:6;6623:9;6634:6;6605:9;:36::i;:::-;6652:121;6661:6;6669:12;:10;:12::i;:::-;6683:89;6721:6;6683:89;;;;;;;;;;;;;;;;;:11;:19;6695:6;6683:19;;;;;;;;;;;;;;;:33;6703:12;:10;:12::i;:::-;6683:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6652:8;:121::i;:::-;6791:4;6784:11;;6490:313;;;;;:::o;5674:83::-;5715:5;4453:2;5733:16;;5674:83;:::o;10615:::-;10662:4;10683;:7;10688:1;10683:7;;;;;;;;;;;;;;;;;;;;;;;;;10676:14;;10615:83;;;:::o;11961:351::-;12028:10;;;;;;;;;;;12014:24;;:12;:10;:12::i;:::-;:24;;;12006:33;;;;;;12050:20;12071:24;12089:4;12071:9;:24::i;:::-;12050:45;;12122:1;12109:12;:14;12106:73;;;12137:30;12154:12;12137:16;:30::i;:::-;12106:73;12189:18;12208:21;12189:40;;12254:1;12243:10;:12;12240:65;;;12269:24;12282:10;12269:12;:24::i;:::-;12240:65;11995:317;;11961:351::o;5868:119::-;5934:7;5961:9;:18;5971:7;5961:18;;;;;;;;;;;;;;;;5954:25;;5868:119;;;:::o;2701:148::-;2624:12;:10;:12::i;:::-;2614:22;;:6;;;;;;;;;;:22;;;2606:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2808:1:::1;2771:40;;2792:6;::::0;::::1;;;;;;;;2771:40;;;;;;;;;;;;2839:1;2822:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2701:148::o:0;10311:196::-;2624:12;:10;:12::i;:::-;2614:22;;:6;;;;;;;;;;:22;;;2606:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4453:2:::1;4508;:13;;;;:::i;:::-;4497:8;:24;;;;:::i;:::-;10364:12;:22;;;;4453:2;4508;:13;;;;:::i;:::-;4497:8;:24;;;;:::i;:::-;10397:14;:22;;;;10451:5;10430:20;;:26;;;;;;;;;;;;;;;;;;10472:27;4453:2;4508;:13;;;;:::i;:::-;4497:8;:24;;;;:::i;:::-;10472:27;;;;;;:::i;:::-;;;;;;;;10311:196::o:0;4637:54::-;;;;:::o;2487:79::-;2525:7;2552:6;;;;;;;;;;;2545:13;;2487:79;:::o;4698:54::-;;;;:::o;5579:87::-;5618:13;5651:7;;;;;;;;;;;;;;;;;5644:14;;5579:87;:::o;5995:167::-;6073:4;6090:42;6100:12;:10;:12::i;:::-;6114:9;6125:6;6090:9;:42::i;:::-;6150:4;6143:11;;5995:167;;;;:::o;4759:56::-;;;;:::o;4009:40::-;;;;;;;;;;;;;:::o;11042:671::-;2624:12;:10;:12::i;:::-;2614:22;;:6;;;;;;;;;;:22;;;2606:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11106:11:::1;;;;;;;;;;;11105:12;11097:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11192:42;11155:15;;:80;;;;;;;;;;;;;;;;;;11246:58;11263:4;11278:15;;;;;;;;;;;4453:2;4508;:13;;;;:::i;:::-;4497:8;:24;;;;:::i;:::-;11246:8;:58::i;:::-;11349:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11331:55;;;11395:4;11402:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11331:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11315:13;;:110;;;;;;;;;;;;;;;;;;11436:15;;;;;;;;;;;:31;;;11475:21;11506:4;11512:24;11530:4;11512:9;:24::i;:::-;11537:1;11539::::0;11541:7:::1;:5;:7::i;:::-;11549:15;11436:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11583:13;;;;;;;;;;;11576:29;;;11614:15;;;;;;;;;;;11632:14;11576:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11672:4;11658:11;;:18;;;;;;;;;;;;;;;;;;11701:4;11687:11;;:18;;;;;;;;;;;;;;;;;;11042:671::o:0;6170:143::-;6251:7;6278:11;:18;6290:5;6278:18;;;;;;;;;;;;;;;:27;6297:7;6278:27;;;;;;;;;;;;;;;;6271:34;;6170:143;;;;:::o;10706:168::-;2624:12;:10;:12::i;:::-;2614:22;;:6;;;;;;;;;;:22;;;2606:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10784:6:::1;10779:88;10800:5;:12;10796:1;:16;10779:88;;;10851:4;10834;:14;10839:5;10845:1;10839:8;;;;;;;;:::i;:::-;;;;;;;;10834:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10814:3;;;;;:::i;:::-;;;;10779:88;;;;10706:168:::0;:::o;242:98::-;295:7;322:10;315:17;;242:98;:::o;6811:335::-;6921:1;6904:19;;:5;:19;;;6896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7002:1;6983:21;;:7;:21;;;6975:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7084:6;7054:11;:18;7066:5;7054:18;;;;;;;;;;;;;;;:27;7073:7;7054:27;;;;;;;;;;;;;;;:36;;;;7122:7;7106:32;;7115:5;7106:32;;;7131:6;7106:32;;;;;;:::i;:::-;;;;;;;;6811:335;;;:::o;7154:2478::-;7258:1;7242:18;;:4;:18;;;7234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7335:1;7321:16;;:2;:16;;;7313:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7405:1;7396:6;:10;7388:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7463:17;7505:7;:5;:7::i;:::-;7497:15;;:4;:15;;;;:32;;;;;7522:7;:5;:7::i;:::-;7516:13;;:2;:13;;;;7497:32;7493:1783;;;7555:4;:10;7560:4;7555:10;;;;;;;;;;;;;;;;;;;;;;;;;7554:11;:24;;;;;7570:4;:8;7575:2;7570:8;;;;;;;;;;;;;;;;;;;;;;;;;7569:9;7554:24;7546:33;;;;;;7600:20;;;;;;;;;;;7596:346;;;7659:15;;;;;;;;;;;7645:30;;:2;:30;;;;:62;;;;;7693:13;;;;;;;;;;;7679:28;;:2;:28;;;;7645:62;7641:286;;;7780:12;7738:28;:39;7767:9;7738:39;;;;;;;;;;;;;;;;:54;7730:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7895:12;7853:28;:39;7882:9;7853:39;;;;;;;;;;;;;;;:54;;;;7641:286;7596:346;7970:13;;;;;;;;;;;7962:21;;:4;:21;;;:55;;;;;8001:15;;;;;;;;;;;7987:30;;:2;:30;;;;7962:55;:83;;;;;8023:18;:22;8042:2;8023:22;;;;;;;;;;;;;;;;;;;;;;;;;8021:24;7962:83;7958:428;;;8085:12;;8075:6;:22;;8067:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8180:14;;8170:6;8154:13;8164:2;8154:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8146:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8257:18;;8247:9;;:28;8244:97;;;8306:14;8317:2;8306:10;:14::i;:::-;8305:15;8297:24;;;;;;8244:97;8359:9;;:11;;;;;;;;;:::i;:::-;;;;;;7958:428;8416:76;8488:3;8416:67;8438:15;;8428:9;;:25;8427:55;;8468:14;;8427:55;;;8455:12;;8427:55;8416:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8404:88;;8516:13;;;;;;;;;;;8510:19;;:2;:19;;;:43;;;;;8548:4;8533:20;;:4;:20;;;;8510:43;8507:253;;;8592:12;;8582:6;:22;;8574:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8665:79;8740:3;8665:70;8687:16;;8677:9;;:26;8676:58;;8719:15;;8676:58;;;8705:13;;8676:58;8665:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8653:91;;8507:253;8776:28;8807:24;8825:4;8807:9;:24::i;:::-;8776:55;;8851:6;;;;;;;;;;;8850:7;:30;;;;;8867:13;;;;;;;;;;;8861:19;;:2;:19;;;8850:30;:45;;;;;8884:11;;;;;;;;;;;8850:45;:87;;;;;8920:17;;8899:20;:38;8850:87;:119;;;;;8951:18;;8941:9;;:28;8850:119;8846:419;;;8990:67;9007:49;9011:23;9030:3;9011:14;9023:1;4453:2;4508;:13;;;;:::i;:::-;4497:8;:24;;;;:::i;:::-;9011:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9035:20;9007:3;:49::i;:::-;8990:16;:67::i;:::-;9076:26;9105:21;9076:50;;9169:1;9148:18;:22;9145:105;;;9195:35;9208:21;9195:12;:35::i;:::-;9145:105;8971:294;8846:419;7531:1745;7493:1783;9301:1;9291:9;:11;9288:161;;;9341:39;9370:9;9341;:24;9359:4;9341:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9316:9;:24;9334:4;9316:24;;;;;;;;;;;;;;;:64;;;;9421:4;9398:39;;9407:4;9398:39;;;9427:9;9398:39;;;;;;:::i;:::-;;;;;;;;9288:161;9475:27;9495:6;9475:9;:15;9485:4;9475:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9459:9;:15;9469:4;9459:15;;;;;;;;;;;;;;;:43;;;;9527:40;9545:21;9556:9;9545:6;:10;;:21;;;;:::i;:::-;9527:9;:13;9537:2;9527:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9513:9;:13;9523:2;9513:13;;;;;;;;;;;;;;;:54;;;;9598:2;9583:41;;9592:4;9583:41;;;9602:21;9613:9;9602:6;:10;;:21;;;;:::i;:::-;9583:41;;;;;;:::i;:::-;;;;;;;;7223:2409;7154:2478;;;:::o;1379:190::-;1465:7;1498:1;1493;:6;;1501:12;1485:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1525:9;1541:1;1537;:5;;;;:::i;:::-;1525:17;;1560:1;1553:8;;;1379:190;;;;;:::o;9748:555::-;5106:4;5097:6;;:13;;;;;;;;;;;;;;;;;;9842:1:::1;9829:11;:14:::0;9826:27;9845:7:::1;9826:27;9867:11;;;;;;;;;;;9863:25:::0;9880:7:::1;9863:25;9898:21;9936:1;9922:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9898:40;;9967:4;9949;9954:1;9949:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9993:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9983:4;9988:1;9983:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10026:62;10043:4;10058:15;;;;;;;;;;;10076:11;10026:8;:62::i;:::-;10099:15;;;;;;;;;;;:66;;;10180:11;10206:1;10222:4;10249;10269:15;10099:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9815:488;5121:1;5142:5:::0;5133:6;;:14;;;;;;;;;;;;;;;;;;9748:555;:::o;10515:92::-;10572:10;;;;;;;;;;;:19;;:27;10592:6;10572:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10515:92;:::o;11758:195::-;11817:4;11834:12;11901:7;11889:20;11881:28;;11944:1;11937:4;:8;11930:15;;;11758:195;;;:::o;1577:246::-;1635:7;1664:1;1659;:6;1655:47;;1689:1;1682:8;;;;1655:47;1712:9;1728:1;1724;:5;;;;:::i;:::-;1712:17;;1757:1;1752;1748;:5;;;;:::i;:::-;:10;1740:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1814:1;1807:8;;;1577:246;;;;;:::o;1831:132::-;1889:7;1916:39;1920:1;1923;1916:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1909:46;;1831:132;;;;:::o;9642:98::-;9699:7;9726:1;9724;:3;9723:9;;9731:1;9723:9;;;9729:1;9723:9;9716:16;;9642:98;;;;:::o;1048:179::-;1106:7;1126:9;1142:1;1138;:5;;;;:::i;:::-;1126:17;;1167:1;1162;:6;;1154:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1218:1;1211:8;;;1048:179;;;;:::o;1235:136::-;1293:7;1320:43;1324:1;1327;1320:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1313:50;;1235:136;;;;:::o;1971:189::-;2057:7;2089:1;2085;:5;2092:12;2077:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2116:9;2132:1;2128;:5;;;;:::i;:::-;2116:17;;2151:1;2144:8;;;1971:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:77;1713:7;1742:5;1731:16;;1676:77;;;:::o;1759:122::-;1832:24;1850:5;1832:24;:::i;:::-;1825:5;1822:35;1812:63;;1871:1;1868;1861:12;1812:63;1759:122;:::o;1887:139::-;1933:5;1971:6;1958:20;1949:29;;1987:33;2014:5;1987:33;:::i;:::-;1887:139;;;;:::o;2032:474::-;2100:6;2108;2157:2;2145:9;2136:7;2132:23;2128:32;2125:119;;;2163:79;;:::i;:::-;2125:119;2283:1;2308:53;2353:7;2344:6;2333:9;2329:22;2308:53;:::i;:::-;2298:63;;2254:117;2410:2;2436:53;2481:7;2472:6;2461:9;2457:22;2436:53;:::i;:::-;2426:63;;2381:118;2032:474;;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:117::-;6609:1;6606;6599:12;6623:180;6671:77;6668:1;6661:88;6768:4;6765:1;6758:15;6792:4;6789:1;6782:15;6809:281;6892:27;6914:4;6892:27;:::i;:::-;6884:6;6880:40;7022:6;7010:10;7007:22;6986:18;6974:10;6971:34;6968:62;6965:88;;;7033:18;;:::i;:::-;6965:88;7073:10;7069:2;7062:22;6852:238;6809:281;;:::o;7096:129::-;7130:6;7157:20;;:::i;:::-;7147:30;;7186:33;7214:4;7206:6;7186:33;:::i;:::-;7096:129;;;:::o;7231:311::-;7308:4;7398:18;7390:6;7387:30;7384:56;;;7420:18;;:::i;:::-;7384:56;7470:4;7462:6;7458:17;7450:25;;7530:4;7524;7520:15;7512:23;;7231:311;;;:::o;7548:117::-;7657:1;7654;7647:12;7688:710;7784:5;7809:81;7825:64;7882:6;7825:64;:::i;:::-;7809:81;:::i;:::-;7800:90;;7910:5;7939:6;7932:5;7925:21;7973:4;7966:5;7962:16;7955:23;;8026:4;8018:6;8014:17;8006:6;8002:30;8055:3;8047:6;8044:15;8041:122;;;8074:79;;:::i;:::-;8041:122;8189:6;8172:220;8206:6;8201:3;8198:15;8172:220;;;8281:3;8310:37;8343:3;8331:10;8310:37;:::i;:::-;8305:3;8298:50;8377:4;8372:3;8368:14;8361:21;;8248:144;8232:4;8227:3;8223:14;8216:21;;8172:220;;;8176:21;7790:608;;7688:710;;;;;:::o;8421:370::-;8492:5;8541:3;8534:4;8526:6;8522:17;8518:27;8508:122;;8549:79;;:::i;:::-;8508:122;8666:6;8653:20;8691:94;8781:3;8773:6;8766:4;8758:6;8754:17;8691:94;:::i;:::-;8682:103;;8498:293;8421:370;;;;:::o;8797:539::-;8881:6;8930:2;8918:9;8909:7;8905:23;8901:32;8898:119;;;8936:79;;:::i;:::-;8898:119;9084:1;9073:9;9069:17;9056:31;9114:18;9106:6;9103:30;9100:117;;;9136:79;;:::i;:::-;9100:117;9241:78;9311:7;9302:6;9291:9;9287:22;9241:78;:::i;:::-;9231:88;;9027:302;8797:539;;;;:::o;9342:182::-;9482:34;9478:1;9470:6;9466:14;9459:58;9342:182;:::o;9530:366::-;9672:3;9693:67;9757:2;9752:3;9693:67;:::i;:::-;9686:74;;9769:93;9858:3;9769:93;:::i;:::-;9887:2;9882:3;9878:12;9871:19;;9530:366;;;:::o;9902:419::-;10068:4;10106:2;10095:9;10091:18;10083:26;;10155:9;10149:4;10145:20;10141:1;10130:9;10126:17;10119:47;10183:131;10309:4;10183:131;:::i;:::-;10175:139;;9902:419;;;:::o;10327:180::-;10375:77;10372:1;10365:88;10472:4;10469:1;10462:15;10496:4;10493:1;10486:15;10513:102;10555:8;10602:5;10599:1;10595:13;10574:34;;10513:102;;;:::o;10621:848::-;10682:5;10689:4;10713:6;10704:15;;10737:5;10728:14;;10751:712;10772:1;10762:8;10759:15;10751:712;;;10867:4;10862:3;10858:14;10852:4;10849:24;10846:50;;;10876:18;;:::i;:::-;10846:50;10926:1;10916:8;10912:16;10909:451;;;11341:4;11334:5;11330:16;11321:25;;10909:451;11391:4;11385;11381:15;11373:23;;11421:32;11444:8;11421:32;:::i;:::-;11409:44;;10751:712;;;10621:848;;;;;;;:::o;11475:1073::-;11529:5;11720:8;11710:40;;11741:1;11732:10;;11743:5;;11710:40;11769:4;11759:36;;11786:1;11777:10;;11788:5;;11759:36;11855:4;11903:1;11898:27;;;;11939:1;11934:191;;;;11848:277;;11898:27;11916:1;11907:10;;11918:5;;;11934:191;11979:3;11969:8;11966:17;11963:43;;;11986:18;;:::i;:::-;11963:43;12035:8;12032:1;12028:16;12019:25;;12070:3;12063:5;12060:14;12057:40;;;12077:18;;:::i;:::-;12057:40;12110:5;;;11848:277;;12234:2;12224:8;12221:16;12215:3;12209:4;12206:13;12202:36;12184:2;12174:8;12171:16;12166:2;12160:4;12157:12;12153:35;12137:111;12134:246;;;12290:8;12284:4;12280:19;12271:28;;12325:3;12318:5;12315:14;12312:40;;;12332:18;;:::i;:::-;12312:40;12365:5;;12134:246;12405:42;12443:3;12433:8;12427:4;12424:1;12405:42;:::i;:::-;12390:57;;;;12479:4;12474:3;12470:14;12463:5;12460:25;12457:51;;;12488:18;;:::i;:::-;12457:51;12537:4;12530:5;12526:16;12517:25;;11475:1073;;;;;;:::o;12554:281::-;12612:5;12636:23;12654:4;12636:23;:::i;:::-;12628:31;;12680:25;12696:8;12680:25;:::i;:::-;12668:37;;12724:104;12761:66;12751:8;12745:4;12724:104;:::i;:::-;12715:113;;12554:281;;;;:::o;12841:410::-;12881:7;12904:20;12922:1;12904:20;:::i;:::-;12899:25;;12938:20;12956:1;12938:20;:::i;:::-;12933:25;;12993:1;12990;12986:9;13015:30;13033:11;13015:30;:::i;:::-;13004:41;;13194:1;13185:7;13181:15;13178:1;13175:22;13155:1;13148:9;13128:83;13105:139;;13224:18;;:::i;:::-;13105:139;12889:362;12841:410;;;;:::o;13257:173::-;13397:25;13393:1;13385:6;13381:14;13374:49;13257:173;:::o;13436:366::-;13578:3;13599:67;13663:2;13658:3;13599:67;:::i;:::-;13592:74;;13675:93;13764:3;13675:93;:::i;:::-;13793:2;13788:3;13784:12;13777:19;;13436:366;;;:::o;13808:419::-;13974:4;14012:2;14001:9;13997:18;13989:26;;14061:9;14055:4;14051:20;14047:1;14036:9;14032:17;14025:47;14089:131;14215:4;14089:131;:::i;:::-;14081:139;;13808:419;;;:::o;14233:143::-;14290:5;14321:6;14315:13;14306:22;;14337:33;14364:5;14337:33;:::i;:::-;14233:143;;;;:::o;14382:351::-;14452:6;14501:2;14489:9;14480:7;14476:23;14472:32;14469:119;;;14507:79;;:::i;:::-;14469:119;14627:1;14652:64;14708:7;14699:6;14688:9;14684:22;14652:64;:::i;:::-;14642:74;;14598:128;14382:351;;;;:::o;14739:332::-;14860:4;14898:2;14887:9;14883:18;14875:26;;14911:71;14979:1;14968:9;14964:17;14955:6;14911:71;:::i;:::-;14992:72;15060:2;15049:9;15045:18;15036:6;14992:72;:::i;:::-;14739:332;;;;;:::o;15077:85::-;15122:7;15151:5;15140:16;;15077:85;;;:::o;15168:60::-;15196:3;15217:5;15210:12;;15168:60;;;:::o;15234:158::-;15292:9;15325:61;15343:42;15352:32;15378:5;15352:32;:::i;:::-;15343:42;:::i;:::-;15325:61;:::i;:::-;15312:74;;15234:158;;;:::o;15398:147::-;15493:45;15532:5;15493:45;:::i;:::-;15488:3;15481:58;15398:147;;:::o;15551:807::-;15800:4;15838:3;15827:9;15823:19;15815:27;;15852:71;15920:1;15909:9;15905:17;15896:6;15852:71;:::i;:::-;15933:72;16001:2;15990:9;15986:18;15977:6;15933:72;:::i;:::-;16015:80;16091:2;16080:9;16076:18;16067:6;16015:80;:::i;:::-;16105;16181:2;16170:9;16166:18;16157:6;16105:80;:::i;:::-;16195:73;16263:3;16252:9;16248:19;16239:6;16195:73;:::i;:::-;16278;16346:3;16335:9;16331:19;16322:6;16278:73;:::i;:::-;15551:807;;;;;;;;;:::o;16364:143::-;16421:5;16452:6;16446:13;16437:22;;16468:33;16495:5;16468:33;:::i;:::-;16364:143;;;;:::o;16513:663::-;16601:6;16609;16617;16666:2;16654:9;16645:7;16641:23;16637:32;16634:119;;;16672:79;;:::i;:::-;16634:119;16792:1;16817:64;16873:7;16864:6;16853:9;16849:22;16817:64;:::i;:::-;16807:74;;16763:128;16930:2;16956:64;17012:7;17003:6;16992:9;16988:22;16956:64;:::i;:::-;16946:74;;16901:129;17069:2;17095:64;17151:7;17142:6;17131:9;17127:22;17095:64;:::i;:::-;17085:74;;17040:129;16513:663;;;;;:::o;17182:332::-;17303:4;17341:2;17330:9;17326:18;17318:26;;17354:71;17422:1;17411:9;17407:17;17398:6;17354:71;:::i;:::-;17435:72;17503:2;17492:9;17488:18;17479:6;17435:72;:::i;:::-;17182:332;;;;;:::o;17520:116::-;17590:21;17605:5;17590:21;:::i;:::-;17583:5;17580:32;17570:60;;17626:1;17623;17616:12;17570:60;17520:116;:::o;17642:137::-;17696:5;17727:6;17721:13;17712:22;;17743:30;17767:5;17743:30;:::i;:::-;17642:137;;;;:::o;17785:345::-;17852:6;17901:2;17889:9;17880:7;17876:23;17872:32;17869:119;;;17907:79;;:::i;:::-;17869:119;18027:1;18052:61;18105:7;18096:6;18085:9;18081:22;18052:61;:::i;:::-;18042:71;;17998:125;17785:345;;;;:::o;18136:180::-;18184:77;18181:1;18174:88;18281:4;18278:1;18271:15;18305:4;18302:1;18295:15;18322:233;18361:3;18384:24;18402:5;18384:24;:::i;:::-;18375:33;;18430:66;18423:5;18420:77;18417:103;;18500:18;;:::i;:::-;18417:103;18547:1;18540:5;18536:13;18529:20;;18322:233;;;:::o;18561:223::-;18701:34;18697:1;18689:6;18685:14;18678:58;18770:6;18765:2;18757:6;18753:15;18746:31;18561:223;:::o;18790:366::-;18932:3;18953:67;19017:2;19012:3;18953:67;:::i;:::-;18946:74;;19029:93;19118:3;19029:93;:::i;:::-;19147:2;19142:3;19138:12;19131:19;;18790:366;;;:::o;19162:419::-;19328:4;19366:2;19355:9;19351:18;19343:26;;19415:9;19409:4;19405:20;19401:1;19390:9;19386:17;19379:47;19443:131;19569:4;19443:131;:::i;:::-;19435:139;;19162:419;;;:::o;19587:221::-;19727:34;19723:1;19715:6;19711:14;19704:58;19796:4;19791:2;19783:6;19779:15;19772:29;19587:221;:::o;19814:366::-;19956:3;19977:67;20041:2;20036:3;19977:67;:::i;:::-;19970:74;;20053:93;20142:3;20053:93;:::i;:::-;20171:2;20166:3;20162:12;20155:19;;19814:366;;;:::o;20186:419::-;20352:4;20390:2;20379:9;20375:18;20367:26;;20439:9;20433:4;20429:20;20425:1;20414:9;20410:17;20403:47;20467:131;20593:4;20467:131;:::i;:::-;20459:139;;20186:419;;;:::o;20611:224::-;20751:34;20747:1;20739:6;20735:14;20728:58;20820:7;20815:2;20807:6;20803:15;20796:32;20611:224;:::o;20841:366::-;20983:3;21004:67;21068:2;21063:3;21004:67;:::i;:::-;20997:74;;21080:93;21169:3;21080:93;:::i;:::-;21198:2;21193:3;21189:12;21182:19;;20841:366;;;:::o;21213:419::-;21379:4;21417:2;21406:9;21402:18;21394:26;;21466:9;21460:4;21456:20;21452:1;21441:9;21437:17;21430:47;21494:131;21620:4;21494:131;:::i;:::-;21486:139;;21213:419;;;:::o;21638:222::-;21778:34;21774:1;21766:6;21762:14;21755:58;21847:5;21842:2;21834:6;21830:15;21823:30;21638:222;:::o;21866:366::-;22008:3;22029:67;22093:2;22088:3;22029:67;:::i;:::-;22022:74;;22105:93;22194:3;22105:93;:::i;:::-;22223:2;22218:3;22214:12;22207:19;;21866:366;;;:::o;22238:419::-;22404:4;22442:2;22431:9;22427:18;22419:26;;22491:9;22485:4;22481:20;22477:1;22466:9;22462:17;22455:47;22519:131;22645:4;22519:131;:::i;:::-;22511:139;;22238:419;;;:::o;22663:228::-;22803:34;22799:1;22791:6;22787:14;22780:58;22872:11;22867:2;22859:6;22855:15;22848:36;22663:228;:::o;22897:366::-;23039:3;23060:67;23124:2;23119:3;23060:67;:::i;:::-;23053:74;;23136:93;23225:3;23136:93;:::i;:::-;23254:2;23249:3;23245:12;23238:19;;22897:366;;;:::o;23269:419::-;23435:4;23473:2;23462:9;23458:18;23450:26;;23522:9;23516:4;23512:20;23508:1;23497:9;23493:17;23486:47;23550:131;23676:4;23550:131;:::i;:::-;23542:139;;23269:419;;;:::o;23694:223::-;23834:34;23830:1;23822:6;23818:14;23811:58;23903:6;23898:2;23890:6;23886:15;23879:31;23694:223;:::o;23923:366::-;24065:3;24086:67;24150:2;24145:3;24086:67;:::i;:::-;24079:74;;24162:93;24251:3;24162:93;:::i;:::-;24280:2;24275:3;24271:12;24264:19;;23923:366;;;:::o;24295:419::-;24461:4;24499:2;24488:9;24484:18;24476:26;;24548:9;24542:4;24538:20;24534:1;24523:9;24519:17;24512:47;24576:131;24702:4;24576:131;:::i;:::-;24568:139;;24295:419;;;:::o;24720:175::-;24860:27;24856:1;24848:6;24844:14;24837:51;24720:175;:::o;24901:366::-;25043:3;25064:67;25128:2;25123:3;25064:67;:::i;:::-;25057:74;;25140:93;25229:3;25140:93;:::i;:::-;25258:2;25253:3;25249:12;25242:19;;24901:366;;;:::o;25273:419::-;25439:4;25477:2;25466:9;25462:18;25454:26;;25526:9;25520:4;25516:20;25512:1;25501:9;25497:17;25490:47;25554:131;25680:4;25554:131;:::i;:::-;25546:139;;25273:419;;;:::o;25698:191::-;25738:3;25757:20;25775:1;25757:20;:::i;:::-;25752:25;;25791:20;25809:1;25791:20;:::i;:::-;25786:25;;25834:1;25831;25827:9;25820:16;;25855:3;25852:1;25849:10;25846:36;;;25862:18;;:::i;:::-;25846:36;25698:191;;;;:::o;25895:176::-;26035:28;26031:1;26023:6;26019:14;26012:52;25895:176;:::o;26077:366::-;26219:3;26240:67;26304:2;26299:3;26240:67;:::i;:::-;26233:74;;26316:93;26405:3;26316:93;:::i;:::-;26434:2;26429:3;26425:12;26418:19;;26077:366;;;:::o;26449:419::-;26615:4;26653:2;26642:9;26638:18;26630:26;;26702:9;26696:4;26692:20;26688:1;26677:9;26673:17;26666:47;26730:131;26856:4;26730:131;:::i;:::-;26722:139;;26449:419;;;:::o;26874:194::-;26914:4;26934:20;26952:1;26934:20;:::i;:::-;26929:25;;26968:20;26986:1;26968:20;:::i;:::-;26963:25;;27012:1;27009;27005:9;26997:17;;27036:1;27030:4;27027:11;27024:37;;;27041:18;;:::i;:::-;27024:37;26874:194;;;;:::o;27074:114::-;27141:6;27175:5;27169:12;27159:22;;27074:114;;;:::o;27194:184::-;27293:11;27327:6;27322:3;27315:19;27367:4;27362:3;27358:14;27343:29;;27194:184;;;;:::o;27384:132::-;27451:4;27474:3;27466:11;;27504:4;27499:3;27495:14;27487:22;;27384:132;;;:::o;27522:108::-;27599:24;27617:5;27599:24;:::i;:::-;27594:3;27587:37;27522:108;;:::o;27636:179::-;27705:10;27726:46;27768:3;27760:6;27726:46;:::i;:::-;27804:4;27799:3;27795:14;27781:28;;27636:179;;;;:::o;27821:113::-;27891:4;27923;27918:3;27914:14;27906:22;;27821:113;;;:::o;27970:732::-;28089:3;28118:54;28166:5;28118:54;:::i;:::-;28188:86;28267:6;28262:3;28188:86;:::i;:::-;28181:93;;28298:56;28348:5;28298:56;:::i;:::-;28377:7;28408:1;28393:284;28418:6;28415:1;28412:13;28393:284;;;28494:6;28488:13;28521:63;28580:3;28565:13;28521:63;:::i;:::-;28514:70;;28607:60;28660:6;28607:60;:::i;:::-;28597:70;;28453:224;28440:1;28437;28433:9;28428:14;;28393:284;;;28397:14;28693:3;28686:10;;28094:608;;;27970:732;;;;:::o;28708:831::-;28971:4;29009:3;28998:9;28994:19;28986:27;;29023:71;29091:1;29080:9;29076:17;29067:6;29023:71;:::i;:::-;29104:80;29180:2;29169:9;29165:18;29156:6;29104:80;:::i;:::-;29231:9;29225:4;29221:20;29216:2;29205:9;29201:18;29194:48;29259:108;29362:4;29353:6;29259:108;:::i;:::-;29251:116;;29377:72;29445:2;29434:9;29430:18;29421:6;29377:72;:::i;:::-;29459:73;29527:3;29516:9;29512:19;29503:6;29459:73;:::i;:::-;28708:831;;;;;;;;:::o;29545:180::-;29593:77;29590:1;29583:88;29690:4;29687:1;29680:15;29714:4;29711:1;29704:15;29731:185;29771:1;29788:20;29806:1;29788:20;:::i;:::-;29783:25;;29822:20;29840:1;29822:20;:::i;:::-;29817:25;;29861:1;29851:35;;29866:18;;:::i;:::-;29851:35;29908:1;29905;29901:9;29896:14;;29731:185;;;;:::o;29922:220::-;30062:34;30058:1;30050:6;30046:14;30039:58;30131:3;30126:2;30118:6;30114:15;30107:28;29922:220;:::o;30148:366::-;30290:3;30311:67;30375:2;30370:3;30311:67;:::i;:::-;30304:74;;30387:93;30476:3;30387:93;:::i;:::-;30505:2;30500:3;30496:12;30489:19;;30148:366;;;:::o;30520:419::-;30686:4;30724:2;30713:9;30709:18;30701:26;;30773:9;30767:4;30763:20;30759:1;30748:9;30744:17;30737:47;30801:131;30927:4;30801:131;:::i;:::-;30793:139;;30520:419;;;:::o;30945:177::-;31085:29;31081:1;31073:6;31069:14;31062:53;30945:177;:::o;31128:366::-;31270:3;31291:67;31355:2;31350:3;31291:67;:::i;:::-;31284:74;;31367:93;31456:3;31367:93;:::i;:::-;31485:2;31480:3;31476:12;31469:19;;31128:366;;;:::o;31500:419::-;31666:4;31704:2;31693:9;31689:18;31681:26;;31753:9;31747:4;31743:20;31739:1;31728:9;31724:17;31717:47;31781:131;31907:4;31781:131;:::i;:::-;31773:139;;31500:419;;;:::o

Swarm Source

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