ETH Price: $3,101.28 (-0.98%)

Token

ᗪOᖇK Nᗴᖇᗪ GᗴᗴK (DNG)
 

Overview

Max Total Supply

1,000,000,000 DNG

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,413,385.329736378 DNG

Value
$0.00
0x9c4787ff5cfb903811a9c000a630adb69091920e
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:
DNG

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
// SPDX-License-Identifier: UNLICENSED

$DNG was born thanks to the original Dork. Nerd. Geek. aka Matt Shea.

Tg: https://t.me/theDNGcoin
Web: https://thedngcoin.com/
Twitter: https://twitter.com/TheDNGCoin
*/
pragma solidity 0.8.7;
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 DNG 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=22;
    uint256 private _initialSellTax=22;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"ᗪOᖇK Nᗴᖇᗪ GᗴᗴK";
    string private constant _symbol = unicode"DNG";
    uint256 public _maxTxAmount = 10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

            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 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"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":"_newFee","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"}]

60806040526001600660006101000a81548160ff0219169083151502179055506016600755601660085560016009556001600a556014600b556014600c556014600d556000600e556009600a6200005791906200051a565b6298968062000067919062000657565b600f556009600a6200007a91906200051a565b629896806200008a919062000657565b6010556009600a6200009d91906200051a565b620f4240620000ad919062000657565b6011556009600a620000c091906200051a565b62989680620000d0919062000657565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011657600080fd5b506000620001296200046060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d76200046060201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022791906200051a565b633b9aca0062000238919062000657565b600160006200024c6200046060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a06200046860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d36200046060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043291906200051a565b633b9aca0062000443919062000657565b604051620004529190620004a2565b60405180910390a36200070b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200049c81620006b8565b82525050565b6000602082019050620004b9600083018462000491565b92915050565b6000808291508390505b60018511156200051157808604811115620004e957620004e8620006cf565b5b6001851615620004f95780820291505b80810290506200050985620006fe565b9450620004c9565b94509492505050565b60006200052782620006b8565b91506200053483620006c2565b9250620005637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200056b565b905092915050565b6000826200057d576001905062000650565b816200058d576000905062000650565b8160018114620005a65760028114620005b157620005e7565b600191505062000650565b60ff841115620005c657620005c5620006cf565b5b8360020a915084821115620005e057620005df620006cf565b5b5062000650565b5060208310610133831016604e8410600b8410161715620006215782820a9050838111156200061b576200061a620006cf565b5b62000650565b620006308484846001620004bf565b925090508184048111156200064a5762000649620006cf565b5b81810290505b9392505050565b60006200066482620006b8565b91506200067183620006b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006ad57620006ac620006cf565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b613751806200071b6000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610447578063c876d0b914610472578063c9567bf91461049d578063d34628cc146104b4578063dd62ed3e146104dd578063ec1f3f631461051a5761014b565b8063751039fc146103475780637d1db4a51461035e5780638da5cb5b146103895780638f9a55c0146103b457806395d89b41146103df578063a9059cbb1461040a5761014b565b8063313ce56711610108578063313ce5671461024b57806331c2d847146102765780633bbac5791461029f57806351bc3c85146102dc57806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610543565b6040516101729190612c32565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612766565b610580565b6040516101af9190612c17565b60405180910390f35b3480156101c457600080fd5b506101cd61059e565b6040516101da9190612dd4565b60405180910390f35b3480156101ef57600080fd5b506101f86105a4565b6040516102059190612dd4565b60405180910390f35b34801561021a57600080fd5b5061023560048036038101906102309190612713565b6105c8565b6040516102429190612c17565b60405180910390f35b34801561025757600080fd5b506102606106a1565b60405161026d9190612e49565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906127a6565b6106aa565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612679565b6107d4565b6040516102d39190612c17565b60405180910390f35b3480156102e857600080fd5b506102f161082a565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612679565b6108c7565b6040516103279190612dd4565b60405180910390f35b34801561033c57600080fd5b50610345610910565b005b34801561035357600080fd5b5061035c610a63565b005b34801561036a57600080fd5b50610373610bae565b6040516103809190612dd4565b60405180910390f35b34801561039557600080fd5b5061039e610bb4565b6040516103ab9190612b49565b60405180910390f35b3480156103c057600080fd5b506103c9610bdd565b6040516103d69190612dd4565b60405180910390f35b3480156103eb57600080fd5b506103f4610be3565b6040516104019190612c32565b60405180910390f35b34801561041657600080fd5b50610431600480360381019061042c9190612766565b610c20565b60405161043e9190612c17565b60405180910390f35b34801561045357600080fd5b5061045c610c3e565b6040516104699190612dd4565b60405180910390f35b34801561047e57600080fd5b50610487610c44565b6040516104949190612c17565b60405180910390f35b3480156104a957600080fd5b506104b2610c57565b005b3480156104c057600080fd5b506104db60048036038101906104d691906127a6565b6111d7565b005b3480156104e957600080fd5b5061050460048036038101906104ff91906126d3565b611301565b6040516105119190612dd4565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c919061281c565b611388565b005b60606040518060400160405280601c81526020017fe197aa4fe196874b204ee197b4e19687e197aa2047e197b4e197b44b00000000815250905090565b600061059461058d611417565b848461141f565b6001905092915050565b60125481565b60006009600a6105b49190612fe4565b633b9aca006105c39190613102565b905090565b60006105d58484846115ea565b610696846105e1611417565b610691856040518060600160405280602881526020016136f460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610647611417565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120319092919063ffffffff16565b61141f565b600190509392505050565b60006009905090565b6106b2611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612d14565b60405180910390fd5b60005b81518110156107d05760006004600084848151811061076457610763613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107c89061325b565b915050610742565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086b611417565b73ffffffffffffffffffffffffffffffffffffffff161461088b57600080fd5b6000610896306108c7565b905060008111156108ab576108aa81612095565b5b600047905060008111156108c3576108c28161231d565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610918611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099c90612d14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a6b611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612d14565b60405180910390fd5b6009600a610b069190612fe4565b633b9aca00610b159190613102565b600f819055506009600a610b299190612fe4565b633b9aca00610b389190613102565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b889190612fe4565b633b9aca00610b979190613102565b604051610ba49190612dd4565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f444e470000000000000000000000000000000000000000000000000000000000815250905090565b6000610c34610c2d611417565b84846115ea565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610c5f611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612d14565b60405180910390fd5b60148054906101000a900460ff1615610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612db4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc49190612fe4565b633b9aca00610dd39190613102565b61141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4057600080fd5b505afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7891906126a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610efc57600080fd5b505afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3491906126a6565b6040518363ffffffff1660e01b8152600401610f51929190612b64565b602060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa391906126a6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c306108c7565b600080611037610bb4565b426040518863ffffffff1660e01b815260040161105996959493929190612bb6565b6060604051808303818588803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110ab9190612849565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114d929190612b8d565b602060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f91906127ef565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111df611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612d14565b60405180910390fd5b60005b81518110156112fd5760016004600084848151811061129157611290613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112f59061325b565b91505061126f565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c9611417565b73ffffffffffffffffffffffffffffffffffffffff16146113e957600080fd5b60095481111580156113fd5750600a548111155b61140657600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612d94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612c94565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115dd9190612dd4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190612d54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612c54565b60405180910390fd5b6000811161170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490612d34565b60405180910390fd5b6000611717610bb4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117855750611755610bb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d7457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61183757600080fd5b6118736064611865600b54600e541161185257600754611856565b6009545b8561238990919063ffffffff16565b61240490919063ffffffff16565b9050600660009054906101000a900460ff1615611a0257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119365750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a015743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390612cd4565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611aad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b035750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bbe57600f54821115611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490612c74565b60405180910390fd5b60105482611b5a856108c7565b611b649190612f0a565b1115611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90612d74565b60405180910390fd5b600e6000815480929190611bb89061325b565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c4757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c8b57611c886064611c7a600c54600e5411611c6757600854611c6b565b600a545b8561238990919063ffffffff16565b61240490919063ffffffff16565b90505b6000611c96306108c7565b9050601460159054906101000a900460ff16158015611d025750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1a5750601460169054906101000a900460ff165b8015611d27575060115481115b8015611d365750600d54600e54115b15611d7257611d58611d5384611d4e8460125461244e565b61244e565b612095565b60004790506000811115611d7057611d6f4761231d565b5b505b505b6000811115611e7857611dcf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e6f9190612dd4565b60405180910390a35b611eca82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f71611f2382846124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61201684866124c590919063ffffffff16565b6040516120239190612dd4565b60405180910390a350505050565b6000838311158290612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120709190612c32565b60405180910390fd5b5060008385612088919061315c565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120cd576120cc613331565b5b6040519080825280602002602001820160405280156120fb5781602001602082028036833780820191505090505b509050308160008151811061211357612112613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed91906126a6565b8160018151811061220157612200613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122cc959493929190612def565b600060405180830381600087803b1580156122e657600080fd5b505af11580156122fa573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612385573d6000803e3d6000fd5b5050565b60008083141561239c57600090506123fe565b600082846123aa9190613102565b90508284826123b99190612f60565b146123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090612cf4565b60405180910390fd5b809150505b92915050565b600061244683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061250f565b905092915050565b600081831161245d578261245f565b815b905092915050565b60008082846124769190612f0a565b9050838110156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b290612cb4565b60405180910390fd5b8091505092915050565b600061250783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612031565b905092915050565b60008083118290612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254d9190612c32565b60405180910390fd5b50600083856125659190612f60565b9050809150509392505050565b600061258561258084612e89565b612e64565b905080838252602082019050828560208602820111156125a8576125a7613365565b5b60005b858110156125d857816125be88826125e2565b8452602084019350602083019250506001810190506125ab565b5050509392505050565b6000813590506125f1816136ae565b92915050565b600081519050612606816136ae565b92915050565b600082601f83011261262157612620613360565b5b8135612631848260208601612572565b91505092915050565b600081519050612649816136c5565b92915050565b60008135905061265e816136dc565b92915050565b600081519050612673816136dc565b92915050565b60006020828403121561268f5761268e61336f565b5b600061269d848285016125e2565b91505092915050565b6000602082840312156126bc576126bb61336f565b5b60006126ca848285016125f7565b91505092915050565b600080604083850312156126ea576126e961336f565b5b60006126f8858286016125e2565b9250506020612709858286016125e2565b9150509250929050565b60008060006060848603121561272c5761272b61336f565b5b600061273a868287016125e2565b935050602061274b868287016125e2565b925050604061275c8682870161264f565b9150509250925092565b6000806040838503121561277d5761277c61336f565b5b600061278b858286016125e2565b925050602061279c8582860161264f565b9150509250929050565b6000602082840312156127bc576127bb61336f565b5b600082013567ffffffffffffffff8111156127da576127d961336a565b5b6127e68482850161260c565b91505092915050565b6000602082840312156128055761280461336f565b5b60006128138482850161263a565b91505092915050565b6000602082840312156128325761283161336f565b5b60006128408482850161264f565b91505092915050565b6000806000606084860312156128625761286161336f565b5b600061287086828701612664565b935050602061288186828701612664565b925050604061289286828701612664565b9150509250925092565b60006128a883836128b4565b60208301905092915050565b6128bd81613190565b82525050565b6128cc81613190565b82525050565b60006128dd82612ec5565b6128e78185612ee8565b93506128f283612eb5565b8060005b8381101561292357815161290a888261289c565b975061291583612edb565b9250506001810190506128f6565b5085935050505092915050565b612939816131a2565b82525050565b612948816131e5565b82525050565b600061295982612ed0565b6129638185612ef9565b93506129738185602086016131f7565b61297c81613374565b840191505092915050565b6000612994602383612ef9565b915061299f82613392565b604082019050919050565b60006129b7601983612ef9565b91506129c2826133e1565b602082019050919050565b60006129da602283612ef9565b91506129e58261340a565b604082019050919050565b60006129fd601b83612ef9565b9150612a0882613459565b602082019050919050565b6000612a20604983612ef9565b9150612a2b82613482565b606082019050919050565b6000612a43602183612ef9565b9150612a4e826134f7565b604082019050919050565b6000612a66602083612ef9565b9150612a7182613546565b602082019050919050565b6000612a89602983612ef9565b9150612a948261356f565b604082019050919050565b6000612aac602583612ef9565b9150612ab7826135be565b604082019050919050565b6000612acf601a83612ef9565b9150612ada8261360d565b602082019050919050565b6000612af2602483612ef9565b9150612afd82613636565b604082019050919050565b6000612b15601783612ef9565b9150612b2082613685565b602082019050919050565b612b34816131ce565b82525050565b612b43816131d8565b82525050565b6000602082019050612b5e60008301846128c3565b92915050565b6000604082019050612b7960008301856128c3565b612b8660208301846128c3565b9392505050565b6000604082019050612ba260008301856128c3565b612baf6020830184612b2b565b9392505050565b600060c082019050612bcb60008301896128c3565b612bd86020830188612b2b565b612be5604083018761293f565b612bf2606083018661293f565b612bff60808301856128c3565b612c0c60a0830184612b2b565b979650505050505050565b6000602082019050612c2c6000830184612930565b92915050565b60006020820190508181036000830152612c4c818461294e565b905092915050565b60006020820190508181036000830152612c6d81612987565b9050919050565b60006020820190508181036000830152612c8d816129aa565b9050919050565b60006020820190508181036000830152612cad816129cd565b9050919050565b60006020820190508181036000830152612ccd816129f0565b9050919050565b60006020820190508181036000830152612ced81612a13565b9050919050565b60006020820190508181036000830152612d0d81612a36565b9050919050565b60006020820190508181036000830152612d2d81612a59565b9050919050565b60006020820190508181036000830152612d4d81612a7c565b9050919050565b60006020820190508181036000830152612d6d81612a9f565b9050919050565b60006020820190508181036000830152612d8d81612ac2565b9050919050565b60006020820190508181036000830152612dad81612ae5565b9050919050565b60006020820190508181036000830152612dcd81612b08565b9050919050565b6000602082019050612de96000830184612b2b565b92915050565b600060a082019050612e046000830188612b2b565b612e11602083018761293f565b8181036040830152612e2381866128d2565b9050612e3260608301856128c3565b612e3f6080830184612b2b565b9695505050505050565b6000602082019050612e5e6000830184612b3a565b92915050565b6000612e6e612e7f565b9050612e7a828261322a565b919050565b6000604051905090565b600067ffffffffffffffff821115612ea457612ea3613331565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f15826131ce565b9150612f20836131ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5557612f546132a4565b5b828201905092915050565b6000612f6b826131ce565b9150612f76836131ce565b925082612f8657612f856132d3565b5b828204905092915050565b6000808291508390505b6001851115612fdb57808604811115612fb757612fb66132a4565b5b6001851615612fc65780820291505b8081029050612fd485613385565b9450612f9b565b94509492505050565b6000612fef826131ce565b9150612ffa836131d8565b92506130277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461302f565b905092915050565b60008261303f57600190506130fb565b8161304d57600090506130fb565b8160018114613063576002811461306d5761309c565b60019150506130fb565b60ff84111561307f5761307e6132a4565b5b8360020a915084821115613096576130956132a4565b5b506130fb565b5060208310610133831016604e8410600b84101617156130d15782820a9050838111156130cc576130cb6132a4565b5b6130fb565b6130de8484846001612f91565b925090508184048111156130f5576130f46132a4565b5b81810290505b9392505050565b600061310d826131ce565b9150613118836131ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613151576131506132a4565b5b828202905092915050565b6000613167826131ce565b9150613172836131ce565b925082821015613185576131846132a4565b5b828203905092915050565b600061319b826131ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131f0826131ce565b9050919050565b60005b838110156132155780820151818401526020810190506131fa565b83811115613224576000848401525b50505050565b61323382613374565b810181811067ffffffffffffffff8211171561325257613251613331565b5b80604052505050565b6000613266826131ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613299576132986132a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136b781613190565b81146136c257600080fd5b50565b6136ce816131a2565b81146136d957600080fd5b50565b6136e5816131ce565b81146136f057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcbc09f26f65346c60ad3144359eaddd7c7873644c12833909fd8ff6908b945764736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610447578063c876d0b914610472578063c9567bf91461049d578063d34628cc146104b4578063dd62ed3e146104dd578063ec1f3f631461051a5761014b565b8063751039fc146103475780637d1db4a51461035e5780638da5cb5b146103895780638f9a55c0146103b457806395d89b41146103df578063a9059cbb1461040a5761014b565b8063313ce56711610108578063313ce5671461024b57806331c2d847146102765780633bbac5791461029f57806351bc3c85146102dc57806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610543565b6040516101729190612c32565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612766565b610580565b6040516101af9190612c17565b60405180910390f35b3480156101c457600080fd5b506101cd61059e565b6040516101da9190612dd4565b60405180910390f35b3480156101ef57600080fd5b506101f86105a4565b6040516102059190612dd4565b60405180910390f35b34801561021a57600080fd5b5061023560048036038101906102309190612713565b6105c8565b6040516102429190612c17565b60405180910390f35b34801561025757600080fd5b506102606106a1565b60405161026d9190612e49565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906127a6565b6106aa565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612679565b6107d4565b6040516102d39190612c17565b60405180910390f35b3480156102e857600080fd5b506102f161082a565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612679565b6108c7565b6040516103279190612dd4565b60405180910390f35b34801561033c57600080fd5b50610345610910565b005b34801561035357600080fd5b5061035c610a63565b005b34801561036a57600080fd5b50610373610bae565b6040516103809190612dd4565b60405180910390f35b34801561039557600080fd5b5061039e610bb4565b6040516103ab9190612b49565b60405180910390f35b3480156103c057600080fd5b506103c9610bdd565b6040516103d69190612dd4565b60405180910390f35b3480156103eb57600080fd5b506103f4610be3565b6040516104019190612c32565b60405180910390f35b34801561041657600080fd5b50610431600480360381019061042c9190612766565b610c20565b60405161043e9190612c17565b60405180910390f35b34801561045357600080fd5b5061045c610c3e565b6040516104699190612dd4565b60405180910390f35b34801561047e57600080fd5b50610487610c44565b6040516104949190612c17565b60405180910390f35b3480156104a957600080fd5b506104b2610c57565b005b3480156104c057600080fd5b506104db60048036038101906104d691906127a6565b6111d7565b005b3480156104e957600080fd5b5061050460048036038101906104ff91906126d3565b611301565b6040516105119190612dd4565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c919061281c565b611388565b005b60606040518060400160405280601c81526020017fe197aa4fe196874b204ee197b4e19687e197aa2047e197b4e197b44b00000000815250905090565b600061059461058d611417565b848461141f565b6001905092915050565b60125481565b60006009600a6105b49190612fe4565b633b9aca006105c39190613102565b905090565b60006105d58484846115ea565b610696846105e1611417565b610691856040518060600160405280602881526020016136f460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610647611417565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120319092919063ffffffff16565b61141f565b600190509392505050565b60006009905090565b6106b2611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612d14565b60405180910390fd5b60005b81518110156107d05760006004600084848151811061076457610763613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107c89061325b565b915050610742565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086b611417565b73ffffffffffffffffffffffffffffffffffffffff161461088b57600080fd5b6000610896306108c7565b905060008111156108ab576108aa81612095565b5b600047905060008111156108c3576108c28161231d565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610918611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099c90612d14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a6b611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612d14565b60405180910390fd5b6009600a610b069190612fe4565b633b9aca00610b159190613102565b600f819055506009600a610b299190612fe4565b633b9aca00610b389190613102565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b889190612fe4565b633b9aca00610b979190613102565b604051610ba49190612dd4565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f444e470000000000000000000000000000000000000000000000000000000000815250905090565b6000610c34610c2d611417565b84846115ea565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610c5f611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612d14565b60405180910390fd5b60148054906101000a900460ff1615610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612db4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc49190612fe4565b633b9aca00610dd39190613102565b61141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4057600080fd5b505afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7891906126a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610efc57600080fd5b505afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3491906126a6565b6040518363ffffffff1660e01b8152600401610f51929190612b64565b602060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa391906126a6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c306108c7565b600080611037610bb4565b426040518863ffffffff1660e01b815260040161105996959493929190612bb6565b6060604051808303818588803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110ab9190612849565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114d929190612b8d565b602060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f91906127ef565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111df611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612d14565b60405180910390fd5b60005b81518110156112fd5760016004600084848151811061129157611290613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112f59061325b565b91505061126f565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c9611417565b73ffffffffffffffffffffffffffffffffffffffff16146113e957600080fd5b60095481111580156113fd5750600a548111155b61140657600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612d94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612c94565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115dd9190612dd4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190612d54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612c54565b60405180910390fd5b6000811161170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490612d34565b60405180910390fd5b6000611717610bb4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117855750611755610bb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d7457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61183757600080fd5b6118736064611865600b54600e541161185257600754611856565b6009545b8561238990919063ffffffff16565b61240490919063ffffffff16565b9050600660009054906101000a900460ff1615611a0257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119365750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a015743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390612cd4565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611aad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b035750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bbe57600f54821115611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490612c74565b60405180910390fd5b60105482611b5a856108c7565b611b649190612f0a565b1115611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90612d74565b60405180910390fd5b600e6000815480929190611bb89061325b565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c4757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c8b57611c886064611c7a600c54600e5411611c6757600854611c6b565b600a545b8561238990919063ffffffff16565b61240490919063ffffffff16565b90505b6000611c96306108c7565b9050601460159054906101000a900460ff16158015611d025750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1a5750601460169054906101000a900460ff165b8015611d27575060115481115b8015611d365750600d54600e54115b15611d7257611d58611d5384611d4e8460125461244e565b61244e565b612095565b60004790506000811115611d7057611d6f4761231d565b5b505b505b6000811115611e7857611dcf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e6f9190612dd4565b60405180910390a35b611eca82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f71611f2382846124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61201684866124c590919063ffffffff16565b6040516120239190612dd4565b60405180910390a350505050565b6000838311158290612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120709190612c32565b60405180910390fd5b5060008385612088919061315c565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120cd576120cc613331565b5b6040519080825280602002602001820160405280156120fb5781602001602082028036833780820191505090505b509050308160008151811061211357612112613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed91906126a6565b8160018151811061220157612200613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122cc959493929190612def565b600060405180830381600087803b1580156122e657600080fd5b505af11580156122fa573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612385573d6000803e3d6000fd5b5050565b60008083141561239c57600090506123fe565b600082846123aa9190613102565b90508284826123b99190612f60565b146123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090612cf4565b60405180910390fd5b809150505b92915050565b600061244683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061250f565b905092915050565b600081831161245d578261245f565b815b905092915050565b60008082846124769190612f0a565b9050838110156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b290612cb4565b60405180910390fd5b8091505092915050565b600061250783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612031565b905092915050565b60008083118290612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254d9190612c32565b60405180910390fd5b50600083856125659190612f60565b9050809150509392505050565b600061258561258084612e89565b612e64565b905080838252602082019050828560208602820111156125a8576125a7613365565b5b60005b858110156125d857816125be88826125e2565b8452602084019350602083019250506001810190506125ab565b5050509392505050565b6000813590506125f1816136ae565b92915050565b600081519050612606816136ae565b92915050565b600082601f83011261262157612620613360565b5b8135612631848260208601612572565b91505092915050565b600081519050612649816136c5565b92915050565b60008135905061265e816136dc565b92915050565b600081519050612673816136dc565b92915050565b60006020828403121561268f5761268e61336f565b5b600061269d848285016125e2565b91505092915050565b6000602082840312156126bc576126bb61336f565b5b60006126ca848285016125f7565b91505092915050565b600080604083850312156126ea576126e961336f565b5b60006126f8858286016125e2565b9250506020612709858286016125e2565b9150509250929050565b60008060006060848603121561272c5761272b61336f565b5b600061273a868287016125e2565b935050602061274b868287016125e2565b925050604061275c8682870161264f565b9150509250925092565b6000806040838503121561277d5761277c61336f565b5b600061278b858286016125e2565b925050602061279c8582860161264f565b9150509250929050565b6000602082840312156127bc576127bb61336f565b5b600082013567ffffffffffffffff8111156127da576127d961336a565b5b6127e68482850161260c565b91505092915050565b6000602082840312156128055761280461336f565b5b60006128138482850161263a565b91505092915050565b6000602082840312156128325761283161336f565b5b60006128408482850161264f565b91505092915050565b6000806000606084860312156128625761286161336f565b5b600061287086828701612664565b935050602061288186828701612664565b925050604061289286828701612664565b9150509250925092565b60006128a883836128b4565b60208301905092915050565b6128bd81613190565b82525050565b6128cc81613190565b82525050565b60006128dd82612ec5565b6128e78185612ee8565b93506128f283612eb5565b8060005b8381101561292357815161290a888261289c565b975061291583612edb565b9250506001810190506128f6565b5085935050505092915050565b612939816131a2565b82525050565b612948816131e5565b82525050565b600061295982612ed0565b6129638185612ef9565b93506129738185602086016131f7565b61297c81613374565b840191505092915050565b6000612994602383612ef9565b915061299f82613392565b604082019050919050565b60006129b7601983612ef9565b91506129c2826133e1565b602082019050919050565b60006129da602283612ef9565b91506129e58261340a565b604082019050919050565b60006129fd601b83612ef9565b9150612a0882613459565b602082019050919050565b6000612a20604983612ef9565b9150612a2b82613482565b606082019050919050565b6000612a43602183612ef9565b9150612a4e826134f7565b604082019050919050565b6000612a66602083612ef9565b9150612a7182613546565b602082019050919050565b6000612a89602983612ef9565b9150612a948261356f565b604082019050919050565b6000612aac602583612ef9565b9150612ab7826135be565b604082019050919050565b6000612acf601a83612ef9565b9150612ada8261360d565b602082019050919050565b6000612af2602483612ef9565b9150612afd82613636565b604082019050919050565b6000612b15601783612ef9565b9150612b2082613685565b602082019050919050565b612b34816131ce565b82525050565b612b43816131d8565b82525050565b6000602082019050612b5e60008301846128c3565b92915050565b6000604082019050612b7960008301856128c3565b612b8660208301846128c3565b9392505050565b6000604082019050612ba260008301856128c3565b612baf6020830184612b2b565b9392505050565b600060c082019050612bcb60008301896128c3565b612bd86020830188612b2b565b612be5604083018761293f565b612bf2606083018661293f565b612bff60808301856128c3565b612c0c60a0830184612b2b565b979650505050505050565b6000602082019050612c2c6000830184612930565b92915050565b60006020820190508181036000830152612c4c818461294e565b905092915050565b60006020820190508181036000830152612c6d81612987565b9050919050565b60006020820190508181036000830152612c8d816129aa565b9050919050565b60006020820190508181036000830152612cad816129cd565b9050919050565b60006020820190508181036000830152612ccd816129f0565b9050919050565b60006020820190508181036000830152612ced81612a13565b9050919050565b60006020820190508181036000830152612d0d81612a36565b9050919050565b60006020820190508181036000830152612d2d81612a59565b9050919050565b60006020820190508181036000830152612d4d81612a7c565b9050919050565b60006020820190508181036000830152612d6d81612a9f565b9050919050565b60006020820190508181036000830152612d8d81612ac2565b9050919050565b60006020820190508181036000830152612dad81612ae5565b9050919050565b60006020820190508181036000830152612dcd81612b08565b9050919050565b6000602082019050612de96000830184612b2b565b92915050565b600060a082019050612e046000830188612b2b565b612e11602083018761293f565b8181036040830152612e2381866128d2565b9050612e3260608301856128c3565b612e3f6080830184612b2b565b9695505050505050565b6000602082019050612e5e6000830184612b3a565b92915050565b6000612e6e612e7f565b9050612e7a828261322a565b919050565b6000604051905090565b600067ffffffffffffffff821115612ea457612ea3613331565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f15826131ce565b9150612f20836131ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5557612f546132a4565b5b828201905092915050565b6000612f6b826131ce565b9150612f76836131ce565b925082612f8657612f856132d3565b5b828204905092915050565b6000808291508390505b6001851115612fdb57808604811115612fb757612fb66132a4565b5b6001851615612fc65780820291505b8081029050612fd485613385565b9450612f9b565b94509492505050565b6000612fef826131ce565b9150612ffa836131d8565b92506130277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461302f565b905092915050565b60008261303f57600190506130fb565b8161304d57600090506130fb565b8160018114613063576002811461306d5761309c565b60019150506130fb565b60ff84111561307f5761307e6132a4565b5b8360020a915084821115613096576130956132a4565b5b506130fb565b5060208310610133831016604e8410600b84101617156130d15782820a9050838111156130cc576130cb6132a4565b5b6130fb565b6130de8484846001612f91565b925090508184048111156130f5576130f46132a4565b5b81810290505b9392505050565b600061310d826131ce565b9150613118836131ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613151576131506132a4565b5b828202905092915050565b6000613167826131ce565b9150613172836131ce565b925082821015613185576131846132a4565b5b828203905092915050565b600061319b826131ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131f0826131ce565b9050919050565b60005b838110156132155780820151818401526020810190506131fa565b83811115613224576000848401525b50505050565b61323382613374565b810181811067ffffffffffffffff8211171561325257613251613331565b5b80604052505050565b6000613266826131ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613299576132986132a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136b781613190565b81146136c257600080fd5b50565b6136ce816131a2565b81146136d957600080fd5b50565b6136e5816131ce565b81146136f057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcbc09f26f65346c60ad3144359eaddd7c7873644c12833909fd8ff6908b945764736f6c63430008070033

Deployed Bytecode Sourcemap

3659:8701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6438:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4880:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5882:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6607:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10800:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10970:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12009:348;;;;;;;;;;;;;:::i;:::-;;5985:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2740:148;;;;;;;;;;;;;:::i;:::-;;10324:196;;;;;;;;;;;;;:::i;:::-;;4692:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2526:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4753:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5696:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6112:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4816:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4044:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11061:671;;;;;;;;;;;;;:::i;:::-;;10628:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6287:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11746:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5605:83;5642:13;5675:5;;;;;;;;;;;;;;;;;5668:12;;5605:83;:::o;6438:161::-;6513:4;6530:39;6539:12;:10;:12::i;:::-;6553:7;6562:6;6530:8;:39::i;:::-;6587:4;6580:11;;6438:161;;;;:::o;4880:52::-;;;;:::o;5882:95::-;5935:7;4487:1;4543:2;:13;;;;:::i;:::-;4530:10;:26;;;;:::i;:::-;5955:14;;5882:95;:::o;6607:313::-;6705:4;6722:36;6732:6;6740:9;6751:6;6722:9;:36::i;:::-;6769:121;6778:6;6786:12;:10;:12::i;:::-;6800:89;6838:6;6800:89;;;;;;;;;;;;;;;;;:11;:19;6812:6;6800:19;;;;;;;;;;;;;;;:33;6820:12;:10;:12::i;:::-;6800:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6769:8;:121::i;:::-;6908:4;6901:11;;6607:313;;;;;:::o;5791:83::-;5832:5;4487:1;5850:16;;5791:83;:::o;10800:162::-;2663:12;:10;:12::i;:::-;2653:22;;:6;;;;;;;;;;:22;;;2645:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10873:6:::1;10868:87;10889:6;:13;10885:1;:17;10868:87;;;10940:5;10922:4;:15;10927:6;10934:1;10927:9;;;;;;;;:::i;:::-;;;;;;;;10922:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10904:3;;;;;:::i;:::-;;;;10868:87;;;;10800:162:::0;:::o;10970:83::-;11017:4;11038;:7;11043:1;11038:7;;;;;;;;;;;;;;;;;;;;;;;;;11031:14;;10970:83;;;:::o;12009:348::-;12073:10;;;;;;;;;;;12059:24;;:12;:10;:12::i;:::-;:24;;;12051:33;;;;;;12095:20;12116:24;12134:4;12116:9;:24::i;:::-;12095:45;;12167:1;12154:12;:14;12151:73;;;12182:30;12199:12;12182:16;:30::i;:::-;12151:73;12234:18;12253:21;12234:40;;12299:1;12288:10;:12;12285:65;;;12314:24;12327:10;12314:12;:24::i;:::-;12285:65;12040:317;;12009:348::o;5985:119::-;6051:7;6078:9;:18;6088:7;6078:18;;;;;;;;;;;;;;;;6071:25;;5985:119;;;:::o;2740:148::-;2663:12;:10;:12::i;:::-;2653:22;;:6;;;;;;;;;;:22;;;2645:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2847:1:::1;2810:40;;2831:6;::::0;::::1;;;;;;;;2810:40;;;;;;;;;;;;2878:1;2861:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2740:148::o:0;10324:196::-;2663:12;:10;:12::i;:::-;2653:22;;:6;;;;;;;;;;:22;;;2645:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4487:1:::1;4543:2;:13;;;;:::i;:::-;4530:10;:26;;;;:::i;:::-;10377:12;:22;;;;4487:1;4543:2;:13;;;;:::i;:::-;4530:10;:26;;;;:::i;:::-;10410:14;:22;;;;10464:5;10443:20;;:26;;;;;;;;;;;;;;;;;;10485:27;4487:1;4543:2;:13;;;;:::i;:::-;4530:10;:26;;;;:::i;:::-;10485:27;;;;;;:::i;:::-;;;;;;;;10324:196::o:0;4692:54::-;;;;:::o;2526:79::-;2564:7;2591:6;;;;;;;;;;;2584:13;;2526:79;:::o;4753:56::-;;;;:::o;5696:87::-;5735:13;5768:7;;;;;;;;;;;;;;;;;5761:14;;5696:87;:::o;6112:167::-;6190:4;6207:42;6217:12;:10;:12::i;:::-;6231:9;6242:6;6207:9;:42::i;:::-;6267:4;6260:11;;6112:167;;;;:::o;4816:57::-;;;;:::o;4044:39::-;;;;;;;;;;;;;:::o;11061:671::-;2663:12;:10;:12::i;:::-;2653:22;;:6;;;;;;;;;;:22;;;2645:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11125:11:::1;::::0;::::1;;;;;;;;11124:12;11116:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11211:42;11174:15;;:80;;;;;;;;;;;;;;;;;;11265:58;11282:4;11297:15;;;;;;;;;;;4487:1;4543:2;:13;;;;:::i;:::-;4530:10;:26;;;;:::i;:::-;11265:8;:58::i;:::-;11368:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11350:55;;;11414:4;11421:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11350:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11334:13;;:110;;;;;;;;;;;;;;;;;;11455:15;;;;;;;;;;;:31;;;11494:21;11525:4;11531:24;11549:4;11531:9;:24::i;:::-;11556:1;11558::::0;11560:7:::1;:5;:7::i;:::-;11568:15;11455:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11602:13;;;;;;;;;;;11595:29;;;11633:15;;;;;;;;;;;11651:14;11595:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11691:4;11677:11;;:18;;;;;;;;;;;;;;;;;;11720:4;11706:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11061:671::o:0;10628:164::-;2663:12;:10;:12::i;:::-;2653:22;;:6;;;;;;;;;;:22;;;2645:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10702:6:::1;10697:88;10718:5;:12;10714:1;:16;10697:88;;;10769:4;10752;:14;10757:5;10763:1;10757:8;;;;;;;;:::i;:::-;;;;;;;;10752:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10732:3;;;;;:::i;:::-;;;;10697:88;;;;10628:164:::0;:::o;6287:143::-;6368:7;6395:11;:18;6407:5;6395:18;;;;;;;;;;;;;;;:27;6414:7;6395:27;;;;;;;;;;;;;;;;6388:34;;6287:143;;;;:::o;11746:218::-;11821:10;;;;;;;;;;;11807:24;;:12;:10;:12::i;:::-;:24;;;11799:33;;;;;;11858:12;;11849:7;:21;;:47;;;;;11883:13;;11874:7;:22;;11849:47;11841:56;;;;;;11919:7;11906:12;:20;;;;11949:7;11935:13;:21;;;;11746:218;:::o;281:98::-;334:7;361:10;354:17;;281:98;:::o;6928:335::-;7038:1;7021:19;;:5;:19;;;;7013:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7119:1;7100:21;;:7;:21;;;;7092:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7201:6;7171:11;:18;7183:5;7171:18;;;;;;;;;;;;;;;:27;7190:7;7171:27;;;;;;;;;;;;;;;:36;;;;7239:7;7223:32;;7232:5;7223:32;;;7248:6;7223:32;;;;;;:::i;:::-;;;;;;;;6928:335;;;:::o;7271:2446::-;7375:1;7359:18;;:4;:18;;;;7351:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7452:1;7438:16;;:2;:16;;;;7430:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7522:1;7513:6;:10;7505:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7580:17;7622:7;:5;:7::i;:::-;7614:15;;:4;:15;;;;:32;;;;;7639:7;:5;:7::i;:::-;7633:13;;:2;:13;;;;7614:32;7610:1751;;;7672:4;:10;7677:4;7672:10;;;;;;;;;;;;;;;;;;;;;;;;;7671:11;:24;;;;;7687:4;:8;7692:2;7687:8;;;;;;;;;;;;;;;;;;;;;;;;;7686:9;7671:24;7663:33;;;;;;7723:76;7795:3;7723:67;7745:15;;7735:9;;:25;7734:55;;7775:14;;7734:55;;;7762:12;;7734:55;7723:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7711:88;;7820:20;;;;;;;;;;;7816:508;;;7881:15;;;;;;;;;;;7867:30;;:2;:30;;;;:62;;;;;7915:13;;;;;;;;;;;7901:28;;:2;:28;;;;7867:62;7863:444;;;8065:12;7992:28;:39;8021:9;7992:39;;;;;;;;;;;;;;;;:85;7956:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8273:12;8231:28;:39;8260:9;8231:39;;;;;;;;;;;;;;;:54;;;;7863:444;7816:508;8352:13;;;;;;;;;;;8344:21;;:4;:21;;;:55;;;;;8383:15;;;;;;;;;;;8369:30;;:2;:30;;;;8344:55;:83;;;;;8405:18;:22;8424:2;8405:22;;;;;;;;;;;;;;;;;;;;;;;;;8403:24;8344:83;8340:313;;;8467:12;;8457:6;:22;;8449:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8562:14;;8552:6;8536:13;8546:2;8536:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8528:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8626:9;;:11;;;;;;;;;:::i;:::-;;;;;;8340:313;8678:13;;;;;;;;;;;8672:19;;:2;:19;;;:43;;;;;8710:4;8695:20;;:4;:20;;;;8672:43;8669:174;;;8748:79;8823:3;8748:70;8770:16;;8760:9;;:26;8759:58;;8802:15;;8759:58;;;8788:13;;8759:58;8748:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8736:91;;8669:174;8859:28;8890:24;8908:4;8890:9;:24::i;:::-;8859:55;;8934:6;;;;;;;;;;;8933:7;:32;;;;;8952:13;;;;;;;;;;;8944:21;;:2;:21;;;8933:32;:47;;;;;8969:11;;;;;;;;;;;8933:47;:89;;;;;9005:17;;8984:20;:38;8933:89;:121;;;;;9036:18;;9026:9;;:28;8933:121;8929:421;;;9075:67;9092:49;9096:6;9103:37;9107:20;9128:11;;9103:3;:37::i;:::-;9092:3;:49::i;:::-;9075:16;:67::i;:::-;9161:26;9190:21;9161:50;;9254:1;9233:18;:22;9230:105;;;9280:35;9293:21;9280:12;:35::i;:::-;9230:105;9056:294;8929:421;7648:1713;7610:1751;9386:1;9376:9;:11;9373:161;;;9426:39;9455:9;9426;:24;9444:4;9426:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9401:9;:24;9419:4;9401:24;;;;;;;;;;;;;;;:64;;;;9506:4;9483:39;;9492:4;9483:39;;;9512:9;9483:39;;;;;;:::i;:::-;;;;;;;;9373:161;9560:27;9580:6;9560:9;:15;9570:4;9560:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9544:9;:15;9554:4;9544:15;;;;;;;;;;;;;;;:43;;;;9612:40;9630:21;9641:9;9630:6;:10;;:21;;;;:::i;:::-;9612:9;:13;9622:2;9612:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9598:9;:13;9608:2;9598:13;;;;;;;;;;;;;;;:54;;;;9683:2;9668:41;;9677:4;9668:41;;;9687:21;9698:9;9687:6;:10;;:21;;;;:::i;:::-;9668:41;;;;;;:::i;:::-;;;;;;;;7340:2377;7271:2446;;;:::o;1418:190::-;1504:7;1537:1;1532;:6;;1540:12;1524:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1564:9;1580:1;1576;:5;;;;:::i;:::-;1564:17;;1599:1;1592:8;;;1418:190;;;;;:::o;9833:483::-;5223:4;5214:6;;:13;;;;;;;;;;;;;;;;;;9911:21:::1;9949:1;9935:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9911:40;;9980:4;9962;9967:1;9962:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10006:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9996:4;10001:1;9996:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10039:62;10056:4;10071:15;;;;;;;;;;;10089:11;10039:8;:62::i;:::-;10112:15;;;;;;;;;;;:66;;;10193:11;10219:1;10235:4;10262;10282:15;10112:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9900:416;5259:5:::0;5250:6;;:14;;;;;;;;;;;;;;;;;;9833:483;:::o;10528:92::-;10585:10;;;;;;;;;;;:19;;:27;10605:6;10585:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10528:92;:::o;1616:246::-;1674:7;1703:1;1698;:6;1694:47;;;1728:1;1721:8;;;;1694:47;1751:9;1767:1;1763;:5;;;;:::i;:::-;1751:17;;1796:1;1791;1787;:5;;;;:::i;:::-;:10;1779:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1853:1;1846:8;;;1616:246;;;;;:::o;1870:132::-;1928:7;1955:39;1959:1;1962;1955:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1948:46;;1870:132;;;;:::o;9727:98::-;9784:7;9811:1;9809;:3;9808:9;;9816:1;9808:9;;;9814:1;9808:9;9801:16;;9727:98;;;;:::o;1087:179::-;1145:7;1165:9;1181:1;1177;:5;;;;:::i;:::-;1165:17;;1206:1;1201;:6;;1193:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1257:1;1250:8;;;1087:179;;;;:::o;1274:136::-;1332:7;1359:43;1363:1;1366;1359:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1352:50;;1274:136;;;;:::o;2010:189::-;2096:7;2128:1;2124;:5;2131:12;2116:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2155:9;2171:1;2167;:5;;;;:::i;:::-;2155:17;;2190:1;2183:8;;;2010:189;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:663::-;5472:6;5480;5488;5537:2;5525:9;5516:7;5512:23;5508:32;5505:119;;;5543:79;;:::i;:::-;5505:119;5663:1;5688:64;5744:7;5735:6;5724:9;5720:22;5688:64;:::i;:::-;5678:74;;5634:128;5801:2;5827:64;5883:7;5874:6;5863:9;5859:22;5827:64;:::i;:::-;5817:74;;5772:129;5940:2;5966:64;6022:7;6013:6;6002:9;5998:22;5966:64;:::i;:::-;5956:74;;5911:129;5384:663;;;;;:::o;6053:179::-;6122:10;6143:46;6185:3;6177:6;6143:46;:::i;:::-;6221:4;6216:3;6212:14;6198:28;;6053:179;;;;:::o;6238:108::-;6315:24;6333:5;6315:24;:::i;:::-;6310:3;6303:37;6238:108;;:::o;6352:118::-;6439:24;6457:5;6439:24;:::i;:::-;6434:3;6427:37;6352:118;;:::o;6506:732::-;6625:3;6654:54;6702:5;6654:54;:::i;:::-;6724:86;6803:6;6798:3;6724:86;:::i;:::-;6717:93;;6834:56;6884:5;6834:56;:::i;:::-;6913:7;6944:1;6929:284;6954:6;6951:1;6948:13;6929:284;;;7030:6;7024:13;7057:63;7116:3;7101:13;7057:63;:::i;:::-;7050:70;;7143:60;7196:6;7143:60;:::i;:::-;7133:70;;6989:224;6976:1;6973;6969:9;6964:14;;6929:284;;;6933:14;7229:3;7222:10;;6630:608;;;6506:732;;;;:::o;7244:109::-;7325:21;7340:5;7325:21;:::i;:::-;7320:3;7313:34;7244:109;;:::o;7359:147::-;7454:45;7493:5;7454:45;:::i;:::-;7449:3;7442:58;7359:147;;:::o;7512:364::-;7600:3;7628:39;7661:5;7628:39;:::i;:::-;7683:71;7747:6;7742:3;7683:71;:::i;:::-;7676:78;;7763:52;7808:6;7803:3;7796:4;7789:5;7785:16;7763:52;:::i;:::-;7840:29;7862:6;7840:29;:::i;:::-;7835:3;7831:39;7824:46;;7604:272;7512:364;;;;:::o;7882:366::-;8024:3;8045:67;8109:2;8104:3;8045:67;:::i;:::-;8038:74;;8121:93;8210:3;8121:93;:::i;:::-;8239:2;8234:3;8230:12;8223:19;;7882:366;;;:::o;8254:::-;8396:3;8417:67;8481:2;8476:3;8417:67;:::i;:::-;8410:74;;8493:93;8582:3;8493:93;:::i;:::-;8611:2;8606:3;8602:12;8595:19;;8254:366;;;:::o;8626:::-;8768:3;8789:67;8853:2;8848:3;8789:67;:::i;:::-;8782:74;;8865:93;8954:3;8865:93;:::i;:::-;8983:2;8978:3;8974:12;8967:19;;8626:366;;;:::o;8998:::-;9140:3;9161:67;9225:2;9220:3;9161:67;:::i;:::-;9154:74;;9237:93;9326:3;9237:93;:::i;:::-;9355:2;9350:3;9346:12;9339:19;;8998:366;;;:::o;9370:::-;9512:3;9533:67;9597:2;9592:3;9533:67;:::i;:::-;9526:74;;9609:93;9698:3;9609:93;:::i;:::-;9727:2;9722:3;9718:12;9711:19;;9370:366;;;:::o;9742:::-;9884:3;9905:67;9969:2;9964:3;9905:67;:::i;:::-;9898:74;;9981:93;10070:3;9981:93;:::i;:::-;10099:2;10094:3;10090:12;10083:19;;9742:366;;;:::o;10114:::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:::-;10628:3;10649:67;10713:2;10708:3;10649:67;:::i;:::-;10642:74;;10725:93;10814:3;10725:93;:::i;:::-;10843:2;10838:3;10834:12;10827:19;;10486:366;;;:::o;10858:::-;11000:3;11021:67;11085:2;11080:3;11021:67;:::i;:::-;11014:74;;11097:93;11186:3;11097:93;:::i;:::-;11215:2;11210:3;11206:12;11199:19;;10858:366;;;:::o;11230:::-;11372:3;11393:67;11457:2;11452:3;11393:67;:::i;:::-;11386:74;;11469:93;11558:3;11469:93;:::i;:::-;11587:2;11582:3;11578:12;11571:19;;11230:366;;;:::o;11602:::-;11744:3;11765:67;11829:2;11824:3;11765:67;:::i;:::-;11758:74;;11841:93;11930:3;11841:93;:::i;:::-;11959:2;11954:3;11950:12;11943:19;;11602:366;;;:::o;11974:::-;12116:3;12137:67;12201:2;12196:3;12137:67;:::i;:::-;12130:74;;12213:93;12302:3;12213:93;:::i;:::-;12331:2;12326:3;12322:12;12315:19;;11974:366;;;:::o;12346:118::-;12433:24;12451:5;12433:24;:::i;:::-;12428:3;12421:37;12346:118;;:::o;12470:112::-;12553:22;12569:5;12553:22;:::i;:::-;12548:3;12541:35;12470:112;;:::o;12588:222::-;12681:4;12719:2;12708:9;12704:18;12696:26;;12732:71;12800:1;12789:9;12785:17;12776:6;12732:71;:::i;:::-;12588:222;;;;:::o;12816:332::-;12937:4;12975:2;12964:9;12960:18;12952:26;;12988:71;13056:1;13045:9;13041:17;13032:6;12988:71;:::i;:::-;13069:72;13137:2;13126:9;13122:18;13113:6;13069:72;:::i;:::-;12816:332;;;;;:::o;13154:::-;13275:4;13313:2;13302:9;13298:18;13290:26;;13326:71;13394:1;13383:9;13379:17;13370:6;13326:71;:::i;:::-;13407:72;13475:2;13464:9;13460:18;13451:6;13407:72;:::i;:::-;13154:332;;;;;:::o;13492:807::-;13741:4;13779:3;13768:9;13764:19;13756:27;;13793:71;13861:1;13850:9;13846:17;13837:6;13793:71;:::i;:::-;13874:72;13942:2;13931:9;13927:18;13918:6;13874:72;:::i;:::-;13956:80;14032:2;14021:9;14017:18;14008:6;13956:80;:::i;:::-;14046;14122:2;14111:9;14107:18;14098:6;14046:80;:::i;:::-;14136:73;14204:3;14193:9;14189:19;14180:6;14136:73;:::i;:::-;14219;14287:3;14276:9;14272:19;14263:6;14219:73;:::i;:::-;13492:807;;;;;;;;;:::o;14305:210::-;14392:4;14430:2;14419:9;14415:18;14407:26;;14443:65;14505:1;14494:9;14490:17;14481:6;14443:65;:::i;:::-;14305:210;;;;:::o;14521:313::-;14634:4;14672:2;14661:9;14657:18;14649:26;;14721:9;14715:4;14711:20;14707:1;14696:9;14692:17;14685:47;14749:78;14822:4;14813:6;14749:78;:::i;:::-;14741:86;;14521:313;;;;:::o;14840:419::-;15006:4;15044:2;15033:9;15029:18;15021:26;;15093:9;15087:4;15083:20;15079:1;15068:9;15064:17;15057:47;15121:131;15247:4;15121:131;:::i;:::-;15113:139;;14840:419;;;:::o;15265:::-;15431:4;15469:2;15458:9;15454:18;15446:26;;15518:9;15512:4;15508:20;15504:1;15493:9;15489:17;15482:47;15546:131;15672:4;15546:131;:::i;:::-;15538:139;;15265:419;;;:::o;15690:::-;15856:4;15894:2;15883:9;15879:18;15871:26;;15943:9;15937:4;15933:20;15929:1;15918:9;15914:17;15907:47;15971:131;16097:4;15971:131;:::i;:::-;15963:139;;15690:419;;;:::o;16115:::-;16281:4;16319:2;16308:9;16304:18;16296:26;;16368:9;16362:4;16358:20;16354:1;16343:9;16339:17;16332:47;16396:131;16522:4;16396:131;:::i;:::-;16388:139;;16115:419;;;:::o;16540:::-;16706:4;16744:2;16733:9;16729:18;16721:26;;16793:9;16787:4;16783:20;16779:1;16768:9;16764:17;16757:47;16821:131;16947:4;16821:131;:::i;:::-;16813:139;;16540:419;;;:::o;16965:::-;17131:4;17169:2;17158:9;17154:18;17146:26;;17218:9;17212:4;17208:20;17204:1;17193:9;17189:17;17182:47;17246:131;17372:4;17246:131;:::i;:::-;17238:139;;16965:419;;;:::o;17390:::-;17556:4;17594:2;17583:9;17579:18;17571:26;;17643:9;17637:4;17633:20;17629:1;17618:9;17614:17;17607:47;17671:131;17797:4;17671:131;:::i;:::-;17663:139;;17390:419;;;:::o;17815:::-;17981:4;18019:2;18008:9;18004:18;17996:26;;18068:9;18062:4;18058:20;18054:1;18043:9;18039:17;18032:47;18096:131;18222:4;18096:131;:::i;:::-;18088:139;;17815:419;;;:::o;18240:::-;18406:4;18444:2;18433:9;18429:18;18421:26;;18493:9;18487:4;18483:20;18479:1;18468:9;18464:17;18457:47;18521:131;18647:4;18521:131;:::i;:::-;18513:139;;18240:419;;;:::o;18665:::-;18831:4;18869:2;18858:9;18854:18;18846:26;;18918:9;18912:4;18908:20;18904:1;18893:9;18889:17;18882:47;18946:131;19072:4;18946:131;:::i;:::-;18938:139;;18665:419;;;:::o;19090:::-;19256:4;19294:2;19283:9;19279:18;19271:26;;19343:9;19337:4;19333:20;19329:1;19318:9;19314:17;19307:47;19371:131;19497:4;19371:131;:::i;:::-;19363:139;;19090:419;;;:::o;19515:::-;19681:4;19719:2;19708:9;19704:18;19696:26;;19768:9;19762:4;19758:20;19754:1;19743:9;19739:17;19732:47;19796:131;19922:4;19796:131;:::i;:::-;19788:139;;19515:419;;;:::o;19940:222::-;20033:4;20071:2;20060:9;20056:18;20048:26;;20084:71;20152:1;20141:9;20137:17;20128:6;20084:71;:::i;:::-;19940:222;;;;:::o;20168:831::-;20431:4;20469:3;20458:9;20454:19;20446:27;;20483:71;20551:1;20540:9;20536:17;20527:6;20483:71;:::i;:::-;20564:80;20640:2;20629:9;20625:18;20616:6;20564:80;:::i;:::-;20691:9;20685:4;20681:20;20676:2;20665:9;20661:18;20654:48;20719:108;20822:4;20813:6;20719:108;:::i;:::-;20711:116;;20837:72;20905:2;20894:9;20890:18;20881:6;20837:72;:::i;:::-;20919:73;20987:3;20976:9;20972:19;20963:6;20919:73;:::i;:::-;20168:831;;;;;;;;:::o;21005:214::-;21094:4;21132:2;21121:9;21117:18;21109:26;;21145:67;21209:1;21198:9;21194:17;21185:6;21145:67;:::i;:::-;21005:214;;;;:::o;21225:129::-;21259:6;21286:20;;:::i;:::-;21276:30;;21315:33;21343:4;21335:6;21315:33;:::i;:::-;21225:129;;;:::o;21360:75::-;21393:6;21426:2;21420:9;21410:19;;21360:75;:::o;21441:311::-;21518:4;21608:18;21600:6;21597:30;21594:56;;;21630:18;;:::i;:::-;21594:56;21680:4;21672:6;21668:17;21660:25;;21740:4;21734;21730:15;21722:23;;21441:311;;;:::o;21758:132::-;21825:4;21848:3;21840:11;;21878:4;21873:3;21869:14;21861:22;;21758:132;;;:::o;21896:114::-;21963:6;21997:5;21991:12;21981:22;;21896:114;;;:::o;22016:99::-;22068:6;22102:5;22096:12;22086:22;;22016:99;;;:::o;22121:113::-;22191:4;22223;22218:3;22214:14;22206:22;;22121:113;;;:::o;22240:184::-;22339:11;22373:6;22368:3;22361:19;22413:4;22408:3;22404:14;22389:29;;22240:184;;;;:::o;22430:169::-;22514:11;22548:6;22543:3;22536:19;22588:4;22583:3;22579:14;22564:29;;22430:169;;;;:::o;22605:305::-;22645:3;22664:20;22682:1;22664:20;:::i;:::-;22659:25;;22698:20;22716:1;22698:20;:::i;:::-;22693:25;;22852:1;22784:66;22780:74;22777:1;22774:81;22771:107;;;22858:18;;:::i;:::-;22771:107;22902:1;22899;22895:9;22888:16;;22605:305;;;;:::o;22916:185::-;22956:1;22973:20;22991:1;22973:20;:::i;:::-;22968:25;;23007:20;23025:1;23007:20;:::i;:::-;23002:25;;23046:1;23036:35;;23051:18;;:::i;:::-;23036:35;23093:1;23090;23086:9;23081:14;;22916:185;;;;:::o;23107:848::-;23168:5;23175:4;23199:6;23190:15;;23223:5;23214:14;;23237:712;23258:1;23248:8;23245:15;23237:712;;;23353:4;23348:3;23344:14;23338:4;23335:24;23332:50;;;23362:18;;:::i;:::-;23332:50;23412:1;23402:8;23398:16;23395:451;;;23827:4;23820:5;23816:16;23807:25;;23395:451;23877:4;23871;23867:15;23859:23;;23907:32;23930:8;23907:32;:::i;:::-;23895:44;;23237:712;;;23107:848;;;;;;;:::o;23961:281::-;24019:5;24043:23;24061:4;24043:23;:::i;:::-;24035:31;;24087:25;24103:8;24087:25;:::i;:::-;24075:37;;24131:104;24168:66;24158:8;24152:4;24131:104;:::i;:::-;24122:113;;23961:281;;;;:::o;24248:1073::-;24302:5;24493:8;24483:40;;24514:1;24505:10;;24516:5;;24483:40;24542:4;24532:36;;24559:1;24550:10;;24561:5;;24532:36;24628:4;24676:1;24671:27;;;;24712:1;24707:191;;;;24621:277;;24671:27;24689:1;24680:10;;24691:5;;;24707:191;24752:3;24742:8;24739:17;24736:43;;;24759:18;;:::i;:::-;24736:43;24808:8;24805:1;24801:16;24792:25;;24843:3;24836:5;24833:14;24830:40;;;24850:18;;:::i;:::-;24830:40;24883:5;;;24621:277;;25007:2;24997:8;24994:16;24988:3;24982:4;24979:13;24975:36;24957:2;24947:8;24944:16;24939:2;24933:4;24930:12;24926:35;24910:111;24907:246;;;25063:8;25057:4;25053:19;25044:28;;25098:3;25091:5;25088:14;25085:40;;;25105:18;;:::i;:::-;25085:40;25138:5;;24907:246;25178:42;25216:3;25206:8;25200:4;25197:1;25178:42;:::i;:::-;25163:57;;;;25252:4;25247:3;25243:14;25236:5;25233:25;25230:51;;;25261:18;;:::i;:::-;25230:51;25310:4;25303:5;25299:16;25290:25;;24248:1073;;;;;;:::o;25327:348::-;25367:7;25390:20;25408:1;25390:20;:::i;:::-;25385:25;;25424:20;25442:1;25424:20;:::i;:::-;25419:25;;25612:1;25544:66;25540:74;25537:1;25534:81;25529:1;25522:9;25515:17;25511:105;25508:131;;;25619:18;;:::i;:::-;25508:131;25667:1;25664;25660:9;25649:20;;25327:348;;;;:::o;25681:191::-;25721:4;25741:20;25759:1;25741:20;:::i;:::-;25736:25;;25775:20;25793:1;25775:20;:::i;:::-;25770:25;;25814:1;25811;25808:8;25805:34;;;25819:18;;:::i;:::-;25805:34;25864:1;25861;25857:9;25849:17;;25681:191;;;;:::o;25878:96::-;25915:7;25944:24;25962:5;25944:24;:::i;:::-;25933:35;;25878:96;;;:::o;25980:90::-;26014:7;26057:5;26050:13;26043:21;26032:32;;25980:90;;;:::o;26076:126::-;26113:7;26153:42;26146:5;26142:54;26131:65;;26076:126;;;:::o;26208:77::-;26245:7;26274:5;26263:16;;26208:77;;;:::o;26291:86::-;26326:7;26366:4;26359:5;26355:16;26344:27;;26291:86;;;:::o;26383:121::-;26441:9;26474:24;26492:5;26474:24;:::i;:::-;26461:37;;26383:121;;;:::o;26510:307::-;26578:1;26588:113;26602:6;26599:1;26596:13;26588:113;;;26687:1;26682:3;26678:11;26672:18;26668:1;26663:3;26659:11;26652:39;26624:2;26621:1;26617:10;26612:15;;26588:113;;;26719:6;26716:1;26713:13;26710:101;;;26799:1;26790:6;26785:3;26781:16;26774:27;26710:101;26559:258;26510:307;;;:::o;26823:281::-;26906:27;26928:4;26906:27;:::i;:::-;26898:6;26894:40;27036:6;27024:10;27021:22;27000:18;26988:10;26985:34;26982:62;26979:88;;;27047:18;;:::i;:::-;26979:88;27087:10;27083:2;27076:22;26866:238;26823:281;;:::o;27110:233::-;27149:3;27172:24;27190:5;27172:24;:::i;:::-;27163:33;;27218:66;27211:5;27208:77;27205:103;;;27288:18;;:::i;:::-;27205:103;27335:1;27328:5;27324:13;27317:20;;27110:233;;;:::o;27349:180::-;27397:77;27394:1;27387:88;27494:4;27491:1;27484:15;27518:4;27515:1;27508:15;27535:180;27583:77;27580:1;27573:88;27680:4;27677:1;27670:15;27704:4;27701:1;27694:15;27721:180;27769:77;27766:1;27759:88;27866:4;27863:1;27856:15;27890:4;27887:1;27880:15;27907:180;27955:77;27952:1;27945:88;28052:4;28049:1;28042:15;28076:4;28073:1;28066:15;28093:117;28202:1;28199;28192:12;28216:117;28325:1;28322;28315:12;28339:117;28448:1;28445;28438:12;28462:117;28571:1;28568;28561:12;28585:102;28626:6;28677:2;28673:7;28668:2;28661:5;28657:14;28653:28;28643:38;;28585:102;;;:::o;28693:::-;28735:8;28782:5;28779:1;28775:13;28754:34;;28693:102;;;:::o;28801:222::-;28941:34;28937:1;28929:6;28925:14;28918:58;29010:5;29005:2;28997:6;28993:15;28986:30;28801:222;:::o;29029:175::-;29169:27;29165:1;29157:6;29153:14;29146:51;29029:175;:::o;29210:221::-;29350:34;29346:1;29338:6;29334:14;29327:58;29419:4;29414:2;29406:6;29402:15;29395:29;29210:221;:::o;29437:177::-;29577:29;29573:1;29565:6;29561:14;29554:53;29437:177;:::o;29620:297::-;29760:34;29756:1;29748:6;29744:14;29737:58;29829:34;29824:2;29816:6;29812:15;29805:59;29898:11;29893:2;29885:6;29881:15;29874:36;29620:297;:::o;29923:220::-;30063:34;30059:1;30051:6;30047:14;30040:58;30132:3;30127:2;30119:6;30115:15;30108:28;29923:220;:::o;30149:182::-;30289:34;30285:1;30277:6;30273:14;30266:58;30149:182;:::o;30337:228::-;30477:34;30473:1;30465:6;30461:14;30454:58;30546:11;30541:2;30533:6;30529:15;30522:36;30337:228;:::o;30571:224::-;30711:34;30707:1;30699:6;30695:14;30688:58;30780:7;30775:2;30767:6;30763:15;30756:32;30571:224;:::o;30801:176::-;30941:28;30937:1;30929:6;30925:14;30918:52;30801:176;:::o;30983:223::-;31123:34;31119:1;31111:6;31107:14;31100:58;31192:6;31187:2;31179:6;31175:15;31168:31;30983:223;:::o;31212:173::-;31352:25;31348:1;31340:6;31336:14;31329:49;31212:173;:::o;31391:122::-;31464:24;31482:5;31464:24;:::i;:::-;31457:5;31454:35;31444:63;;31503:1;31500;31493:12;31444:63;31391:122;:::o;31519:116::-;31589:21;31604:5;31589:21;:::i;:::-;31582:5;31579:32;31569:60;;31625:1;31622;31615:12;31569:60;31519:116;:::o;31641:122::-;31714:24;31732:5;31714:24;:::i;:::-;31707:5;31704:35;31694:63;;31753:1;31750;31743:12;31694:63;31641:122;:::o

Swarm Source

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