ETH Price: $3,375.00 (+3.17%)
Gas: 2 Gwei

Token

𝙸 ☠️ 𝕸𝖊&#1... (𝕸𝖊𝖌𝖆𝖉𝖊𝖙𝖍)
 

Overview

Max Total Supply

1,000,000,000 𝕸𝖊𝖌𝖆𝖉𝖊𝖙𝖍

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 𝕸𝖊𝖌𝖆𝖉𝖊𝖙𝖍

Value
$0.00
0xda66d32816664d7b66147857b3bdbf6a8ecba45d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
megadeth

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-11-28
*/

// SPDX-License-Identifier: MIT

/*


https://twitter.com/Matt_Furie/status/1729343806661894162

*/

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 megadeth 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 = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=28;
    uint256 private _reduceSellTaxAt=28;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    mapping(address => uint256) private cooldownTimer;
    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 1;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"𝙸 ☠️ 𝕸𝖊𝖌𝖆𝖉𝖊𝖙𝖍";
    string private constant _symbol = unicode"𝕸𝖊𝖌𝖆𝖉𝖊𝖙𝖍";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 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 cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

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

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

            if (from == uniswapV2Pair && buyCooldownEnabled && ! _isExcludedFromFee[to]) {
                require(
                    cooldownTimer[to] < block.timestamp,
                    "buy Cooldown exists"
                );
                cooldownTimer[to] = block.timestamp + cooldownTimerInterval;
            }

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

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

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

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


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

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

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

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

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

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

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

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

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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

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

6080604052600160065f6101000a81548160ff021916908315150217905550601460075560146008555f6009555f600a55601c600b55601c600c55601e600d555f600e55600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff021916908360ff1602179055506009600a62000089919062000641565b6301312d006200009a919062000691565b6011556009600a620000ad919062000641565b6301312d00620000be919062000691565b6012556009600a620000d1919062000641565b62989680620000e1919062000691565b6013556009600a620000f4919062000641565b6298968062000104919062000691565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff02191690831515021790555034801562000146575f80fd5b505f620001586200048160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002046200048160201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000254919062000641565b633b9aca0062000265919062000691565b60015f620002786200048160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002ca6200048860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003f56200048160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000453919062000641565b633b9aca0062000464919062000691565b604051620004739190620006ec565b60405180910390a362000707565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200053957808604811115620005115762000510620004af565b5b6001851615620005215780820291505b80810290506200053185620004dc565b9450620004f1565b94509492505050565b5f8262000553576001905062000625565b8162000562575f905062000625565b81600181146200057b57600281146200058657620005bc565b600191505062000625565b60ff8411156200059b576200059a620004af565b5b8360020a915084821115620005b557620005b4620004af565b5b5062000625565b5060208310610133831016604e8410600b8410161715620005f65782820a905083811115620005f057620005ef620004af565b5b62000625565b620006058484846001620004e8565b925090508184048111156200061f576200061e620004af565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200064d826200062c565b91506200065a8362000635565b9250620006897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000542565b905092915050565b5f6200069d826200062c565b9150620006aa836200062c565b9250828202620006ba816200062c565b91508282048414831517620006d457620006d3620004af565b5b5092915050565b620006e6816200062c565b82525050565b5f602082019050620007015f830184620006db565b92915050565b6139fa80620007155f395ff3fe608060405260043610610184575f3560e01c8063722b62ad116100d057806395d89b4111610089578063c876d0b911610063578063c876d0b914610543578063c9567bf91461056d578063d34628cc14610583578063dd62ed3e146105ab5761018b565b806395d89b41146104b3578063a9059cbb146104dd578063bf474bed146105195761018b565b8063722b62ad146103cd57806372333356146103f7578063751039fc1461041f5780637d1db4a5146104355780638da5cb5b1461045f5780638f9a55c0146104895761018b565b8063313ce5671161013d57806351bc3c851161011757806351bc3c851461033b578063617fe0ed1461035157806370a082311461037b578063715018a6146103b75761018b565b8063313ce567146102ad57806331c2d847146102d75780633bbac579146102ff5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f557806318160ddd1461021f57806323b872dd146102495780632d594567146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e7565b6040516101b09190612837565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da91906128f5565b610607565b6040516101ec919061294d565b60405180910390f35b348015610200575f80fd5b50610209610624565b6040516102169190612975565b60405180910390f35b34801561022a575f80fd5b5061023361062a565b6040516102409190612975565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a919061298e565b61064d565b60405161027c919061294d565b60405180910390f35b348015610290575f80fd5b506102ab60048036038101906102a69190612a3e565b610721565b005b3480156102b8575f80fd5b506102c16107ed565b6040516102ce9190612a8b565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190612be4565b6107f5565b005b34801561030a575f80fd5b5061032560048036038101906103209190612c2b565b610919565b604051610332919061294d565b60405180910390f35b348015610346575f80fd5b5061034f61096b565b005b34801561035c575f80fd5b50610365610a03565b604051610372919061294d565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190612c2b565b610a15565b6040516103ae9190612975565b60405180910390f35b3480156103c2575f80fd5b506103cb610a5b565b005b3480156103d8575f80fd5b506103e1610ba9565b6040516103ee9190612a8b565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190612c56565b610bbc565b005b34801561042a575f80fd5b50610433610c62565b005b348015610440575f80fd5b50610449610daa565b6040516104569190612975565b60405180910390f35b34801561046a575f80fd5b50610473610db0565b6040516104809190612ca3565b60405180910390f35b348015610494575f80fd5b5061049d610dd7565b6040516104aa9190612975565b60405180910390f35b3480156104be575f80fd5b506104c7610ddd565b6040516104d49190612837565b60405180910390f35b3480156104e8575f80fd5b5061050360048036038101906104fe91906128f5565b610e1a565b604051610510919061294d565b60405180910390f35b348015610524575f80fd5b5061052d610e37565b60405161053a9190612975565b60405180910390f35b34801561054e575f80fd5b50610557610e3d565b604051610564919061294d565b60405180910390f35b348015610578575f80fd5b50610581610e4f565b005b34801561058e575f80fd5b506105a960048036038101906105a49190612be4565b611370565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190612cbc565b611495565b6040516105de9190612975565b60405180910390f35b60606040518060600160405280602c8152602001613971602c9139905090565b5f61061a610613611517565b848461151e565b6001905092915050565b60145481565b5f6009600a6106399190612e56565b633b9aca006106489190612ea0565b905090565b5f6106598484846116e1565b61071684610665611517565b6107118560405180606001604052806028815260200161399d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106c8611517565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122989092919063ffffffff16565b61151e565b600190509392505050565b610729611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac90612f2b565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff021916908360ff1602179055505050565b5f6009905090565b6107fd611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088090612f2b565b60405180910390fd5b5f5b8151811015610915575f60045f8484815181106108ab576108aa612f49565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061090d90612f76565b91505061088b565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ac611517565b73ffffffffffffffffffffffffffffffffffffffff16146109cb575f80fd5b5f6109d530610a15565b90505f8111156109e9576109e8816122fa565b5b5f4790505f8111156109ff576109fe81612565565b5b5050565b60105f9054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a63611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690612f2b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060019054906101000a900460ff1681565b610bc4611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790612f2b565b60405180910390fd5b8160098190555080600a819055505050565b610c6a611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced90612f2b565b60405180910390fd5b6009600a610d049190612e56565b633b9aca00610d139190612ea0565b6011819055506009600a610d279190612e56565b633b9aca00610d369190612ea0565b6012819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d849190612e56565b633b9aca00610d939190612ea0565b604051610da09190612975565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280602081526020017ff09d95b8f09d968af09d968cf09d9686f09d9689f09d968af09d9699f09d968d815250905090565b5f610e2d610e26611517565b84846116e1565b6001905092915050565b60135481565b60065f9054906101000a900460ff1681565b610e57611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612f2b565b60405180910390fd5b601660149054906101000a900460ff1615610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90613007565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fcf3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fbb9190612e56565b633b9aca00610fca9190612ea0565b61151e565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611039573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105d9190613039565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111079190613039565b6040518363ffffffff1660e01b8152600401611124929190613064565b6020604051808303815f875af1158015611140573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111649190613039565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111eb30610a15565b5f806111f5610db0565b426040518863ffffffff1660e01b8152600401611217969594939291906130cd565b60606040518083038185885af1158015611233573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112589190613140565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112f8929190613190565b6020604051808303815f875af1158015611314573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133891906131cb565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b611378611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90612f2b565b60405180910390fd5b5f5b815181101561149157600160045f84848151811061142757611426612f49565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061148990612f76565b915050611406565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390613266565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f1906132f4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d49190612975565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361174f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174690613382565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b490613410565b60405180910390fd5b5f81116117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f69061349e565b60405180910390fd5b5f611808610db0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118765750611846610db0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fe85760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611919575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611921575f80fd5b61195d606461194f600b54600e541161193c57600754611940565b6009545b856125ce90919063ffffffff16565b61264590919063ffffffff16565b905060065f9054906101000a900460ff1615611ae55760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1d575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae4574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890613552565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4c575060105f9054906101000a900460ff165b8015611b9f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c835742600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a906135ba565b60405180910390fd5b601060019054906101000a900460ff1660ff1642611c4191906135d8565b600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d2c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e3957601154821115611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613655565b60405180910390fd5b60125482611dd685610a15565b611de091906135d8565b1115611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906136bd565b60405180910390fd5b600e5f815480929190611e3390612f76565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ec157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f0557611f026064611ef4600c54600e5411611ee157600854611ee5565b600a545b856125ce90919063ffffffff16565b61264590919063ffffffff16565b90505b5f611f0f30610a15565b9050601660159054906101000a900460ff16158015611f7a575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f90575060168054906101000a900460ff165b8015611f9d575060135481115b8015611fac5750600d54600e54115b15611fe657611fce611fc984611fc48460145461268e565b61268e565b6122fa565b5f4790505f811115611fe457611fe347612565565b5b505b505b5f8111156120e7576120408160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120de9190612975565b60405180910390a35b6121378260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461270390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121da61218e828461270390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61227d848661270390919063ffffffff16565b60405161228a9190612975565b60405180910390a350505050565b5f8383111582906122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d69190612837565b60405180910390fd5b505f83856122ed91906136db565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561233157612330612aa8565b5b60405190808252806020026020018201604052801561235f5781602001602082028036833780820191505090505b50905030815f8151811061237657612375612f49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243e9190613039565b8160018151811061245257612451612f49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124b83060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461151e565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161251a9594939291906137c5565b5f604051808303815f87803b158015612531575f80fd5b505af1158015612543573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125ca573d5f803e3d5ffd5b5050565b5f8083036125de575f905061263f565b5f82846125eb9190612ea0565b90508284826125fa919061384a565b1461263a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612631906138ea565b60405180910390fd5b809150505b92915050565b5f61268683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061274c565b905092915050565b5f81831161269c578261269e565b815b905092915050565b5f8082846126b491906135d8565b9050838110156126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090613952565b60405180910390fd5b8091505092915050565b5f61274483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612298565b905092915050565b5f8083118290612792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127899190612837565b60405180910390fd5b505f83856127a0919061384a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156127e45780820151818401526020810190506127c9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612809826127ad565b61281381856127b7565b93506128238185602086016127c7565b61282c816127ef565b840191505092915050565b5f6020820190508181035f83015261284f81846127ff565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61289182612868565b9050919050565b6128a181612887565b81146128ab575f80fd5b50565b5f813590506128bc81612898565b92915050565b5f819050919050565b6128d4816128c2565b81146128de575f80fd5b50565b5f813590506128ef816128cb565b92915050565b5f806040838503121561290b5761290a612860565b5b5f612918858286016128ae565b9250506020612929858286016128e1565b9150509250929050565b5f8115159050919050565b61294781612933565b82525050565b5f6020820190506129605f83018461293e565b92915050565b61296f816128c2565b82525050565b5f6020820190506129885f830184612966565b92915050565b5f805f606084860312156129a5576129a4612860565b5b5f6129b2868287016128ae565b93505060206129c3868287016128ae565b92505060406129d4868287016128e1565b9150509250925092565b6129e781612933565b81146129f1575f80fd5b50565b5f81359050612a02816129de565b92915050565b5f60ff82169050919050565b612a1d81612a08565b8114612a27575f80fd5b50565b5f81359050612a3881612a14565b92915050565b5f8060408385031215612a5457612a53612860565b5b5f612a61858286016129f4565b9250506020612a7285828601612a2a565b9150509250929050565b612a8581612a08565b82525050565b5f602082019050612a9e5f830184612a7c565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ade826127ef565b810181811067ffffffffffffffff82111715612afd57612afc612aa8565b5b80604052505050565b5f612b0f612857565b9050612b1b8282612ad5565b919050565b5f67ffffffffffffffff821115612b3a57612b39612aa8565b5b602082029050602081019050919050565b5f80fd5b5f612b61612b5c84612b20565b612b06565b90508083825260208201905060208402830185811115612b8457612b83612b4b565b5b835b81811015612bad5780612b9988826128ae565b845260208401935050602081019050612b86565b5050509392505050565b5f82601f830112612bcb57612bca612aa4565b5b8135612bdb848260208601612b4f565b91505092915050565b5f60208284031215612bf957612bf8612860565b5b5f82013567ffffffffffffffff811115612c1657612c15612864565b5b612c2284828501612bb7565b91505092915050565b5f60208284031215612c4057612c3f612860565b5b5f612c4d848285016128ae565b91505092915050565b5f8060408385031215612c6c57612c6b612860565b5b5f612c79858286016128e1565b9250506020612c8a858286016128e1565b9150509250929050565b612c9d81612887565b82525050565b5f602082019050612cb65f830184612c94565b92915050565b5f8060408385031215612cd257612cd1612860565b5b5f612cdf858286016128ae565b9250506020612cf0858286016128ae565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d7c57808604811115612d5857612d57612cfa565b5b6001851615612d675780820291505b8081029050612d7585612d27565b9450612d3c565b94509492505050565b5f82612d945760019050612e4f565b81612da1575f9050612e4f565b8160018114612db75760028114612dc157612df0565b6001915050612e4f565b60ff841115612dd357612dd2612cfa565b5b8360020a915084821115612dea57612de9612cfa565b5b50612e4f565b5060208310610133831016604e8410600b8410161715612e255782820a905083811115612e2057612e1f612cfa565b5b612e4f565b612e328484846001612d33565b92509050818404811115612e4957612e48612cfa565b5b81810290505b9392505050565b5f612e60826128c2565b9150612e6b83612a08565b9250612e987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d85565b905092915050565b5f612eaa826128c2565b9150612eb5836128c2565b9250828202612ec3816128c2565b91508282048414831517612eda57612ed9612cfa565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612f156020836127b7565b9150612f2082612ee1565b602082019050919050565b5f6020820190508181035f830152612f4281612f09565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612f80826128c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fb257612fb1612cfa565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ff16017836127b7565b9150612ffc82612fbd565b602082019050919050565b5f6020820190508181035f83015261301e81612fe5565b9050919050565b5f8151905061303381612898565b92915050565b5f6020828403121561304e5761304d612860565b5b5f61305b84828501613025565b91505092915050565b5f6040820190506130775f830185612c94565b6130846020830184612c94565b9392505050565b5f819050919050565b5f819050919050565b5f6130b76130b26130ad8461308b565b613094565b6128c2565b9050919050565b6130c78161309d565b82525050565b5f60c0820190506130e05f830189612c94565b6130ed6020830188612966565b6130fa60408301876130be565b61310760608301866130be565b6131146080830185612c94565b61312160a0830184612966565b979650505050505050565b5f8151905061313a816128cb565b92915050565b5f805f6060848603121561315757613156612860565b5b5f6131648682870161312c565b93505060206131758682870161312c565b92505060406131868682870161312c565b9150509250925092565b5f6040820190506131a35f830185612c94565b6131b06020830184612966565b9392505050565b5f815190506131c5816129de565b92915050565b5f602082840312156131e0576131df612860565b5b5f6131ed848285016131b7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132506024836127b7565b915061325b826131f6565b604082019050919050565b5f6020820190508181035f83015261327d81613244565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132de6022836127b7565b91506132e982613284565b604082019050919050565b5f6020820190508181035f83015261330b816132d2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61336c6025836127b7565b915061337782613312565b604082019050919050565b5f6020820190508181035f83015261339981613360565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133fa6023836127b7565b9150613405826133a0565b604082019050919050565b5f6020820190508181035f830152613427816133ee565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134886029836127b7565b91506134938261342e565b604082019050919050565b5f6020820190508181035f8301526134b58161347c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61353c6049836127b7565b9150613547826134bc565b606082019050919050565b5f6020820190508181035f83015261356981613530565b9050919050565b7f62757920436f6f6c646f776e20657869737473000000000000000000000000005f82015250565b5f6135a46013836127b7565b91506135af82613570565b602082019050919050565b5f6020820190508181035f8301526135d181613598565b9050919050565b5f6135e2826128c2565b91506135ed836128c2565b925082820190508082111561360557613604612cfa565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61363f6019836127b7565b915061364a8261360b565b602082019050919050565b5f6020820190508181035f83015261366c81613633565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6136a7601a836127b7565b91506136b282613673565b602082019050919050565b5f6020820190508181035f8301526136d48161369b565b9050919050565b5f6136e5826128c2565b91506136f0836128c2565b925082820390508181111561370857613707612cfa565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61374081612887565b82525050565b5f6137518383613737565b60208301905092915050565b5f602082019050919050565b5f6137738261370e565b61377d8185613718565b935061378883613728565b805f5b838110156137b857815161379f8882613746565b97506137aa8361375d565b92505060018101905061378b565b5085935050505092915050565b5f60a0820190506137d85f830188612966565b6137e560208301876130be565b81810360408301526137f78186613769565b90506138066060830185612c94565b6138136080830184612966565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613854826128c2565b915061385f836128c2565b92508261386f5761386e61381d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138d46021836127b7565b91506138df8261387a565b604082019050919050565b5f6020820190508181035f830152613901816138c8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61393c601b836127b7565b915061394782613908565b602082019050919050565b5f6020820190508181035f83015261396981613930565b905091905056fef09d99b820e298a0efb88f20f09d95b8f09d968af09d968cf09d9686f09d9689f09d968af09d9699f09d968d45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a6871eac97d35be3cb7c114f58c949241218462ca14905dcba53eba1e7ceb0c64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610184575f3560e01c8063722b62ad116100d057806395d89b4111610089578063c876d0b911610063578063c876d0b914610543578063c9567bf91461056d578063d34628cc14610583578063dd62ed3e146105ab5761018b565b806395d89b41146104b3578063a9059cbb146104dd578063bf474bed146105195761018b565b8063722b62ad146103cd57806372333356146103f7578063751039fc1461041f5780637d1db4a5146104355780638da5cb5b1461045f5780638f9a55c0146104895761018b565b8063313ce5671161013d57806351bc3c851161011757806351bc3c851461033b578063617fe0ed1461035157806370a082311461037b578063715018a6146103b75761018b565b8063313ce567146102ad57806331c2d847146102d75780633bbac579146102ff5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f557806318160ddd1461021f57806323b872dd146102495780632d594567146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e7565b6040516101b09190612837565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da91906128f5565b610607565b6040516101ec919061294d565b60405180910390f35b348015610200575f80fd5b50610209610624565b6040516102169190612975565b60405180910390f35b34801561022a575f80fd5b5061023361062a565b6040516102409190612975565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a919061298e565b61064d565b60405161027c919061294d565b60405180910390f35b348015610290575f80fd5b506102ab60048036038101906102a69190612a3e565b610721565b005b3480156102b8575f80fd5b506102c16107ed565b6040516102ce9190612a8b565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190612be4565b6107f5565b005b34801561030a575f80fd5b5061032560048036038101906103209190612c2b565b610919565b604051610332919061294d565b60405180910390f35b348015610346575f80fd5b5061034f61096b565b005b34801561035c575f80fd5b50610365610a03565b604051610372919061294d565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190612c2b565b610a15565b6040516103ae9190612975565b60405180910390f35b3480156103c2575f80fd5b506103cb610a5b565b005b3480156103d8575f80fd5b506103e1610ba9565b6040516103ee9190612a8b565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190612c56565b610bbc565b005b34801561042a575f80fd5b50610433610c62565b005b348015610440575f80fd5b50610449610daa565b6040516104569190612975565b60405180910390f35b34801561046a575f80fd5b50610473610db0565b6040516104809190612ca3565b60405180910390f35b348015610494575f80fd5b5061049d610dd7565b6040516104aa9190612975565b60405180910390f35b3480156104be575f80fd5b506104c7610ddd565b6040516104d49190612837565b60405180910390f35b3480156104e8575f80fd5b5061050360048036038101906104fe91906128f5565b610e1a565b604051610510919061294d565b60405180910390f35b348015610524575f80fd5b5061052d610e37565b60405161053a9190612975565b60405180910390f35b34801561054e575f80fd5b50610557610e3d565b604051610564919061294d565b60405180910390f35b348015610578575f80fd5b50610581610e4f565b005b34801561058e575f80fd5b506105a960048036038101906105a49190612be4565b611370565b005b3480156105b6575f80fd5b506105d160048036038101906105cc9190612cbc565b611495565b6040516105de9190612975565b60405180910390f35b60606040518060600160405280602c8152602001613971602c9139905090565b5f61061a610613611517565b848461151e565b6001905092915050565b60145481565b5f6009600a6106399190612e56565b633b9aca006106489190612ea0565b905090565b5f6106598484846116e1565b61071684610665611517565b6107118560405180606001604052806028815260200161399d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106c8611517565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122989092919063ffffffff16565b61151e565b600190509392505050565b610729611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac90612f2b565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff021916908360ff1602179055505050565b5f6009905090565b6107fd611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088090612f2b565b60405180910390fd5b5f5b8151811015610915575f60045f8484815181106108ab576108aa612f49565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061090d90612f76565b91505061088b565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ac611517565b73ffffffffffffffffffffffffffffffffffffffff16146109cb575f80fd5b5f6109d530610a15565b90505f8111156109e9576109e8816122fa565b5b5f4790505f8111156109ff576109fe81612565565b5b5050565b60105f9054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a63611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690612f2b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060019054906101000a900460ff1681565b610bc4611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790612f2b565b60405180910390fd5b8160098190555080600a819055505050565b610c6a611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced90612f2b565b60405180910390fd5b6009600a610d049190612e56565b633b9aca00610d139190612ea0565b6011819055506009600a610d279190612e56565b633b9aca00610d369190612ea0565b6012819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d849190612e56565b633b9aca00610d939190612ea0565b604051610da09190612975565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280602081526020017ff09d95b8f09d968af09d968cf09d9686f09d9689f09d968af09d9699f09d968d815250905090565b5f610e2d610e26611517565b84846116e1565b6001905092915050565b60135481565b60065f9054906101000a900460ff1681565b610e57611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612f2b565b60405180910390fd5b601660149054906101000a900460ff1615610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90613007565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fcf3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fbb9190612e56565b633b9aca00610fca9190612ea0565b61151e565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611039573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105d9190613039565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111079190613039565b6040518363ffffffff1660e01b8152600401611124929190613064565b6020604051808303815f875af1158015611140573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111649190613039565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111eb30610a15565b5f806111f5610db0565b426040518863ffffffff1660e01b8152600401611217969594939291906130cd565b60606040518083038185885af1158015611233573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112589190613140565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112f8929190613190565b6020604051808303815f875af1158015611314573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133891906131cb565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b611378611517565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90612f2b565b60405180910390fd5b5f5b815181101561149157600160045f84848151811061142757611426612f49565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061148990612f76565b915050611406565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390613266565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f1906132f4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d49190612975565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361174f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174690613382565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b490613410565b60405180910390fd5b5f81116117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f69061349e565b60405180910390fd5b5f611808610db0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118765750611846610db0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fe85760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611919575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611921575f80fd5b61195d606461194f600b54600e541161193c57600754611940565b6009545b856125ce90919063ffffffff16565b61264590919063ffffffff16565b905060065f9054906101000a900460ff1615611ae55760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1d575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae4574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890613552565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4c575060105f9054906101000a900460ff165b8015611b9f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c835742600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a906135ba565b60405180910390fd5b601060019054906101000a900460ff1660ff1642611c4191906135d8565b600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d2c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e3957601154821115611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613655565b60405180910390fd5b60125482611dd685610a15565b611de091906135d8565b1115611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e18906136bd565b60405180910390fd5b600e5f815480929190611e3390612f76565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ec157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f0557611f026064611ef4600c54600e5411611ee157600854611ee5565b600a545b856125ce90919063ffffffff16565b61264590919063ffffffff16565b90505b5f611f0f30610a15565b9050601660159054906101000a900460ff16158015611f7a575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f90575060168054906101000a900460ff165b8015611f9d575060135481115b8015611fac5750600d54600e54115b15611fe657611fce611fc984611fc48460145461268e565b61268e565b6122fa565b5f4790505f811115611fe457611fe347612565565b5b505b505b5f8111156120e7576120408160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120de9190612975565b60405180910390a35b6121378260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461270390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121da61218e828461270390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61227d848661270390919063ffffffff16565b60405161228a9190612975565b60405180910390a350505050565b5f8383111582906122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d69190612837565b60405180910390fd5b505f83856122ed91906136db565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561233157612330612aa8565b5b60405190808252806020026020018201604052801561235f5781602001602082028036833780820191505090505b50905030815f8151811061237657612375612f49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061243e9190613039565b8160018151811061245257612451612f49565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124b83060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461151e565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161251a9594939291906137c5565b5f604051808303815f87803b158015612531575f80fd5b505af1158015612543573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156125ca573d5f803e3d5ffd5b5050565b5f8083036125de575f905061263f565b5f82846125eb9190612ea0565b90508284826125fa919061384a565b1461263a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612631906138ea565b60405180910390fd5b809150505b92915050565b5f61268683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061274c565b905092915050565b5f81831161269c578261269e565b815b905092915050565b5f8082846126b491906135d8565b9050838110156126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090613952565b60405180910390fd5b8091505092915050565b5f61274483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612298565b905092915050565b5f8083118290612792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127899190612837565b60405180910390fd5b505f83856127a0919061384a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156127e45780820151818401526020810190506127c9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612809826127ad565b61281381856127b7565b93506128238185602086016127c7565b61282c816127ef565b840191505092915050565b5f6020820190508181035f83015261284f81846127ff565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61289182612868565b9050919050565b6128a181612887565b81146128ab575f80fd5b50565b5f813590506128bc81612898565b92915050565b5f819050919050565b6128d4816128c2565b81146128de575f80fd5b50565b5f813590506128ef816128cb565b92915050565b5f806040838503121561290b5761290a612860565b5b5f612918858286016128ae565b9250506020612929858286016128e1565b9150509250929050565b5f8115159050919050565b61294781612933565b82525050565b5f6020820190506129605f83018461293e565b92915050565b61296f816128c2565b82525050565b5f6020820190506129885f830184612966565b92915050565b5f805f606084860312156129a5576129a4612860565b5b5f6129b2868287016128ae565b93505060206129c3868287016128ae565b92505060406129d4868287016128e1565b9150509250925092565b6129e781612933565b81146129f1575f80fd5b50565b5f81359050612a02816129de565b92915050565b5f60ff82169050919050565b612a1d81612a08565b8114612a27575f80fd5b50565b5f81359050612a3881612a14565b92915050565b5f8060408385031215612a5457612a53612860565b5b5f612a61858286016129f4565b9250506020612a7285828601612a2a565b9150509250929050565b612a8581612a08565b82525050565b5f602082019050612a9e5f830184612a7c565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ade826127ef565b810181811067ffffffffffffffff82111715612afd57612afc612aa8565b5b80604052505050565b5f612b0f612857565b9050612b1b8282612ad5565b919050565b5f67ffffffffffffffff821115612b3a57612b39612aa8565b5b602082029050602081019050919050565b5f80fd5b5f612b61612b5c84612b20565b612b06565b90508083825260208201905060208402830185811115612b8457612b83612b4b565b5b835b81811015612bad5780612b9988826128ae565b845260208401935050602081019050612b86565b5050509392505050565b5f82601f830112612bcb57612bca612aa4565b5b8135612bdb848260208601612b4f565b91505092915050565b5f60208284031215612bf957612bf8612860565b5b5f82013567ffffffffffffffff811115612c1657612c15612864565b5b612c2284828501612bb7565b91505092915050565b5f60208284031215612c4057612c3f612860565b5b5f612c4d848285016128ae565b91505092915050565b5f8060408385031215612c6c57612c6b612860565b5b5f612c79858286016128e1565b9250506020612c8a858286016128e1565b9150509250929050565b612c9d81612887565b82525050565b5f602082019050612cb65f830184612c94565b92915050565b5f8060408385031215612cd257612cd1612860565b5b5f612cdf858286016128ae565b9250506020612cf0858286016128ae565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d7c57808604811115612d5857612d57612cfa565b5b6001851615612d675780820291505b8081029050612d7585612d27565b9450612d3c565b94509492505050565b5f82612d945760019050612e4f565b81612da1575f9050612e4f565b8160018114612db75760028114612dc157612df0565b6001915050612e4f565b60ff841115612dd357612dd2612cfa565b5b8360020a915084821115612dea57612de9612cfa565b5b50612e4f565b5060208310610133831016604e8410600b8410161715612e255782820a905083811115612e2057612e1f612cfa565b5b612e4f565b612e328484846001612d33565b92509050818404811115612e4957612e48612cfa565b5b81810290505b9392505050565b5f612e60826128c2565b9150612e6b83612a08565b9250612e987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d85565b905092915050565b5f612eaa826128c2565b9150612eb5836128c2565b9250828202612ec3816128c2565b91508282048414831517612eda57612ed9612cfa565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612f156020836127b7565b9150612f2082612ee1565b602082019050919050565b5f6020820190508181035f830152612f4281612f09565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612f80826128c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fb257612fb1612cfa565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ff16017836127b7565b9150612ffc82612fbd565b602082019050919050565b5f6020820190508181035f83015261301e81612fe5565b9050919050565b5f8151905061303381612898565b92915050565b5f6020828403121561304e5761304d612860565b5b5f61305b84828501613025565b91505092915050565b5f6040820190506130775f830185612c94565b6130846020830184612c94565b9392505050565b5f819050919050565b5f819050919050565b5f6130b76130b26130ad8461308b565b613094565b6128c2565b9050919050565b6130c78161309d565b82525050565b5f60c0820190506130e05f830189612c94565b6130ed6020830188612966565b6130fa60408301876130be565b61310760608301866130be565b6131146080830185612c94565b61312160a0830184612966565b979650505050505050565b5f8151905061313a816128cb565b92915050565b5f805f6060848603121561315757613156612860565b5b5f6131648682870161312c565b93505060206131758682870161312c565b92505060406131868682870161312c565b9150509250925092565b5f6040820190506131a35f830185612c94565b6131b06020830184612966565b9392505050565b5f815190506131c5816129de565b92915050565b5f602082840312156131e0576131df612860565b5b5f6131ed848285016131b7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132506024836127b7565b915061325b826131f6565b604082019050919050565b5f6020820190508181035f83015261327d81613244565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132de6022836127b7565b91506132e982613284565b604082019050919050565b5f6020820190508181035f83015261330b816132d2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61336c6025836127b7565b915061337782613312565b604082019050919050565b5f6020820190508181035f83015261339981613360565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133fa6023836127b7565b9150613405826133a0565b604082019050919050565b5f6020820190508181035f830152613427816133ee565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134886029836127b7565b91506134938261342e565b604082019050919050565b5f6020820190508181035f8301526134b58161347c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61353c6049836127b7565b9150613547826134bc565b606082019050919050565b5f6020820190508181035f83015261356981613530565b9050919050565b7f62757920436f6f6c646f776e20657869737473000000000000000000000000005f82015250565b5f6135a46013836127b7565b91506135af82613570565b602082019050919050565b5f6020820190508181035f8301526135d181613598565b9050919050565b5f6135e2826128c2565b91506135ed836128c2565b925082820190508082111561360557613604612cfa565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61363f6019836127b7565b915061364a8261360b565b602082019050919050565b5f6020820190508181035f83015261366c81613633565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6136a7601a836127b7565b91506136b282613673565b602082019050919050565b5f6020820190508181035f8301526136d48161369b565b9050919050565b5f6136e5826128c2565b91506136f0836128c2565b925082820390508181111561370857613707612cfa565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61374081612887565b82525050565b5f6137518383613737565b60208301905092915050565b5f602082019050919050565b5f6137738261370e565b61377d8185613718565b935061378883613728565b805f5b838110156137b857815161379f8882613746565b97506137aa8361375d565b92505060018101905061378b565b5085935050505092915050565b5f60a0820190506137d85f830188612966565b6137e560208301876130be565b81810360408301526137f78186613769565b90506138066060830185612c94565b6138136080830184612966565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613854826128c2565b915061385f836128c2565b92508261386f5761386e61381d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138d46021836127b7565b91506138df8261387a565b604082019050919050565b5f6020820190508181035f830152613901816138c8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61393c601b836127b7565b915061394782613908565b602082019050919050565b5f6020820190508181035f83015261396981613930565b905091905056fef09d99b820e298a0efb88f20f09d95b8f09d968af09d968cf09d9686f09d9689f09d968af09d9699f09d968d45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a6871eac97d35be3cb7c114f58c949241218462ca14905dcba53eba1e7ceb0c64736f6c63430008140033

Deployed Bytecode Sourcemap

3548:9349:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5690:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6523:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4965:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6692:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7356:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5876:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11391:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11561:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12546:348;;;;;;;;;;;;;:::i;:::-;;4402:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6070:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2629:148;;;;;;;;;;;;;:::i;:::-;;4446:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12338:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10915:196;;;;;;;;;;;;;:::i;:::-;;4776:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2415:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4837:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5781:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6197:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4900:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3938:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11652:671;;;;;;;;;;;;;:::i;:::-;;11219:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6372:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5690:83;5727:13;5760:5;;;;;;;;;;;;;;;;;5753:12;;5690:83;:::o;6523:161::-;6598:4;6615:39;6624:12;:10;:12::i;:::-;6638:7;6647:6;6615:8;:39::i;:::-;6672:4;6665:11;;6523:161;;;;:::o;4965:52::-;;;;:::o;5967:95::-;6020:7;4526:1;4582:2;:13;;;;:::i;:::-;4569:10;:26;;;;:::i;:::-;6040:14;;5967:95;:::o;6692:313::-;6790:4;6807:36;6817:6;6825:9;6836:6;6807:9;:36::i;:::-;6854:121;6863:6;6871:12;:10;:12::i;:::-;6885:89;6923:6;6885:89;;;;;;;;;;;;;;;;;:11;:19;6897:6;6885:19;;;;;;;;;;;;;;;:33;6905:12;:10;:12::i;:::-;6885:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6854:8;:121::i;:::-;6993:4;6986:11;;6692:313;;;;;:::o;7356:164::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7461:7:::1;7440:18;;:28;;;;;;;;;;;;;;;;;;7503:9;7479:21;;:33;;;;;;;;;;;;;;;;;;7356:164:::0;;:::o;5876:83::-;5917:5;4526:1;5935:16;;5876:83;:::o;11391:162::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11464:6:::1;11459:87;11480:6;:13;11476:1;:17;11459:87;;;11531:5;11513:4;:15;11518:6;11525:1;11518:9;;;;;;;;:::i;:::-;;;;;;;;11513:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11495:3;;;;;:::i;:::-;;;;11459:87;;;;11391:162:::0;:::o;11561:83::-;11608:4;11629;:7;11634:1;11629:7;;;;;;;;;;;;;;;;;;;;;;;;;11622:14;;11561:83;;;:::o;12546:348::-;12610:10;;;;;;;;;;;12596:24;;:12;:10;:12::i;:::-;:24;;;12588:33;;;;;;12632:20;12653:24;12671:4;12653:9;:24::i;:::-;12632:45;;12704:1;12691:12;:14;12688:73;;;12719:30;12736:12;12719:16;:30::i;:::-;12688:73;12771:18;12790:21;12771:40;;12836:1;12825:10;:12;12822:65;;;12851:24;12864:10;12851:12;:24::i;:::-;12822:65;12577:317;;12546:348::o;4402:37::-;;;;;;;;;;;;;:::o;6070:119::-;6136:7;6163:9;:18;6173:7;6163:18;;;;;;;;;;;;;;;;6156:25;;6070:119;;;:::o;2629:148::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2736:1:::1;2699:40;;2720:6;::::0;::::1;;;;;;;;2699:40;;;;;;;;;;;;2767:1;2750:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2629:148::o:0;4446:38::-;;;;;;;;;;;;;:::o;12338:163::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12443:10:::1;12430:12;:23;;;;12482:11;12468:13;:25;;;;12338:163:::0;;:::o;10915:196::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4526:1:::1;4582:2;:13;;;;:::i;:::-;4569:10;:26;;;;:::i;:::-;10968:12;:22;;;;4526:1;4582:2;:13;;;;:::i;:::-;4569:10;:26;;;;:::i;:::-;11001:14;:22;;;;11055:5;11034:20;;:26;;;;;;;;;;;;;;;;;;11076:27;4526:1;4582:2;:13;;;;:::i;:::-;4569:10;:26;;;;:::i;:::-;11076:27;;;;;;:::i;:::-;;;;;;;;10915:196::o:0;4776:54::-;;;;:::o;2415:79::-;2453:7;2480:6;;;;;;;;;;;2473:13;;2415:79;:::o;4837:56::-;;;;:::o;5781:87::-;5820:13;5853:7;;;;;;;;;;;;;;;;;5846:14;;5781:87;:::o;6197:167::-;6275:4;6292:42;6302:12;:10;:12::i;:::-;6316:9;6327:6;6292:9;:42::i;:::-;6352:4;6345:11;;6197:167;;;;:::o;4900:58::-;;;;:::o;3938:39::-;;;;;;;;;;;;;:::o;11652:671::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11716:11:::1;;;;;;;;;;;11715:12;11707:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11802:42;11765:15;;:80;;;;;;;;;;;;;;;;;;11856:58;11873:4;11888:15;;;;;;;;;;;4526:1;4582:2;:13;;;;:::i;:::-;4569:10;:26;;;;:::i;:::-;11856:8;:58::i;:::-;11959:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11941:55;;;12005:4;12012:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11941:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11925:13;;:110;;;;;;;;;;;;;;;;;;12046:15;;;;;;;;;;;:31;;;12085:21;12116:4;12122:24;12140:4;12122:9;:24::i;:::-;12147:1;12149::::0;12151:7:::1;:5;:7::i;:::-;12159:15;12046:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12193:13;;;;;;;;;;;12186:29;;;12224:15;;;;;;;;;;;12242:14;12186:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12282:4;12268:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12311:4;12297:11;;:18;;;;;;;;;;;;;;;;;;11652:671::o:0;11219:164::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11293:6:::1;11288:88;11309:5;:12;11305:1;:16;11288:88;;;11360:4;11343;:14;11348:5;11354:1;11348:8;;;;;;;;:::i;:::-;;;;;;;;11343:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11323:3;;;;;:::i;:::-;;;;11288:88;;;;11219:164:::0;:::o;6372:143::-;6453:7;6480:11;:18;6492:5;6480:18;;;;;;;;;;;;;;;:27;6499:7;6480:27;;;;;;;;;;;;;;;;6473:34;;6372:143;;;;:::o;170:98::-;223:7;250:10;243:17;;170:98;:::o;7013:335::-;7123:1;7106:19;;:5;:19;;;7098:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7204:1;7185:21;;:7;:21;;;7177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7286:6;7256:11;:18;7268:5;7256:18;;;;;;;;;;;;;;;:27;7275:7;7256:27;;;;;;;;;;;;;;;:36;;;;7324:7;7308:32;;7317:5;7308:32;;;7333:6;7308:32;;;;;;:::i;:::-;;;;;;;;7013:335;;;:::o;7528:2780::-;7632:1;7616:18;;:4;:18;;;7608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7709:1;7695:16;;:2;:16;;;7687:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7779:1;7770:6;:10;7762:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7837:17;7879:7;:5;:7::i;:::-;7871:15;;:4;:15;;;;:32;;;;;7896:7;:5;:7::i;:::-;7890:13;;:2;:13;;;;7871:32;7867:2085;;;7929:4;:10;7934:4;7929:10;;;;;;;;;;;;;;;;;;;;;;;;;7928:11;:24;;;;;7944:4;:8;7949:2;7944:8;;;;;;;;;;;;;;;;;;;;;;;;;7943:9;7928:24;7920:33;;;;;;7980:76;8052:3;7980:67;8002:15;;7992:9;;:25;7991:55;;8032:14;;7991:55;;;8019:12;;7991:55;7980:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7968:88;;8077:20;;;;;;;;;;;8073:508;;;8138:15;;;;;;;;;;;8124:30;;:2;:30;;;;:62;;;;;8172:13;;;;;;;;;;;8158:28;;:2;:28;;;;8124:62;8120:444;;;8322:12;8249:28;:39;8278:9;8249:39;;;;;;;;;;;;;;;;:85;8213:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8530:12;8488:28;:39;8517:9;8488:39;;;;;;;;;;;;;;;:54;;;;8120:444;8073:508;8609:13;;;;;;;;;;;8601:21;;:4;:21;;;:43;;;;;8626:18;;;;;;;;;;;8601:43;:71;;;;;8650:18;:22;8669:2;8650:22;;;;;;;;;;;;;;;;;;;;;;;;;8648:24;8601:71;8597:318;;;8743:15;8723:13;:17;8737:2;8723:17;;;;;;;;;;;;;;;;:35;8693:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:21;;;;;;;;;;;8860:39;;:15;:39;;;;:::i;:::-;8840:13;:17;8854:2;8840:17;;;;;;;;;;;;;;;:59;;;;8597:318;8943:13;;;;;;;;;;;8935:21;;:4;:21;;;:55;;;;;8974:15;;;;;;;;;;;8960:30;;:2;:30;;;;8935:55;:83;;;;;8996:18;:22;9015:2;8996:22;;;;;;;;;;;;;;;;;;;;;;;;;8994:24;8935:83;8931:313;;;9058:12;;9048:6;:22;;9040:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9153:14;;9143:6;9127:13;9137:2;9127:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9119:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9217:9;;:11;;;;;;;;;:::i;:::-;;;;;;8931:313;9269:13;;;;;;;;;;;9263:19;;:2;:19;;;:43;;;;;9301:4;9286:20;;:4;:20;;;;9263:43;9260:174;;;9339:79;9414:3;9339:70;9361:16;;9351:9;;:26;9350:58;;9393:15;;9350:58;;;9379:13;;9350:58;9339:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9327:91;;9260:174;9450:28;9481:24;9499:4;9481:9;:24::i;:::-;9450:55;;9525:6;;;;;;;;;;;9524:7;:32;;;;;9543:13;;;;;;;;;;;9535:21;;:2;:21;;;9524:32;:47;;;;;9560:11;;;;;;;;;;9524:47;:89;;;;;9596:17;;9575:20;:38;9524:89;:121;;;;;9627:18;;9617:9;;:28;9524:121;9520:421;;;9666:67;9683:49;9687:6;9694:37;9698:20;9719:11;;9694:3;:37::i;:::-;9683:3;:49::i;:::-;9666:16;:67::i;:::-;9752:26;9781:21;9752:50;;9845:1;9824:18;:22;9821:105;;;9871:35;9884:21;9871:12;:35::i;:::-;9821:105;9647:294;9520:421;7905:2047;7867:2085;9977:1;9967:9;:11;9964:161;;;10017:39;10046:9;10017;:24;10035:4;10017:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9992:9;:24;10010:4;9992:24;;;;;;;;;;;;;;;:64;;;;10097:4;10074:39;;10083:4;10074:39;;;10103:9;10074:39;;;;;;:::i;:::-;;;;;;;;9964:161;10151:27;10171:6;10151:9;:15;10161:4;10151:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10135:9;:15;10145:4;10135:15;;;;;;;;;;;;;;;:43;;;;10203:40;10221:21;10232:9;10221:6;:10;;:21;;;;:::i;:::-;10203:9;:13;10213:2;10203:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10189:9;:13;10199:2;10189:13;;;;;;;;;;;;;;;:54;;;;10274:2;10259:41;;10268:4;10259:41;;;10278:21;10289:9;10278:6;:10;;:21;;;;:::i;:::-;10259:41;;;;;;:::i;:::-;;;;;;;;7597:2711;7528:2780;;;:::o;1307:190::-;1393:7;1426:1;1421;:6;;1429:12;1413:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1453:9;1469:1;1465;:5;;;;:::i;:::-;1453:17;;1488:1;1481:8;;;1307:190;;;;;:::o;10424:483::-;5308:4;5299:6;;:13;;;;;;;;;;;;;;;;;;10502:21:::1;10540:1;10526:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10502:40;;10571:4;10553;10558:1;10553:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10597:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10587:4;10592:1;10587:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10630:62;10647:4;10662:15;;;;;;;;;;;10680:11;10630:8;:62::i;:::-;10703:15;;;;;;;;;;;:66;;;10784:11;10810:1;10826:4;10853;10873:15;10703:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10491:416;5344:5:::0;5335:6;;:14;;;;;;;;;;;;;;;;;;10424:483;:::o;11119:92::-;11176:10;;;;;;;;;;;:19;;:27;11196:6;11176:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11119:92;:::o;1505:246::-;1563:7;1592:1;1587;:6;1583:47;;1617:1;1610:8;;;;1583:47;1640:9;1656:1;1652;:5;;;;:::i;:::-;1640:17;;1685:1;1680;1676;:5;;;;:::i;:::-;:10;1668:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1742:1;1735:8;;;1505:246;;;;;:::o;1759:132::-;1817:7;1844:39;1848:1;1851;1844:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1837:46;;1759:132;;;;:::o;10318:98::-;10375:7;10402:1;10400;:3;10399:9;;10407:1;10399:9;;;10405:1;10399:9;10392:16;;10318:98;;;;:::o;976:179::-;1034:7;1054:9;1070:1;1066;:5;;;;:::i;:::-;1054:17;;1095:1;1090;:6;;1082:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1146:1;1139:8;;;976:179;;;;:::o;1163:136::-;1221:7;1248:43;1252:1;1255;1248:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1241:50;;1163:136;;;;:::o;1899:189::-;1985:7;2017:1;2013;:5;2020:12;2005:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2044:9;2060:1;2056;:5;;;;:::i;:::-;2044:17;;2079:1;2072:8;;;1899:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:116::-;4493:21;4508:5;4493:21;:::i;:::-;4486:5;4483:32;4473:60;;4529:1;4526;4519:12;4473:60;4423:116;:::o;4545:133::-;4588:5;4626:6;4613:20;4604:29;;4642:30;4666:5;4642:30;:::i;:::-;4545:133;;;;:::o;4684:86::-;4719:7;4759:4;4752:5;4748:16;4737:27;;4684:86;;;:::o;4776:118::-;4847:22;4863:5;4847:22;:::i;:::-;4840:5;4837:33;4827:61;;4884:1;4881;4874:12;4827:61;4776:118;:::o;4900:135::-;4944:5;4982:6;4969:20;4960:29;;4998:31;5023:5;4998:31;:::i;:::-;4900:135;;;;:::o;5041:464::-;5104:6;5112;5161:2;5149:9;5140:7;5136:23;5132:32;5129:119;;;5167:79;;:::i;:::-;5129:119;5287:1;5312:50;5354:7;5345:6;5334:9;5330:22;5312:50;:::i;:::-;5302:60;;5258:114;5411:2;5437:51;5480:7;5471:6;5460:9;5456:22;5437:51;:::i;:::-;5427:61;;5382:116;5041:464;;;;;:::o;5511:112::-;5594:22;5610:5;5594:22;:::i;:::-;5589:3;5582:35;5511:112;;:::o;5629:214::-;5718:4;5756:2;5745:9;5741:18;5733:26;;5769:67;5833:1;5822:9;5818:17;5809:6;5769:67;:::i;:::-;5629:214;;;;:::o;5849:117::-;5958:1;5955;5948:12;5972:180;6020:77;6017:1;6010:88;6117:4;6114:1;6107:15;6141:4;6138:1;6131:15;6158:281;6241:27;6263:4;6241:27;:::i;:::-;6233:6;6229:40;6371:6;6359:10;6356:22;6335:18;6323:10;6320:34;6317:62;6314:88;;;6382:18;;:::i;:::-;6314:88;6422:10;6418:2;6411:22;6201:238;6158:281;;:::o;6445:129::-;6479:6;6506:20;;:::i;:::-;6496:30;;6535:33;6563:4;6555:6;6535:33;:::i;:::-;6445:129;;;:::o;6580:311::-;6657:4;6747:18;6739:6;6736:30;6733:56;;;6769:18;;:::i;:::-;6733:56;6819:4;6811:6;6807:17;6799:25;;6879:4;6873;6869:15;6861:23;;6580:311;;;:::o;6897:117::-;7006:1;7003;6996:12;7037:710;7133:5;7158:81;7174:64;7231:6;7174:64;:::i;:::-;7158:81;:::i;:::-;7149:90;;7259:5;7288:6;7281:5;7274:21;7322:4;7315:5;7311:16;7304:23;;7375:4;7367:6;7363:17;7355:6;7351:30;7404:3;7396:6;7393:15;7390:122;;;7423:79;;:::i;:::-;7390:122;7538:6;7521:220;7555:6;7550:3;7547:15;7521:220;;;7630:3;7659:37;7692:3;7680:10;7659:37;:::i;:::-;7654:3;7647:50;7726:4;7721:3;7717:14;7710:21;;7597:144;7581:4;7576:3;7572:14;7565:21;;7521:220;;;7525:21;7139:608;;7037:710;;;;;:::o;7770:370::-;7841:5;7890:3;7883:4;7875:6;7871:17;7867:27;7857:122;;7898:79;;:::i;:::-;7857:122;8015:6;8002:20;8040:94;8130:3;8122:6;8115:4;8107:6;8103:17;8040:94;:::i;:::-;8031:103;;7847:293;7770:370;;;;:::o;8146:539::-;8230:6;8279:2;8267:9;8258:7;8254:23;8250:32;8247:119;;;8285:79;;:::i;:::-;8247:119;8433:1;8422:9;8418:17;8405:31;8463:18;8455:6;8452:30;8449:117;;;8485:79;;:::i;:::-;8449:117;8590:78;8660:7;8651:6;8640:9;8636:22;8590:78;:::i;:::-;8580:88;;8376:302;8146:539;;;;:::o;8691:329::-;8750:6;8799:2;8787:9;8778:7;8774:23;8770:32;8767:119;;;8805:79;;:::i;:::-;8767:119;8925:1;8950:53;8995:7;8986:6;8975:9;8971:22;8950:53;:::i;:::-;8940:63;;8896:117;8691:329;;;;:::o;9026:474::-;9094:6;9102;9151:2;9139:9;9130:7;9126:23;9122:32;9119:119;;;9157:79;;:::i;:::-;9119:119;9277:1;9302:53;9347:7;9338:6;9327:9;9323:22;9302:53;:::i;:::-;9292:63;;9248:117;9404:2;9430:53;9475:7;9466:6;9455:9;9451:22;9430:53;:::i;:::-;9420:63;;9375:118;9026:474;;;;;:::o;9506:118::-;9593:24;9611:5;9593:24;:::i;:::-;9588:3;9581:37;9506:118;;:::o;9630:222::-;9723:4;9761:2;9750:9;9746:18;9738:26;;9774:71;9842:1;9831:9;9827:17;9818:6;9774:71;:::i;:::-;9630:222;;;;:::o;9858:474::-;9926:6;9934;9983:2;9971:9;9962:7;9958:23;9954:32;9951:119;;;9989:79;;:::i;:::-;9951:119;10109:1;10134:53;10179:7;10170:6;10159:9;10155:22;10134:53;:::i;:::-;10124:63;;10080:117;10236:2;10262:53;10307:7;10298:6;10287:9;10283:22;10262:53;:::i;:::-;10252:63;;10207:118;9858:474;;;;;:::o;10338:180::-;10386:77;10383:1;10376:88;10483:4;10480:1;10473:15;10507:4;10504:1;10497:15;10524:102;10566:8;10613:5;10610:1;10606:13;10585:34;;10524:102;;;:::o;10632:848::-;10693:5;10700:4;10724:6;10715:15;;10748:5;10739:14;;10762:712;10783:1;10773:8;10770:15;10762:712;;;10878:4;10873:3;10869:14;10863:4;10860:24;10857:50;;;10887:18;;:::i;:::-;10857:50;10937:1;10927:8;10923:16;10920:451;;;11352:4;11345:5;11341:16;11332:25;;10920:451;11402:4;11396;11392:15;11384:23;;11432:32;11455:8;11432:32;:::i;:::-;11420:44;;10762:712;;;10632:848;;;;;;;:::o;11486:1073::-;11540:5;11731:8;11721:40;;11752:1;11743:10;;11754:5;;11721:40;11780:4;11770:36;;11797:1;11788:10;;11799:5;;11770:36;11866:4;11914:1;11909:27;;;;11950:1;11945:191;;;;11859:277;;11909:27;11927:1;11918:10;;11929:5;;;11945:191;11990:3;11980:8;11977:17;11974:43;;;11997:18;;:::i;:::-;11974:43;12046:8;12043:1;12039:16;12030:25;;12081:3;12074:5;12071:14;12068:40;;;12088:18;;:::i;:::-;12068:40;12121:5;;;11859:277;;12245:2;12235:8;12232:16;12226:3;12220:4;12217:13;12213:36;12195:2;12185:8;12182:16;12177:2;12171:4;12168:12;12164:35;12148:111;12145:246;;;12301:8;12295:4;12291:19;12282:28;;12336:3;12329:5;12326:14;12323:40;;;12343:18;;:::i;:::-;12323:40;12376:5;;12145:246;12416:42;12454:3;12444:8;12438:4;12435:1;12416:42;:::i;:::-;12401:57;;;;12490:4;12485:3;12481:14;12474:5;12471:25;12468:51;;;12499:18;;:::i;:::-;12468:51;12548:4;12541:5;12537:16;12528:25;;11486:1073;;;;;;:::o;12565:281::-;12623:5;12647:23;12665:4;12647:23;:::i;:::-;12639:31;;12691:25;12707:8;12691:25;:::i;:::-;12679:37;;12735:104;12772:66;12762:8;12756:4;12735:104;:::i;:::-;12726:113;;12565:281;;;;:::o;12852:410::-;12892:7;12915:20;12933:1;12915:20;:::i;:::-;12910:25;;12949:20;12967:1;12949:20;:::i;:::-;12944:25;;13004:1;13001;12997:9;13026:30;13044:11;13026:30;:::i;:::-;13015:41;;13205:1;13196:7;13192:15;13189:1;13186:22;13166:1;13159:9;13139:83;13116:139;;13235:18;;:::i;:::-;13116:139;12900:362;12852:410;;;;:::o;13268:182::-;13408:34;13404:1;13396:6;13392:14;13385:58;13268:182;:::o;13456:366::-;13598:3;13619:67;13683:2;13678:3;13619:67;:::i;:::-;13612:74;;13695:93;13784:3;13695:93;:::i;:::-;13813:2;13808:3;13804:12;13797:19;;13456:366;;;:::o;13828:419::-;13994:4;14032:2;14021:9;14017:18;14009:26;;14081:9;14075:4;14071:20;14067:1;14056:9;14052:17;14045:47;14109:131;14235:4;14109:131;:::i;:::-;14101:139;;13828:419;;;:::o;14253:180::-;14301:77;14298:1;14291:88;14398:4;14395:1;14388:15;14422:4;14419:1;14412:15;14439:233;14478:3;14501:24;14519:5;14501:24;:::i;:::-;14492:33;;14547:66;14540:5;14537:77;14534:103;;14617:18;;:::i;:::-;14534:103;14664:1;14657:5;14653:13;14646:20;;14439:233;;;:::o;14678:173::-;14818:25;14814:1;14806:6;14802:14;14795:49;14678:173;:::o;14857:366::-;14999:3;15020:67;15084:2;15079:3;15020:67;:::i;:::-;15013:74;;15096:93;15185:3;15096:93;:::i;:::-;15214:2;15209:3;15205:12;15198:19;;14857:366;;;:::o;15229:419::-;15395:4;15433:2;15422:9;15418:18;15410:26;;15482:9;15476:4;15472:20;15468:1;15457:9;15453:17;15446:47;15510:131;15636:4;15510:131;:::i;:::-;15502:139;;15229:419;;;:::o;15654:143::-;15711:5;15742:6;15736:13;15727:22;;15758:33;15785:5;15758:33;:::i;:::-;15654:143;;;;:::o;15803:351::-;15873:6;15922:2;15910:9;15901:7;15897:23;15893:32;15890:119;;;15928:79;;:::i;:::-;15890:119;16048:1;16073:64;16129:7;16120:6;16109:9;16105:22;16073:64;:::i;:::-;16063:74;;16019:128;15803:351;;;;:::o;16160:332::-;16281:4;16319:2;16308:9;16304:18;16296:26;;16332:71;16400:1;16389:9;16385:17;16376:6;16332:71;:::i;:::-;16413:72;16481:2;16470:9;16466:18;16457:6;16413:72;:::i;:::-;16160:332;;;;;:::o;16498:85::-;16543:7;16572:5;16561:16;;16498:85;;;:::o;16589:60::-;16617:3;16638:5;16631:12;;16589:60;;;:::o;16655:158::-;16713:9;16746:61;16764:42;16773:32;16799:5;16773:32;:::i;:::-;16764:42;:::i;:::-;16746:61;:::i;:::-;16733:74;;16655:158;;;:::o;16819:147::-;16914:45;16953:5;16914:45;:::i;:::-;16909:3;16902:58;16819:147;;:::o;16972:807::-;17221:4;17259:3;17248:9;17244:19;17236:27;;17273:71;17341:1;17330:9;17326:17;17317:6;17273:71;:::i;:::-;17354:72;17422:2;17411:9;17407:18;17398:6;17354:72;:::i;:::-;17436:80;17512:2;17501:9;17497:18;17488:6;17436:80;:::i;:::-;17526;17602:2;17591:9;17587:18;17578:6;17526:80;:::i;:::-;17616:73;17684:3;17673:9;17669:19;17660:6;17616:73;:::i;:::-;17699;17767:3;17756:9;17752:19;17743:6;17699:73;:::i;:::-;16972:807;;;;;;;;;:::o;17785:143::-;17842:5;17873:6;17867:13;17858:22;;17889:33;17916:5;17889:33;:::i;:::-;17785:143;;;;:::o;17934:663::-;18022:6;18030;18038;18087:2;18075:9;18066:7;18062:23;18058:32;18055:119;;;18093:79;;:::i;:::-;18055:119;18213:1;18238:64;18294:7;18285:6;18274:9;18270:22;18238:64;:::i;:::-;18228:74;;18184:128;18351:2;18377:64;18433:7;18424:6;18413:9;18409:22;18377:64;:::i;:::-;18367:74;;18322:129;18490:2;18516:64;18572:7;18563:6;18552:9;18548:22;18516:64;:::i;:::-;18506:74;;18461:129;17934:663;;;;;:::o;18603:332::-;18724:4;18762:2;18751:9;18747:18;18739:26;;18775:71;18843:1;18832:9;18828:17;18819:6;18775:71;:::i;:::-;18856:72;18924:2;18913:9;18909:18;18900:6;18856:72;:::i;:::-;18603:332;;;;;:::o;18941:137::-;18995:5;19026:6;19020:13;19011:22;;19042:30;19066:5;19042:30;:::i;:::-;18941:137;;;;:::o;19084:345::-;19151:6;19200:2;19188:9;19179:7;19175:23;19171:32;19168:119;;;19206:79;;:::i;:::-;19168:119;19326:1;19351:61;19404:7;19395:6;19384:9;19380:22;19351:61;:::i;:::-;19341:71;;19297:125;19084:345;;;;:::o;19435:223::-;19575:34;19571:1;19563:6;19559:14;19552:58;19644:6;19639:2;19631:6;19627:15;19620:31;19435:223;:::o;19664:366::-;19806:3;19827:67;19891:2;19886:3;19827:67;:::i;:::-;19820:74;;19903:93;19992:3;19903:93;:::i;:::-;20021:2;20016:3;20012:12;20005:19;;19664:366;;;:::o;20036:419::-;20202:4;20240:2;20229:9;20225:18;20217:26;;20289:9;20283:4;20279:20;20275:1;20264:9;20260:17;20253:47;20317:131;20443:4;20317:131;:::i;:::-;20309:139;;20036:419;;;:::o;20461:221::-;20601:34;20597:1;20589:6;20585:14;20578:58;20670:4;20665:2;20657:6;20653:15;20646:29;20461:221;:::o;20688:366::-;20830:3;20851:67;20915:2;20910:3;20851:67;:::i;:::-;20844:74;;20927:93;21016:3;20927:93;:::i;:::-;21045:2;21040:3;21036:12;21029:19;;20688:366;;;:::o;21060:419::-;21226:4;21264:2;21253:9;21249:18;21241:26;;21313:9;21307:4;21303:20;21299:1;21288:9;21284:17;21277:47;21341:131;21467:4;21341:131;:::i;:::-;21333:139;;21060:419;;;:::o;21485:224::-;21625:34;21621:1;21613:6;21609:14;21602:58;21694:7;21689:2;21681:6;21677:15;21670:32;21485:224;:::o;21715:366::-;21857:3;21878:67;21942:2;21937:3;21878:67;:::i;:::-;21871:74;;21954:93;22043:3;21954:93;:::i;:::-;22072:2;22067:3;22063:12;22056:19;;21715:366;;;:::o;22087:419::-;22253:4;22291:2;22280:9;22276:18;22268:26;;22340:9;22334:4;22330:20;22326:1;22315:9;22311:17;22304:47;22368:131;22494:4;22368:131;:::i;:::-;22360:139;;22087:419;;;:::o;22512:222::-;22652:34;22648:1;22640:6;22636:14;22629:58;22721:5;22716:2;22708:6;22704:15;22697:30;22512:222;:::o;22740:366::-;22882:3;22903:67;22967:2;22962:3;22903:67;:::i;:::-;22896:74;;22979:93;23068:3;22979:93;:::i;:::-;23097:2;23092:3;23088:12;23081:19;;22740:366;;;:::o;23112:419::-;23278:4;23316:2;23305:9;23301:18;23293:26;;23365:9;23359:4;23355:20;23351:1;23340:9;23336:17;23329:47;23393:131;23519:4;23393:131;:::i;:::-;23385:139;;23112:419;;;:::o;23537:228::-;23677:34;23673:1;23665:6;23661:14;23654:58;23746:11;23741:2;23733:6;23729:15;23722:36;23537:228;:::o;23771:366::-;23913:3;23934:67;23998:2;23993:3;23934:67;:::i;:::-;23927:74;;24010:93;24099:3;24010:93;:::i;:::-;24128:2;24123:3;24119:12;24112:19;;23771:366;;;:::o;24143:419::-;24309:4;24347:2;24336:9;24332:18;24324:26;;24396:9;24390:4;24386:20;24382:1;24371:9;24367:17;24360:47;24424:131;24550:4;24424:131;:::i;:::-;24416:139;;24143:419;;;:::o;24568:297::-;24708:34;24704:1;24696:6;24692:14;24685:58;24777:34;24772:2;24764:6;24760:15;24753:59;24846:11;24841:2;24833:6;24829:15;24822:36;24568:297;:::o;24871:366::-;25013:3;25034:67;25098:2;25093:3;25034:67;:::i;:::-;25027:74;;25110:93;25199:3;25110:93;:::i;:::-;25228:2;25223:3;25219:12;25212:19;;24871:366;;;:::o;25243:419::-;25409:4;25447:2;25436:9;25432:18;25424:26;;25496:9;25490:4;25486:20;25482:1;25471:9;25467:17;25460:47;25524:131;25650:4;25524:131;:::i;:::-;25516:139;;25243:419;;;:::o;25668:169::-;25808:21;25804:1;25796:6;25792:14;25785:45;25668:169;:::o;25843:366::-;25985:3;26006:67;26070:2;26065:3;26006:67;:::i;:::-;25999:74;;26082:93;26171:3;26082:93;:::i;:::-;26200:2;26195:3;26191:12;26184:19;;25843:366;;;:::o;26215:419::-;26381:4;26419:2;26408:9;26404:18;26396:26;;26468:9;26462:4;26458:20;26454:1;26443:9;26439:17;26432:47;26496:131;26622:4;26496:131;:::i;:::-;26488:139;;26215:419;;;:::o;26640:191::-;26680:3;26699:20;26717:1;26699:20;:::i;:::-;26694:25;;26733:20;26751:1;26733:20;:::i;:::-;26728:25;;26776:1;26773;26769:9;26762:16;;26797:3;26794:1;26791:10;26788:36;;;26804:18;;:::i;:::-;26788:36;26640:191;;;;:::o;26837:175::-;26977:27;26973:1;26965:6;26961:14;26954:51;26837:175;:::o;27018:366::-;27160:3;27181:67;27245:2;27240:3;27181:67;:::i;:::-;27174:74;;27257:93;27346:3;27257:93;:::i;:::-;27375:2;27370:3;27366:12;27359:19;;27018:366;;;:::o;27390:419::-;27556:4;27594:2;27583:9;27579:18;27571:26;;27643:9;27637:4;27633:20;27629:1;27618:9;27614:17;27607:47;27671:131;27797:4;27671:131;:::i;:::-;27663:139;;27390:419;;;:::o;27815:176::-;27955:28;27951:1;27943:6;27939:14;27932:52;27815:176;:::o;27997:366::-;28139:3;28160:67;28224:2;28219:3;28160:67;:::i;:::-;28153:74;;28236:93;28325:3;28236:93;:::i;:::-;28354:2;28349:3;28345:12;28338:19;;27997:366;;;:::o;28369:419::-;28535:4;28573:2;28562:9;28558:18;28550:26;;28622:9;28616:4;28612:20;28608:1;28597:9;28593:17;28586:47;28650:131;28776:4;28650:131;:::i;:::-;28642:139;;28369:419;;;:::o;28794:194::-;28834:4;28854:20;28872:1;28854:20;:::i;:::-;28849:25;;28888:20;28906:1;28888:20;:::i;:::-;28883:25;;28932:1;28929;28925:9;28917:17;;28956:1;28950:4;28947:11;28944:37;;;28961:18;;:::i;:::-;28944:37;28794:194;;;;:::o;28994:114::-;29061:6;29095:5;29089:12;29079:22;;28994:114;;;:::o;29114:184::-;29213:11;29247:6;29242:3;29235:19;29287:4;29282:3;29278:14;29263:29;;29114:184;;;;:::o;29304:132::-;29371:4;29394:3;29386:11;;29424:4;29419:3;29415:14;29407:22;;29304:132;;;:::o;29442:108::-;29519:24;29537:5;29519:24;:::i;:::-;29514:3;29507:37;29442:108;;:::o;29556:179::-;29625:10;29646:46;29688:3;29680:6;29646:46;:::i;:::-;29724:4;29719:3;29715:14;29701:28;;29556:179;;;;:::o;29741:113::-;29811:4;29843;29838:3;29834:14;29826:22;;29741:113;;;:::o;29890:732::-;30009:3;30038:54;30086:5;30038:54;:::i;:::-;30108:86;30187:6;30182:3;30108:86;:::i;:::-;30101:93;;30218:56;30268:5;30218:56;:::i;:::-;30297:7;30328:1;30313:284;30338:6;30335:1;30332:13;30313:284;;;30414:6;30408:13;30441:63;30500:3;30485:13;30441:63;:::i;:::-;30434:70;;30527:60;30580:6;30527:60;:::i;:::-;30517:70;;30373:224;30360:1;30357;30353:9;30348:14;;30313:284;;;30317:14;30613:3;30606:10;;30014:608;;;29890:732;;;;:::o;30628:831::-;30891:4;30929:3;30918:9;30914:19;30906:27;;30943:71;31011:1;31000:9;30996:17;30987:6;30943:71;:::i;:::-;31024:80;31100:2;31089:9;31085:18;31076:6;31024:80;:::i;:::-;31151:9;31145:4;31141:20;31136:2;31125:9;31121:18;31114:48;31179:108;31282:4;31273:6;31179:108;:::i;:::-;31171:116;;31297:72;31365:2;31354:9;31350:18;31341:6;31297:72;:::i;:::-;31379:73;31447:3;31436:9;31432:19;31423:6;31379:73;:::i;:::-;30628:831;;;;;;;;:::o;31465:180::-;31513:77;31510:1;31503:88;31610:4;31607:1;31600:15;31634:4;31631:1;31624:15;31651:185;31691:1;31708:20;31726:1;31708:20;:::i;:::-;31703:25;;31742:20;31760:1;31742:20;:::i;:::-;31737:25;;31781:1;31771:35;;31786:18;;:::i;:::-;31771:35;31828:1;31825;31821:9;31816:14;;31651:185;;;;:::o;31842:220::-;31982:34;31978:1;31970:6;31966:14;31959:58;32051:3;32046:2;32038:6;32034:15;32027:28;31842:220;:::o;32068:366::-;32210:3;32231:67;32295:2;32290:3;32231:67;:::i;:::-;32224:74;;32307:93;32396:3;32307:93;:::i;:::-;32425:2;32420:3;32416:12;32409:19;;32068:366;;;:::o;32440:419::-;32606:4;32644:2;32633:9;32629:18;32621:26;;32693:9;32687:4;32683:20;32679:1;32668:9;32664:17;32657:47;32721:131;32847:4;32721:131;:::i;:::-;32713:139;;32440:419;;;:::o;32865:177::-;33005:29;33001:1;32993:6;32989:14;32982:53;32865:177;:::o;33048:366::-;33190:3;33211:67;33275:2;33270:3;33211:67;:::i;:::-;33204:74;;33287:93;33376:3;33287:93;:::i;:::-;33405:2;33400:3;33396:12;33389:19;;33048:366;;;:::o;33420:419::-;33586:4;33624:2;33613:9;33609:18;33601:26;;33673:9;33667:4;33663:20;33659:1;33648:9;33644:17;33637:47;33701:131;33827:4;33701:131;:::i;:::-;33693:139;;33420:419;;;:::o

Swarm Source

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