ETH Price: $2,442.50 (-1.10%)

Token

Dragon of Darkness Flame (Hiei 火炎)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 Hiei 火炎

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,310,000,000,000,000 Hiei 火炎

Value
$0.00
0x9a6300293d2a562bc53c1894b66e88ac008ae49e
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:
HIEIsmartcontract

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-11
*/

// SPDX-License-Identifier: NONE

/**
Token Name: Dragon of Darkness Flame
Ticker: Hiei 火炎
Supply: 1,000,000,000,000,000,000 Quintillion
Max Buy at Launch:   5,000,000,000,000,000 Quadrillion
Max Wallet before Renounced: 4%

Tokenomics: 
1% Auto Burn
4% Marketing, Buyback, Social Info fast track, CMC & CG.

*/
pragma solidity ^0.8.4;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

contract HIEIsmartcontract is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "Dragon of Darkness Flame";
    string private constant _symbol = "Hiei \u706b\u708e";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoBurnFee = 100;
    uint256 public buyMarketingFee = 400;
    uint256 public totalBuyFees = buyAutoBurnFee + buyMarketingFee;

    uint256 public sellAutoBurnFee = 100;
    uint256 public sellMarketingFee = 400;
    uint256 public totalSellFees = sellAutoBurnFee + sellMarketingFee;

    uint256 public tokensForAutoBurn;
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private constant _tTotal = 1000000000000000000 * 10**9;
    uint256 private maxWalletAmount = 5000000000000001 * 10**9;
    uint256 private maxTxAmount = 5000000000000001 * 10**9;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        require(!tradingOpen,"trading is already open");
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0xD30659FEB5Af3111F4B9Db49d46E5a90EA4197B6); 
        _tOwned[owner()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        uint256 _buyAutoBurnFee = 100;
        uint256 _buyMarketingFee = 400;
        uint256 _sellAutoBurnFee = 100;
        uint256 _sellMarketingFee = 400;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyMarketingFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoBurnFee + sellMarketingFee;
        swapEnabled = true;
        maxTxAmount = 5000000000000001 * 10**9;
        maxWalletAmount = 5000000000000001 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _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 _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

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

        uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;        
        }
        _tOwned[DEAD] += tokensForAutoBurn;
        emit Transfer(from, DEAD, tokensForAutoBurn);
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);
        uint256 feeAmount = tokensForAutoBurn + tokensForMarketing;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function updateBuyFees(uint256 _buyAutoBurnFee, uint256 _buyMarketingFee) external onlyOwner {
        buyAutoBurnFee = _buyAutoBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyMarketingFee;
        require(totalBuyFees <= 20, "Must keep fees at 20% or less");
    }
    
    function updateSellFees(uint256 _sellAutoBurnFee, uint256 _sellMarketingFee) external onlyOwner {
        sellAutoBurnFee = _sellAutoBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalBuyFees = sellAutoBurnFee + sellMarketingFee;
        require(totalBuyFees <= 20, "Must keep fees at 20% or less");
    }

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

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":[{"internalType":"uint256","name":"_buyAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052606460045561019060055560055460045462000021919062000a2b565b600655606460075561019060085560085460075462000041919062000a2b565b600955612710600c60006101000a81548161ffff021916908361ffff1602179055506000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506a0422ca8b0a00a4609aca00600f556a0422ca8b0a00a4609aca00601055348015620000c457600080fd5b50620000e5620000d9620008fd60201b60201c565b6200090560201b60201c565b600e60149054906101000a900460ff161562000138576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012f9062000ae9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000204919062000b75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000292919062000b75565b6040518363ffffffff1660e01b8152600401620002b192919062000bb8565b6020604051808303816000875af1158015620002d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f7919062000b75565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000383573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a9919062000b75565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000437919062000b75565b6040518363ffffffff1660e01b81526004016200045692919062000bb8565b602060405180830381865afa15801562000474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049a919062000b75565b600c60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d30659feb5af3111f4b9db49d46e5a90ea4197b6601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce80000006001600062000550620009c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005a4620009c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000606490506000610190905060006064905060006101909050836004819055508260058190555060055460045462000701919062000a2b565b600681905550816007819055508060088190555060085460075462000727919062000a2b565b6009819055506001600e60166101000a81548160ff0219169083151502179055506a0422ca8b0a00a4609aca006010819055506a0422ca8b0a00a4609aca00600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200082892919062000bf6565b6020604051808303816000875af115801562000848573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200086e919062000c60565b506200087f620009c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620008ea919062000c92565b60405180910390a3505050505062000caf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a3882620009f2565b915062000a4583620009f2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a7d5762000a7c620009fc565b5b828201905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000ad160178362000a88565b915062000ade8262000a99565b602082019050919050565b6000602082019050818103600083015262000b048162000ac2565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b3d8262000b10565b9050919050565b62000b4f8162000b30565b811462000b5b57600080fd5b50565b60008151905062000b6f8162000b44565b92915050565b60006020828403121562000b8e5762000b8d62000b0b565b5b600062000b9e8482850162000b5e565b91505092915050565b62000bb28162000b30565b82525050565b600060408201905062000bcf600083018562000ba7565b62000bde602083018462000ba7565b9392505050565b62000bf081620009f2565b82525050565b600060408201905062000c0d600083018562000ba7565b62000c1c602083018462000be5565b9392505050565b60008115159050919050565b62000c3a8162000c23565b811462000c4657600080fd5b50565b60008151905062000c5a8162000c2f565b92915050565b60006020828403121562000c795762000c7862000b0b565b5b600062000c898482850162000c49565b91505092915050565b600060208201905062000ca9600083018462000be5565b92915050565b612e828062000cbf6000396000f3fe6080604052600436106101bb5760003560e01c80637bce5a04116100ec578063c99f2fed1161008a578063dd62ed3e11610064578063dd62ed3e146105fd578063ea2f0b371461063a578063ebece9c914610663578063f2fde38b1461068c576101c2565b8063c99f2fed1461057c578063cc70acee146105a7578063d0a39814146105d2576101c2565b806395d89b41116100c657806395d89b41146104be578063a8b08982146104e9578063a9059cbb14610514578063b9e9370014610551576101c2565b80637bce5a041461043d5780638da5cb5b146104685780639213691314610493576101c2565b806323b872dd1161015957806347afcbfe1161013357806347afcbfe1461039557806366ca9b83146103c057806370a08231146103e9578063715018a614610426576101c2565b806323b872dd14610304578063313ce56714610341578063437823ec1461036c576101c2565b8063095ea7b311610195578063095ea7b31461024657806318160ddd146102835780631d6167ac146102ae5780631f3fed8f146102d9576101c2565b806302dbd8f8146101c757806303fd2a45146101f057806306fdde031461021b576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101ee60048036038101906101e99190611f60565b6106b5565b005b3480156101fc57600080fd5b5061020561079f565b6040516102129190611fe1565b60405180910390f35b34801561022757600080fd5b506102306107a5565b60405161023d9190612095565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906120e3565b6107e2565b60405161027a919061213e565b60405180910390f35b34801561028f57600080fd5b50610298610800565b6040516102a59190612168565b60405180910390f35b3480156102ba57600080fd5b506102c3610814565b6040516102d091906121a0565b60405180910390f35b3480156102e557600080fd5b506102ee610828565b6040516102fb9190612168565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906121bb565b61082e565b604051610338919061213e565b60405180910390f35b34801561034d57600080fd5b5061035661092f565b604051610363919061222a565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e9190612245565b610938565b005b3480156103a157600080fd5b506103aa610a0f565b6040516103b79190612168565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611f60565b610a15565b005b3480156103f557600080fd5b50610410600480360381019061040b9190612245565b610aff565b60405161041d9190612168565b60405180910390f35b34801561043257600080fd5b5061043b610b48565b005b34801561044957600080fd5b50610452610bd0565b60405161045f9190612168565b60405180910390f35b34801561047457600080fd5b5061047d610bd6565b60405161048a9190611fe1565b60405180910390f35b34801561049f57600080fd5b506104a8610bff565b6040516104b59190612168565b60405180910390f35b3480156104ca57600080fd5b506104d3610c05565b6040516104e09190612095565b60405180910390f35b3480156104f557600080fd5b506104fe610c42565b60405161050b9190611fe1565b60405180910390f35b34801561052057600080fd5b5061053b600480360381019061053691906120e3565b610c68565b604051610548919061213e565b60405180910390f35b34801561055d57600080fd5b50610566610c86565b6040516105739190612168565b60405180910390f35b34801561058857600080fd5b50610591610c8c565b60405161059e9190612168565b60405180910390f35b3480156105b357600080fd5b506105bc610c92565b6040516105c99190612168565b60405180910390f35b3480156105de57600080fd5b506105e7610c98565b6040516105f49190612168565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612272565b610c9e565b6040516106319190612168565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190612245565b610d25565b005b34801561066f57600080fd5b5061068a60048036038101906106859190611f60565b610dfc565b005b34801561069857600080fd5b506106b360048036038101906106ae9190612245565b610eba565b005b6106bd610fb1565b73ffffffffffffffffffffffffffffffffffffffff166106db610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610728906122fe565b60405180910390fd5b816007819055508060088190555060085460075461074f919061234d565b6006819055506014600654111561079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906123ef565b60405180910390fd5b5050565b61dead81565b60606040518060400160405280601881526020017f447261676f6e206f66204461726b6e65737320466c616d650000000000000000815250905090565b60006107f66107ef610fb1565b8484610fb9565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600c60009054906101000a900461ffff1681565b600b5481565b600061083b848484611182565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610886610fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612481565b60405180910390fd5b61092385610912610fb1565b858461091e91906124a1565b610fb9565b60019150509392505050565b60006009905090565b610940610fb1565b73ffffffffffffffffffffffffffffffffffffffff1661095e610bd6565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906122fe565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b610a1d610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610a3b610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a88906122fe565b60405180910390fd5b8160048190555080600581905550600554600454610aaf919061234d565b60068190555060146006541115610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af2906123ef565b60405180910390fd5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b50610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610b6e610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb906122fe565b60405180910390fd5b610bce6000611700565b565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600b81526020017f4869656920e781abe7828e000000000000000000000000000000000000000000815250905090565b600c60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c7c610c75610fb1565b8484611182565b6001905092915050565b60065481565b60045481565b600a5481565b60095481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d2d610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610d4b610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d98906122fe565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e04610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610e22610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906122fe565b60405180910390fd5b6009600a610e869190612608565b82610e919190612653565b6010819055506009600a610ea59190612608565b81610eb09190612653565b600f819055505050565b610ec2610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610ee0610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d906122fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c9061271f565b60405180910390fd5b610fae81611700565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f906127b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612843565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111759190612168565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e8906128d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612967565b60405180910390fd5b600081116112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a906129f9565b60405180910390fd5b6112ac83610aff565b8111156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612a8b565b60405180910390fd5b600e60149054906101000a900460ff16806113525750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806113a65750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc90612af7565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114905750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114e65750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561158957601054811115611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790612b63565b60405180910390fd5b600f548161153d84610aff565b611547919061234d565b1115611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612bcf565b60405180910390fd5b5b600061159430610aff565b9050600e60159054906101000a900460ff161580156116015750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116195750600e60169054906101000a900460ff165b80156116255750600081115b1561164d57611633816117c4565b6000479050600081111561164b5761164a47611a3d565b5b505b6116fa848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f45750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611aa9565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156117fc576117fb612bef565b5b60405190808252806020026020018201604052801561182a5781602001602082028036833780820191505090505b509050308160008151811061184257611841612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d9190612c62565b8160018151811061192157611920612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061198830600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb9565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119ec959493929190612d92565b600060405180830381600087803b158015611a0657600080fd5b505af1158015611a1a573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611aa5573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611af891906124a1565b92505081905550600081611b0c5782611b18565b611b17858585611bdc565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b69919061234d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bcd9190612168565b60405180910390a35050505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3d57506000600654115b15611cad57600c60009054906101000a900461ffff1661ffff1660045483611c659190612653565b611c6f9190612e1b565b600a81905550600c60009054906101000a900461ffff1661ffff1660055483611c989190612653565b611ca29190612e1b565b600b81905550611d79565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d0c57506000600954115b15611d7857600c60009054906101000a900461ffff1661ffff1660075483611d349190612653565b611d3e9190612e1b565b600a81905550600c60009054906101000a900461ffff1661ffff1660085483611d679190612653565b611d719190612e1b565b600b819055505b5b600a546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dcc919061234d565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051611e349190612168565b60405180910390a3600b54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e8d919061234d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051611ef39190612168565b60405180910390a36000600b54600a54611f0d919061234d565b90508083611f1b91906124a1565b9150509392505050565b600080fd5b6000819050919050565b611f3d81611f2a565b8114611f4857600080fd5b50565b600081359050611f5a81611f34565b92915050565b60008060408385031215611f7757611f76611f25565b5b6000611f8585828601611f4b565b9250506020611f9685828601611f4b565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fcb82611fa0565b9050919050565b611fdb81611fc0565b82525050565b6000602082019050611ff66000830184611fd2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561203657808201518184015260208101905061201b565b83811115612045576000848401525b50505050565b6000601f19601f8301169050919050565b600061206782611ffc565b6120718185612007565b9350612081818560208601612018565b61208a8161204b565b840191505092915050565b600060208201905081810360008301526120af818461205c565b905092915050565b6120c081611fc0565b81146120cb57600080fd5b50565b6000813590506120dd816120b7565b92915050565b600080604083850312156120fa576120f9611f25565b5b6000612108858286016120ce565b925050602061211985828601611f4b565b9150509250929050565b60008115159050919050565b61213881612123565b82525050565b6000602082019050612153600083018461212f565b92915050565b61216281611f2a565b82525050565b600060208201905061217d6000830184612159565b92915050565b600061ffff82169050919050565b61219a81612183565b82525050565b60006020820190506121b56000830184612191565b92915050565b6000806000606084860312156121d4576121d3611f25565b5b60006121e2868287016120ce565b93505060206121f3868287016120ce565b925050604061220486828701611f4b565b9150509250925092565b600060ff82169050919050565b6122248161220e565b82525050565b600060208201905061223f600083018461221b565b92915050565b60006020828403121561225b5761225a611f25565b5b6000612269848285016120ce565b91505092915050565b6000806040838503121561228957612288611f25565b5b6000612297858286016120ce565b92505060206122a8858286016120ce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122e8602083612007565b91506122f3826122b2565b602082019050919050565b60006020820190508181036000830152612317816122db565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061235882611f2a565b915061236383611f2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123985761239761231e565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b60006123d9601d83612007565b91506123e4826123a3565b602082019050919050565b60006020820190508181036000830152612408816123cc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061246b602883612007565b91506124768261240f565b604082019050919050565b6000602082019050818103600083015261249a8161245e565b9050919050565b60006124ac82611f2a565b91506124b783611f2a565b9250828210156124ca576124c961231e565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b600185111561252c578086048111156125085761250761231e565b5b60018516156125175780820291505b8081029050612525856124d5565b94506124ec565b94509492505050565b6000826125455760019050612601565b816125535760009050612601565b81600181146125695760028114612573576125a2565b6001915050612601565b60ff8411156125855761258461231e565b5b8360020a91508482111561259c5761259b61231e565b5b50612601565b5060208310610133831016604e8410600b84101617156125d75782820a9050838111156125d2576125d161231e565b5b612601565b6125e484848460016124e2565b925090508184048111156125fb576125fa61231e565b5b81810290505b9392505050565b600061261382611f2a565b915061261e8361220e565b925061264b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612535565b905092915050565b600061265e82611f2a565b915061266983611f2a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156126a2576126a161231e565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612709602683612007565b9150612714826126ad565b604082019050919050565b60006020820190508181036000830152612738816126fc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061279b602483612007565b91506127a68261273f565b604082019050919050565b600060208201905081810360008301526127ca8161278e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061282d602283612007565b9150612838826127d1565b604082019050919050565b6000602082019050818103600083015261285c81612820565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128bf602583612007565b91506128ca82612863565b604082019050919050565b600060208201905081810360008301526128ee816128b2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612951602383612007565b915061295c826128f5565b604082019050919050565b6000602082019050818103600083015261298081612944565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006129e3602983612007565b91506129ee82612987565b604082019050919050565b60006020820190508181036000830152612a12816129d6565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612a75603183612007565b9150612a8082612a19565b604082019050919050565b60006020820190508181036000830152612aa481612a68565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612ae1601783612007565b9150612aec82612aab565b602082019050919050565b60006020820190508181036000830152612b1081612ad4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612b4d601983612007565b9150612b5882612b17565b602082019050919050565b60006020820190508181036000830152612b7c81612b40565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bb9601a83612007565b9150612bc482612b83565b602082019050919050565b60006020820190508181036000830152612be881612bac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612c5c816120b7565b92915050565b600060208284031215612c7857612c77611f25565b5b6000612c8684828501612c4d565b91505092915050565b6000819050919050565b6000819050919050565b6000612cbe612cb9612cb484612c8f565b612c99565b611f2a565b9050919050565b612cce81612ca3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d0981611fc0565b82525050565b6000612d1b8383612d00565b60208301905092915050565b6000602082019050919050565b6000612d3f82612cd4565b612d498185612cdf565b9350612d5483612cf0565b8060005b83811015612d85578151612d6c8882612d0f565b9750612d7783612d27565b925050600181019050612d58565b5085935050505092915050565b600060a082019050612da76000830188612159565b612db46020830187612cc5565b8181036040830152612dc68186612d34565b9050612dd56060830185611fd2565b612de26080830184612159565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e2682611f2a565b9150612e3183611f2a565b925082612e4157612e40612dec565b5b82820490509291505056fea26469706673582212207c0d1bc7f396c8b3e25b495c0422ee8bd24c711c42bc00627b47dadf9b781f4664736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637bce5a04116100ec578063c99f2fed1161008a578063dd62ed3e11610064578063dd62ed3e146105fd578063ea2f0b371461063a578063ebece9c914610663578063f2fde38b1461068c576101c2565b8063c99f2fed1461057c578063cc70acee146105a7578063d0a39814146105d2576101c2565b806395d89b41116100c657806395d89b41146104be578063a8b08982146104e9578063a9059cbb14610514578063b9e9370014610551576101c2565b80637bce5a041461043d5780638da5cb5b146104685780639213691314610493576101c2565b806323b872dd1161015957806347afcbfe1161013357806347afcbfe1461039557806366ca9b83146103c057806370a08231146103e9578063715018a614610426576101c2565b806323b872dd14610304578063313ce56714610341578063437823ec1461036c576101c2565b8063095ea7b311610195578063095ea7b31461024657806318160ddd146102835780631d6167ac146102ae5780631f3fed8f146102d9576101c2565b806302dbd8f8146101c757806303fd2a45146101f057806306fdde031461021b576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101ee60048036038101906101e99190611f60565b6106b5565b005b3480156101fc57600080fd5b5061020561079f565b6040516102129190611fe1565b60405180910390f35b34801561022757600080fd5b506102306107a5565b60405161023d9190612095565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906120e3565b6107e2565b60405161027a919061213e565b60405180910390f35b34801561028f57600080fd5b50610298610800565b6040516102a59190612168565b60405180910390f35b3480156102ba57600080fd5b506102c3610814565b6040516102d091906121a0565b60405180910390f35b3480156102e557600080fd5b506102ee610828565b6040516102fb9190612168565b60405180910390f35b34801561031057600080fd5b5061032b600480360381019061032691906121bb565b61082e565b604051610338919061213e565b60405180910390f35b34801561034d57600080fd5b5061035661092f565b604051610363919061222a565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e9190612245565b610938565b005b3480156103a157600080fd5b506103aa610a0f565b6040516103b79190612168565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611f60565b610a15565b005b3480156103f557600080fd5b50610410600480360381019061040b9190612245565b610aff565b60405161041d9190612168565b60405180910390f35b34801561043257600080fd5b5061043b610b48565b005b34801561044957600080fd5b50610452610bd0565b60405161045f9190612168565b60405180910390f35b34801561047457600080fd5b5061047d610bd6565b60405161048a9190611fe1565b60405180910390f35b34801561049f57600080fd5b506104a8610bff565b6040516104b59190612168565b60405180910390f35b3480156104ca57600080fd5b506104d3610c05565b6040516104e09190612095565b60405180910390f35b3480156104f557600080fd5b506104fe610c42565b60405161050b9190611fe1565b60405180910390f35b34801561052057600080fd5b5061053b600480360381019061053691906120e3565b610c68565b604051610548919061213e565b60405180910390f35b34801561055d57600080fd5b50610566610c86565b6040516105739190612168565b60405180910390f35b34801561058857600080fd5b50610591610c8c565b60405161059e9190612168565b60405180910390f35b3480156105b357600080fd5b506105bc610c92565b6040516105c99190612168565b60405180910390f35b3480156105de57600080fd5b506105e7610c98565b6040516105f49190612168565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612272565b610c9e565b6040516106319190612168565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190612245565b610d25565b005b34801561066f57600080fd5b5061068a60048036038101906106859190611f60565b610dfc565b005b34801561069857600080fd5b506106b360048036038101906106ae9190612245565b610eba565b005b6106bd610fb1565b73ffffffffffffffffffffffffffffffffffffffff166106db610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610728906122fe565b60405180910390fd5b816007819055508060088190555060085460075461074f919061234d565b6006819055506014600654111561079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906123ef565b60405180910390fd5b5050565b61dead81565b60606040518060400160405280601881526020017f447261676f6e206f66204461726b6e65737320466c616d650000000000000000815250905090565b60006107f66107ef610fb1565b8484610fb9565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600c60009054906101000a900461ffff1681565b600b5481565b600061083b848484611182565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610886610fb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612481565b60405180910390fd5b61092385610912610fb1565b858461091e91906124a1565b610fb9565b60019150509392505050565b60006009905090565b610940610fb1565b73ffffffffffffffffffffffffffffffffffffffff1661095e610bd6565b73ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab906122fe565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b610a1d610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610a3b610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a88906122fe565b60405180910390fd5b8160048190555080600581905550600554600454610aaf919061234d565b60068190555060146006541115610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af2906123ef565b60405180910390fd5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b50610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610b6e610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbb906122fe565b60405180910390fd5b610bce6000611700565b565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600b81526020017f4869656920e781abe7828e000000000000000000000000000000000000000000815250905090565b600c60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c7c610c75610fb1565b8484611182565b6001905092915050565b60065481565b60045481565b600a5481565b60095481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d2d610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610d4b610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d98906122fe565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e04610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610e22610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906122fe565b60405180910390fd5b6009600a610e869190612608565b82610e919190612653565b6010819055506009600a610ea59190612608565b81610eb09190612653565b600f819055505050565b610ec2610fb1565b73ffffffffffffffffffffffffffffffffffffffff16610ee0610bd6565b73ffffffffffffffffffffffffffffffffffffffff1614610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d906122fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c9061271f565b60405180910390fd5b610fae81611700565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f906127b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612843565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111759190612168565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e8906128d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612967565b60405180910390fd5b600081116112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129a906129f9565b60405180910390fd5b6112ac83610aff565b8111156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612a8b565b60405180910390fd5b600e60149054906101000a900460ff16806113525750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806113a65750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc90612af7565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114905750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114e65750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561158957601054811115611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790612b63565b60405180910390fd5b600f548161153d84610aff565b611547919061234d565b1115611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612bcf565b60405180910390fd5b5b600061159430610aff565b9050600e60159054906101000a900460ff161580156116015750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116195750600e60169054906101000a900460ff165b80156116255750600081115b1561164d57611633816117c4565b6000479050600081111561164b5761164a47611a3d565b5b505b6116fa848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f45750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611aa9565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156117fc576117fb612bef565b5b60405190808252806020026020018201604052801561182a5781602001602082028036833780820191505090505b509050308160008151811061184257611841612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d9190612c62565b8160018151811061192157611920612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061198830600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb9565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119ec959493929190612d92565b600060405180830381600087803b158015611a0657600080fd5b505af1158015611a1a573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611aa5573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611af891906124a1565b92505081905550600081611b0c5782611b18565b611b17858585611bdc565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b69919061234d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bcd9190612168565b60405180910390a35050505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3d57506000600654115b15611cad57600c60009054906101000a900461ffff1661ffff1660045483611c659190612653565b611c6f9190612e1b565b600a81905550600c60009054906101000a900461ffff1661ffff1660055483611c989190612653565b611ca29190612e1b565b600b81905550611d79565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d0c57506000600954115b15611d7857600c60009054906101000a900461ffff1661ffff1660075483611d349190612653565b611d3e9190612e1b565b600a81905550600c60009054906101000a900461ffff1661ffff1660085483611d679190612653565b611d719190612e1b565b600b819055505b5b600a546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dcc919061234d565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051611e349190612168565b60405180910390a3600b54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e8d919061234d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051611ef39190612168565b60405180910390a36000600b54600a54611f0d919061234d565b90508083611f1b91906124a1565b9150509392505050565b600080fd5b6000819050919050565b611f3d81611f2a565b8114611f4857600080fd5b50565b600081359050611f5a81611f34565b92915050565b60008060408385031215611f7757611f76611f25565b5b6000611f8585828601611f4b565b9250506020611f9685828601611f4b565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fcb82611fa0565b9050919050565b611fdb81611fc0565b82525050565b6000602082019050611ff66000830184611fd2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561203657808201518184015260208101905061201b565b83811115612045576000848401525b50505050565b6000601f19601f8301169050919050565b600061206782611ffc565b6120718185612007565b9350612081818560208601612018565b61208a8161204b565b840191505092915050565b600060208201905081810360008301526120af818461205c565b905092915050565b6120c081611fc0565b81146120cb57600080fd5b50565b6000813590506120dd816120b7565b92915050565b600080604083850312156120fa576120f9611f25565b5b6000612108858286016120ce565b925050602061211985828601611f4b565b9150509250929050565b60008115159050919050565b61213881612123565b82525050565b6000602082019050612153600083018461212f565b92915050565b61216281611f2a565b82525050565b600060208201905061217d6000830184612159565b92915050565b600061ffff82169050919050565b61219a81612183565b82525050565b60006020820190506121b56000830184612191565b92915050565b6000806000606084860312156121d4576121d3611f25565b5b60006121e2868287016120ce565b93505060206121f3868287016120ce565b925050604061220486828701611f4b565b9150509250925092565b600060ff82169050919050565b6122248161220e565b82525050565b600060208201905061223f600083018461221b565b92915050565b60006020828403121561225b5761225a611f25565b5b6000612269848285016120ce565b91505092915050565b6000806040838503121561228957612288611f25565b5b6000612297858286016120ce565b92505060206122a8858286016120ce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122e8602083612007565b91506122f3826122b2565b602082019050919050565b60006020820190508181036000830152612317816122db565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061235882611f2a565b915061236383611f2a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156123985761239761231e565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b60006123d9601d83612007565b91506123e4826123a3565b602082019050919050565b60006020820190508181036000830152612408816123cc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061246b602883612007565b91506124768261240f565b604082019050919050565b6000602082019050818103600083015261249a8161245e565b9050919050565b60006124ac82611f2a565b91506124b783611f2a565b9250828210156124ca576124c961231e565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b600185111561252c578086048111156125085761250761231e565b5b60018516156125175780820291505b8081029050612525856124d5565b94506124ec565b94509492505050565b6000826125455760019050612601565b816125535760009050612601565b81600181146125695760028114612573576125a2565b6001915050612601565b60ff8411156125855761258461231e565b5b8360020a91508482111561259c5761259b61231e565b5b50612601565b5060208310610133831016604e8410600b84101617156125d75782820a9050838111156125d2576125d161231e565b5b612601565b6125e484848460016124e2565b925090508184048111156125fb576125fa61231e565b5b81810290505b9392505050565b600061261382611f2a565b915061261e8361220e565b925061264b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612535565b905092915050565b600061265e82611f2a565b915061266983611f2a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156126a2576126a161231e565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612709602683612007565b9150612714826126ad565b604082019050919050565b60006020820190508181036000830152612738816126fc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061279b602483612007565b91506127a68261273f565b604082019050919050565b600060208201905081810360008301526127ca8161278e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061282d602283612007565b9150612838826127d1565b604082019050919050565b6000602082019050818103600083015261285c81612820565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128bf602583612007565b91506128ca82612863565b604082019050919050565b600060208201905081810360008301526128ee816128b2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612951602383612007565b915061295c826128f5565b604082019050919050565b6000602082019050818103600083015261298081612944565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006129e3602983612007565b91506129ee82612987565b604082019050919050565b60006020820190508181036000830152612a12816129d6565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612a75603183612007565b9150612a8082612a19565b604082019050919050565b60006020820190508181036000830152612aa481612a68565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612ae1601783612007565b9150612aec82612aab565b602082019050919050565b60006020820190508181036000830152612b1081612ad4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612b4d601983612007565b9150612b5882612b17565b602082019050919050565b60006020820190508181036000830152612b7c81612b40565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bb9601a83612007565b9150612bc482612b83565b602082019050919050565b60006020820190508181036000830152612be881612bac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612c5c816120b7565b92915050565b600060208284031215612c7857612c77611f25565b5b6000612c8684828501612c4d565b91505092915050565b6000819050919050565b6000819050919050565b6000612cbe612cb9612cb484612c8f565b612c99565b611f2a565b9050919050565b612cce81612ca3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d0981611fc0565b82525050565b6000612d1b8383612d00565b60208301905092915050565b6000602082019050919050565b6000612d3f82612cd4565b612d498185612cdf565b9350612d5483612cf0565b8060005b83811015612d85578151612d6c8882612d0f565b9750612d7783612d27565b925050600181019050612d58565b5085935050505092915050565b600060a082019050612da76000830188612159565b612db46020830187612cc5565b8181036040830152612dc68186612d34565b9050612dd56060830185611fd2565b612de26080830184612159565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e2682611f2a565b9150612e3183611f2a565b925082612e4157612e40612dec565b5b82820490509291505056fea26469706673582212207c0d1bc7f396c8b3e25b495c0422ee8bd24c711c42bc00627b47dadf9b781f4664736f6c634300080f0033

Deployed Bytecode Sourcemap

4351:9093:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12968:327;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5249:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7475:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8185:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7704:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5202:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5162:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7629:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12176:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4962:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12638:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7791:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3014:94;;;;;;;;;;;;;:::i;:::-;;4848:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5005:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7550:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5329:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7900:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4891:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4806:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5123:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5049:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8050:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12295:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12413:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3116:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12968:327;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13093:16:::1;13075:15;:34;;;;13139:17;13120:16;:36;;;;13200:16;;13182:15;;:34;;;;:::i;:::-;13167:12;:49;;;;13251:2;13235:12;;:18;;13227:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12968:327:::0;;:::o;5249:73::-;5280:42;5249:73;:::o;7475:69::-;7512:13;7536:5;;;;;;;;;;;;;;;;;7529:12;;7475:69;:::o;8185:138::-;8260:4;8268:39;8277:12;:10;:12::i;:::-;8291:7;8300:6;8268:8;:39::i;:::-;8316:4;8309:11;;8185:138;;;;:::o;7704:81::-;7757:7;5592:27;7768:14;;7704:81;:::o;5202:38::-;;;;;;;;;;;;;:::o;5162:33::-;;;;:::o;8331:420::-;8437:4;8454:36;8464:6;8472:9;8483:6;8454:9;:36::i;:::-;8503:24;8530:11;:19;8542:6;8530:19;;;;;;;;;;;;;;;:33;8550:12;:10;:12::i;:::-;8530:33;;;;;;;;;;;;;;;;8503:60;;8602:6;8582:16;:26;;8574:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8664:57;8673:6;8681:12;:10;:12::i;:::-;8714:6;8695:16;:25;;;;:::i;:::-;8664:8;:57::i;:::-;8739:4;8732:11;;;8331:420;;;;;:::o;7629:69::-;7670:5;4796:1;7679:16;;7629:69;:::o;12176:111::-;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12275:4:::1;12245:18;:27;12264:7;12245:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12176:111:::0;:::o;4962:36::-;;;;:::o;12638:318::-;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12759:15:::1;12742:14;:32;;;;12803:16;12785:15;:34;;;;12862:15;;12845:14;;:32;;;;:::i;:::-;12830:12;:47;;;;12912:2;12896:12;;:18;;12888:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12638:318:::0;;:::o;7791:103::-;7857:7;7875;:16;7883:7;7875:16;;;;;;;;;;;;;;;;7868:23;;7791:103;;;:::o;3014:94::-;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3079:21:::1;3097:1;3079:9;:21::i;:::-;3014:94::o:0;4848:36::-;;;;:::o;2791:87::-;2837:7;2864:6;;;;;;;;;;;2857:13;;2791:87;:::o;5005:37::-;;;;:::o;7550:73::-;7589:13;7613:7;;;;;;;;;;;;;;;;;7606:14;;7550:73;:::o;5329:26::-;;;;;;;;;;;;;:::o;7900:144::-;7978:4;7986:42;7996:12;:10;:12::i;:::-;8010:9;8021:6;7986:9;:42::i;:::-;8037:4;8030:11;;7900:144;;;;:::o;4891:62::-;;;;:::o;4806:35::-;;;;:::o;5123:32::-;;;;:::o;5049:65::-;;;;:::o;8050:129::-;8131:7;8149:11;:18;8161:5;8149:18;;;;;;;;;;;;;;;:27;8168:7;8149:27;;;;;;;;;;;;;;;;8142:34;;8050:129;;;;:::o;12295:110::-;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12392:5:::1;12362:18;:27;12381:7;12362:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12295:110:::0;:::o;12413:217::-;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4796:1:::1;12548:2;:14;;;;:::i;:::-;12533:12;:29;;;;:::i;:::-;12519:11;:43;;;;4796:1;12608:2;:14;;;;:::i;:::-;12591;:31;;;;:::i;:::-;12573:15;:49;;;;12413:217:::0;;:::o;3116:192::-;2937:12;:10;:12::i;:::-;2926:23;;:7;:5;:7::i;:::-;:23;;;2918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3225:1:::1;3205:22;;:8;:22;;::::0;3197:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3281:19;3291:8;3281:9;:19::i;:::-;3116:192:::0;:::o;2212:98::-;2265:7;2292:10;2285:17;;2212:98;:::o;8759:335::-;8869:1;8852:19;;:5;:19;;;8844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8950:1;8931:21;;:7;:21;;;8923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9032:6;9002:11;:18;9014:5;9002:18;;;;;;;;;;;;;;;:27;9021:7;9002:27;;;;;;;;;;;;;;;:36;;;;9070:7;9054:32;;9063:5;9054:32;;;9079:6;9054:32;;;;;;:::i;:::-;;;;;;;;8759:335;;;:::o;9102:1335::-;9206:1;9190:18;;:4;:18;;;9182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9283:1;9269:16;;:2;:16;;;9261:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9353:1;9344:6;:10;9336:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9429:15;9439:4;9429:9;:15::i;:::-;9419:6;:25;;9411:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9520:11;;;;;;;;;;;:39;;;;9535:18;:24;9554:4;9535:24;;;;;;;;;;;;;;;;;;;;;;;;;9520:39;:65;;;;9563:18;:22;9582:2;9563:22;;;;;;;;;;;;;;;;;;;;;;;;;9520:65;9512:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;9638:13;;;;;;;;;;;9630:21;;:4;:21;;;:55;;;;;9669:15;;;;;;;;;;;9655:30;;:2;:30;;;;9630:55;:83;;;;;9691:18;:22;9710:2;9691:22;;;;;;;;;;;;;;;;;;;;;;;;;9689:24;9630:83;9626:278;;;9752:11;;9742:6;:21;;9734:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9846:15;;9836:6;9820:13;9830:2;9820:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;9812:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;9626:278;9916:28;9947:24;9965:4;9947:9;:24::i;:::-;9916:55;;9991:6;;;;;;;;;;;9990:7;:32;;;;;10009:13;;;;;;;;;;;10001:21;;:4;:21;;;;9990:32;:47;;;;;10026:11;;;;;;;;;;;9990:47;:73;;;;;10062:1;10041:20;:22;9990:73;9986:344;;;10084:38;10101:20;10084:16;:38::i;:::-;10141:26;10170:21;10141:50;;10234:1;10213:18;:22;10210:105;;;10260:35;10273:21;10260:12;:35::i;:::-;10210:105;10065:265;9986:344;10342:87;10357:4;10363:2;10367:6;10377:18;:24;10396:4;10377:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10405:18;:22;10424:2;10405:22;;;;;;;;;;;;;;;;;;;;;;;;;10377:50;10375:53;10342:14;:87::i;:::-;9171:1266;9102:1335;;;:::o;3316:173::-;3372:16;3391:6;;;;;;;;;;;3372:25;;3417:8;3408:6;;:17;;;;;;;;;;;;;;;;;;3472:8;3441:40;;3462:8;3441:40;;;;;;;;;;;;3361:128;3316:173;:::o;10445:483::-;5898:4;5889:6;;:13;;;;;;;;;;;;;;;;;;10523:21:::1;10561:1;10547:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10523:40;;10592:4;10574;10579:1;10574:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10618:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10608:4;10613:1;10608:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10651:62;10668:4;10683:15;;;;;;;;;;;10701:11;10651:8;:62::i;:::-;10724:15;;;;;;;;;;;:66;;;10805:11;10831:1;10847:4;10874;10894:15;10724:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10512:416;5934:5:::0;5925:6;;:14;;;;;;;;;;;;;;;;;;10445:483;:::o;13303:95::-;13360:13;;;;;;;;;;;:22;;:30;13383:6;13360:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13303:95;:::o;10936:340::-;11063:6;11044:7;:15;11052:6;11044:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;11080:22;11106:7;11105:57;;11156:6;11105:57;;;11117:36;11127:6;11135:9;11146:6;11117:9;:36::i;:::-;11105:57;11080:82;;11195:14;11173:7;:18;11181:9;11173:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11242:9;11225:43;;11234:6;11225:43;;;11253:14;11225:43;;;;;;:::i;:::-;;;;;;;;11033:243;10936:340;;;;:::o;11284:884::-;11363:7;11394:13;;;;;;;;;;;11386:21;;:4;:21;;;:41;;;;;11426:1;11411:12;;:16;11386:41;11383:453;;;11492:16;;;;;;;;;;;11466:42;;11475:14;;11466:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;11446:17;:62;;;;11571:16;;;;;;;;;;;11544:43;;11553:15;;11544:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;11523:18;:64;;;;11383:453;;;11619:13;;;;;;;;;;;11613:19;;:2;:19;;;:41;;;;;11653:1;11637:13;;:17;11613:41;11609:227;;;11720:16;;;;;;;;;;;11693:43;;11702:15;;11693:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;11673:17;:63;;;;11800:16;;;;;;;;;;;11772:44;;11781:16;;11772:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;11751:18;:65;;;;11609:227;11383:453;11863:17;;11846:7;:13;5280:42;11846:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;5280:42;11896:39;;11905:4;11896:39;;;11917:17;;11896:39;;;;;;:::i;:::-;;;;;;;;11972:18;;11946:7;:22;11962:4;11946:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;12029:4;12006:49;;12015:4;12006:49;;;12036:18;;12006:49;;;;;;:::i;:::-;;;;;;;;12066:17;12106:18;;12086:17;;:38;;;;:::i;:::-;12066:58;;12151:9;12142:6;:18;;;;:::i;:::-;12135:25;;;11284:884;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:126::-;1207:7;1247:42;1240:5;1236:54;1225:65;;1170:126;;;:::o;1302:96::-;1339:7;1368:24;1386:5;1368:24;:::i;:::-;1357:35;;1302:96;;;:::o;1404:118::-;1491:24;1509:5;1491:24;:::i;:::-;1486:3;1479:37;1404:118;;:::o;1528:222::-;1621:4;1659:2;1648:9;1644:18;1636:26;;1672:71;1740:1;1729:9;1725:17;1716:6;1672:71;:::i;:::-;1528:222;;;;:::o;1756:99::-;1808:6;1842:5;1836:12;1826:22;;1756:99;;;:::o;1861:169::-;1945:11;1979:6;1974:3;1967:19;2019:4;2014:3;2010:14;1995:29;;1861:169;;;;:::o;2036:307::-;2104:1;2114:113;2128:6;2125:1;2122:13;2114:113;;;2213:1;2208:3;2204:11;2198:18;2194:1;2189:3;2185:11;2178:39;2150:2;2147:1;2143:10;2138:15;;2114:113;;;2245:6;2242:1;2239:13;2236:101;;;2325:1;2316:6;2311:3;2307:16;2300:27;2236:101;2085:258;2036:307;;;:::o;2349:102::-;2390:6;2441:2;2437:7;2432:2;2425:5;2421:14;2417:28;2407:38;;2349:102;;;:::o;2457:364::-;2545:3;2573:39;2606:5;2573:39;:::i;:::-;2628:71;2692:6;2687:3;2628:71;:::i;:::-;2621:78;;2708:52;2753:6;2748:3;2741:4;2734:5;2730:16;2708:52;:::i;:::-;2785:29;2807:6;2785:29;:::i;:::-;2780:3;2776:39;2769:46;;2549:272;2457:364;;;;:::o;2827:313::-;2940:4;2978:2;2967:9;2963:18;2955:26;;3027:9;3021:4;3017:20;3013:1;3002:9;2998:17;2991:47;3055:78;3128:4;3119:6;3055:78;:::i;:::-;3047:86;;2827:313;;;;:::o;3146:122::-;3219:24;3237:5;3219:24;:::i;:::-;3212:5;3209:35;3199:63;;3258:1;3255;3248:12;3199:63;3146:122;:::o;3274:139::-;3320:5;3358:6;3345:20;3336:29;;3374:33;3401:5;3374:33;:::i;:::-;3274:139;;;;:::o;3419:474::-;3487:6;3495;3544:2;3532:9;3523:7;3519:23;3515:32;3512:119;;;3550:79;;:::i;:::-;3512:119;3670:1;3695:53;3740:7;3731:6;3720:9;3716:22;3695:53;:::i;:::-;3685:63;;3641:117;3797:2;3823:53;3868:7;3859:6;3848:9;3844:22;3823:53;:::i;:::-;3813:63;;3768:118;3419:474;;;;;:::o;3899:90::-;3933:7;3976:5;3969:13;3962:21;3951:32;;3899:90;;;:::o;3995:109::-;4076:21;4091:5;4076:21;:::i;:::-;4071:3;4064:34;3995:109;;:::o;4110:210::-;4197:4;4235:2;4224:9;4220:18;4212:26;;4248:65;4310:1;4299:9;4295:17;4286:6;4248:65;:::i;:::-;4110:210;;;;:::o;4326:118::-;4413:24;4431:5;4413:24;:::i;:::-;4408:3;4401:37;4326:118;;:::o;4450:222::-;4543:4;4581:2;4570:9;4566:18;4558:26;;4594:71;4662:1;4651:9;4647:17;4638:6;4594:71;:::i;:::-;4450:222;;;;:::o;4678:89::-;4714:7;4754:6;4747:5;4743:18;4732:29;;4678:89;;;:::o;4773:115::-;4858:23;4875:5;4858:23;:::i;:::-;4853:3;4846:36;4773:115;;:::o;4894:218::-;4985:4;5023:2;5012:9;5008:18;5000:26;;5036:69;5102:1;5091:9;5087:17;5078:6;5036:69;:::i;:::-;4894:218;;;;:::o;5118:619::-;5195:6;5203;5211;5260:2;5248:9;5239:7;5235:23;5231:32;5228:119;;;5266:79;;:::i;:::-;5228:119;5386:1;5411:53;5456:7;5447:6;5436:9;5432:22;5411:53;:::i;:::-;5401:63;;5357:117;5513:2;5539:53;5584:7;5575:6;5564:9;5560:22;5539:53;:::i;:::-;5529:63;;5484:118;5641:2;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5612:118;5118:619;;;;;:::o;5743:86::-;5778:7;5818:4;5811:5;5807:16;5796:27;;5743:86;;;:::o;5835:112::-;5918:22;5934:5;5918:22;:::i;:::-;5913:3;5906:35;5835:112;;:::o;5953:214::-;6042:4;6080:2;6069:9;6065:18;6057:26;;6093:67;6157:1;6146:9;6142:17;6133:6;6093:67;:::i;:::-;5953:214;;;;:::o;6173:329::-;6232:6;6281:2;6269:9;6260:7;6256:23;6252:32;6249:119;;;6287:79;;:::i;:::-;6249:119;6407:1;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6378:117;6173:329;;;;:::o;6508:474::-;6576:6;6584;6633:2;6621:9;6612:7;6608:23;6604:32;6601:119;;;6639:79;;:::i;:::-;6601:119;6759:1;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6730:117;6886:2;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6857:118;6508:474;;;;;:::o;6988:182::-;7128:34;7124:1;7116:6;7112:14;7105:58;6988:182;:::o;7176:366::-;7318:3;7339:67;7403:2;7398:3;7339:67;:::i;:::-;7332:74;;7415:93;7504:3;7415:93;:::i;:::-;7533:2;7528:3;7524:12;7517:19;;7176:366;;;:::o;7548:419::-;7714:4;7752:2;7741:9;7737:18;7729:26;;7801:9;7795:4;7791:20;7787:1;7776:9;7772:17;7765:47;7829:131;7955:4;7829:131;:::i;:::-;7821:139;;7548:419;;;:::o;7973:180::-;8021:77;8018:1;8011:88;8118:4;8115:1;8108:15;8142:4;8139:1;8132:15;8159:305;8199:3;8218:20;8236:1;8218:20;:::i;:::-;8213:25;;8252:20;8270:1;8252:20;:::i;:::-;8247:25;;8406:1;8338:66;8334:74;8331:1;8328:81;8325:107;;;8412:18;;:::i;:::-;8325:107;8456:1;8453;8449:9;8442:16;;8159:305;;;;:::o;8470:179::-;8610:31;8606:1;8598:6;8594:14;8587:55;8470:179;:::o;8655:366::-;8797:3;8818:67;8882:2;8877:3;8818:67;:::i;:::-;8811:74;;8894:93;8983:3;8894:93;:::i;:::-;9012:2;9007:3;9003:12;8996:19;;8655:366;;;:::o;9027:419::-;9193:4;9231:2;9220:9;9216:18;9208:26;;9280:9;9274:4;9270:20;9266:1;9255:9;9251:17;9244:47;9308:131;9434:4;9308:131;:::i;:::-;9300:139;;9027:419;;;:::o;9452:227::-;9592:34;9588:1;9580:6;9576:14;9569:58;9661:10;9656:2;9648:6;9644:15;9637:35;9452:227;:::o;9685:366::-;9827:3;9848:67;9912:2;9907:3;9848:67;:::i;:::-;9841:74;;9924:93;10013:3;9924:93;:::i;:::-;10042:2;10037:3;10033:12;10026:19;;9685:366;;;:::o;10057:419::-;10223:4;10261:2;10250:9;10246:18;10238:26;;10310:9;10304:4;10300:20;10296:1;10285:9;10281:17;10274:47;10338:131;10464:4;10338:131;:::i;:::-;10330:139;;10057:419;;;:::o;10482:191::-;10522:4;10542:20;10560:1;10542:20;:::i;:::-;10537:25;;10576:20;10594:1;10576:20;:::i;:::-;10571:25;;10615:1;10612;10609:8;10606:34;;;10620:18;;:::i;:::-;10606:34;10665:1;10662;10658:9;10650:17;;10482:191;;;;:::o;10679:102::-;10721:8;10768:5;10765:1;10761:13;10740:34;;10679:102;;;:::o;10787:848::-;10848:5;10855:4;10879:6;10870:15;;10903:5;10894:14;;10917:712;10938:1;10928:8;10925:15;10917:712;;;11033:4;11028:3;11024:14;11018:4;11015:24;11012:50;;;11042:18;;:::i;:::-;11012:50;11092:1;11082:8;11078:16;11075:451;;;11507:4;11500:5;11496:16;11487:25;;11075:451;11557:4;11551;11547:15;11539:23;;11587:32;11610:8;11587:32;:::i;:::-;11575:44;;10917:712;;;10787:848;;;;;;;:::o;11641:1073::-;11695:5;11886:8;11876:40;;11907:1;11898:10;;11909:5;;11876:40;11935:4;11925:36;;11952:1;11943:10;;11954:5;;11925:36;12021:4;12069:1;12064:27;;;;12105:1;12100:191;;;;12014:277;;12064:27;12082:1;12073:10;;12084:5;;;12100:191;12145:3;12135:8;12132:17;12129:43;;;12152:18;;:::i;:::-;12129:43;12201:8;12198:1;12194:16;12185:25;;12236:3;12229:5;12226:14;12223:40;;;12243:18;;:::i;:::-;12223:40;12276:5;;;12014:277;;12400:2;12390:8;12387:16;12381:3;12375:4;12372:13;12368:36;12350:2;12340:8;12337:16;12332:2;12326:4;12323:12;12319:35;12303:111;12300:246;;;12456:8;12450:4;12446:19;12437:28;;12491:3;12484:5;12481:14;12478:40;;;12498:18;;:::i;:::-;12478:40;12531:5;;12300:246;12571:42;12609:3;12599:8;12593:4;12590:1;12571:42;:::i;:::-;12556:57;;;;12645:4;12640:3;12636:14;12629:5;12626:25;12623:51;;;12654:18;;:::i;:::-;12623:51;12703:4;12696:5;12692:16;12683:25;;11641:1073;;;;;;:::o;12720:281::-;12778:5;12802:23;12820:4;12802:23;:::i;:::-;12794:31;;12846:25;12862:8;12846:25;:::i;:::-;12834:37;;12890:104;12927:66;12917:8;12911:4;12890:104;:::i;:::-;12881:113;;12720:281;;;;:::o;13007:348::-;13047:7;13070:20;13088:1;13070:20;:::i;:::-;13065:25;;13104:20;13122:1;13104:20;:::i;:::-;13099:25;;13292:1;13224:66;13220:74;13217:1;13214:81;13209:1;13202:9;13195:17;13191:105;13188:131;;;13299:18;;:::i;:::-;13188:131;13347:1;13344;13340:9;13329:20;;13007:348;;;;:::o;13361:225::-;13501:34;13497:1;13489:6;13485:14;13478:58;13570:8;13565:2;13557:6;13553:15;13546:33;13361:225;:::o;13592:366::-;13734:3;13755:67;13819:2;13814:3;13755:67;:::i;:::-;13748:74;;13831:93;13920:3;13831:93;:::i;:::-;13949:2;13944:3;13940:12;13933:19;;13592:366;;;:::o;13964:419::-;14130:4;14168:2;14157:9;14153:18;14145:26;;14217:9;14211:4;14207:20;14203:1;14192:9;14188:17;14181:47;14245:131;14371:4;14245:131;:::i;:::-;14237:139;;13964:419;;;:::o;14389:223::-;14529:34;14525:1;14517:6;14513:14;14506:58;14598:6;14593:2;14585:6;14581:15;14574:31;14389:223;:::o;14618:366::-;14760:3;14781:67;14845:2;14840:3;14781:67;:::i;:::-;14774:74;;14857:93;14946:3;14857:93;:::i;:::-;14975:2;14970:3;14966:12;14959:19;;14618:366;;;:::o;14990:419::-;15156:4;15194:2;15183:9;15179:18;15171:26;;15243:9;15237:4;15233:20;15229:1;15218:9;15214:17;15207:47;15271:131;15397:4;15271:131;:::i;:::-;15263:139;;14990:419;;;:::o;15415:221::-;15555:34;15551:1;15543:6;15539:14;15532:58;15624:4;15619:2;15611:6;15607:15;15600:29;15415:221;:::o;15642:366::-;15784:3;15805:67;15869:2;15864:3;15805:67;:::i;:::-;15798:74;;15881:93;15970:3;15881:93;:::i;:::-;15999:2;15994:3;15990:12;15983:19;;15642:366;;;:::o;16014:419::-;16180:4;16218:2;16207:9;16203:18;16195:26;;16267:9;16261:4;16257:20;16253:1;16242:9;16238:17;16231:47;16295:131;16421:4;16295:131;:::i;:::-;16287:139;;16014:419;;;:::o;16439:224::-;16579:34;16575:1;16567:6;16563:14;16556:58;16648:7;16643:2;16635:6;16631:15;16624:32;16439:224;:::o;16669:366::-;16811:3;16832:67;16896:2;16891:3;16832:67;:::i;:::-;16825:74;;16908:93;16997:3;16908:93;:::i;:::-;17026:2;17021:3;17017:12;17010:19;;16669:366;;;:::o;17041:419::-;17207:4;17245:2;17234:9;17230:18;17222:26;;17294:9;17288:4;17284:20;17280:1;17269:9;17265:17;17258:47;17322:131;17448:4;17322:131;:::i;:::-;17314:139;;17041:419;;;:::o;17466:222::-;17606:34;17602:1;17594:6;17590:14;17583:58;17675:5;17670:2;17662:6;17658:15;17651:30;17466:222;:::o;17694:366::-;17836:3;17857:67;17921:2;17916:3;17857:67;:::i;:::-;17850:74;;17933:93;18022:3;17933:93;:::i;:::-;18051:2;18046:3;18042:12;18035:19;;17694:366;;;:::o;18066:419::-;18232:4;18270:2;18259:9;18255:18;18247:26;;18319:9;18313:4;18309:20;18305:1;18294:9;18290:17;18283:47;18347:131;18473:4;18347:131;:::i;:::-;18339:139;;18066:419;;;:::o;18491:228::-;18631:34;18627:1;18619:6;18615:14;18608:58;18700:11;18695:2;18687:6;18683:15;18676:36;18491:228;:::o;18725:366::-;18867:3;18888:67;18952:2;18947:3;18888:67;:::i;:::-;18881:74;;18964:93;19053:3;18964:93;:::i;:::-;19082:2;19077:3;19073:12;19066:19;;18725:366;;;:::o;19097:419::-;19263:4;19301:2;19290:9;19286:18;19278:26;;19350:9;19344:4;19340:20;19336:1;19325:9;19321:17;19314:47;19378:131;19504:4;19378:131;:::i;:::-;19370:139;;19097:419;;;:::o;19522:236::-;19662:34;19658:1;19650:6;19646:14;19639:58;19731:19;19726:2;19718:6;19714:15;19707:44;19522:236;:::o;19764:366::-;19906:3;19927:67;19991:2;19986:3;19927:67;:::i;:::-;19920:74;;20003:93;20092:3;20003:93;:::i;:::-;20121:2;20116:3;20112:12;20105:19;;19764:366;;;:::o;20136:419::-;20302:4;20340:2;20329:9;20325:18;20317:26;;20389:9;20383:4;20379:20;20375:1;20364:9;20360:17;20353:47;20417:131;20543:4;20417:131;:::i;:::-;20409:139;;20136:419;;;:::o;20561:173::-;20701:25;20697:1;20689:6;20685:14;20678:49;20561:173;:::o;20740:366::-;20882:3;20903:67;20967:2;20962:3;20903:67;:::i;:::-;20896:74;;20979:93;21068:3;20979:93;:::i;:::-;21097:2;21092:3;21088:12;21081:19;;20740:366;;;:::o;21112:419::-;21278:4;21316:2;21305:9;21301:18;21293:26;;21365:9;21359:4;21355:20;21351:1;21340:9;21336:17;21329:47;21393:131;21519:4;21393:131;:::i;:::-;21385:139;;21112:419;;;:::o;21537:175::-;21677:27;21673:1;21665:6;21661:14;21654:51;21537:175;:::o;21718:366::-;21860:3;21881:67;21945:2;21940:3;21881:67;:::i;:::-;21874:74;;21957:93;22046:3;21957:93;:::i;:::-;22075:2;22070:3;22066:12;22059:19;;21718:366;;;:::o;22090:419::-;22256:4;22294:2;22283:9;22279:18;22271:26;;22343:9;22337:4;22333:20;22329:1;22318:9;22314:17;22307:47;22371:131;22497:4;22371:131;:::i;:::-;22363:139;;22090:419;;;:::o;22515:176::-;22655:28;22651:1;22643:6;22639:14;22632:52;22515:176;:::o;22697:366::-;22839:3;22860:67;22924:2;22919:3;22860:67;:::i;:::-;22853:74;;22936:93;23025:3;22936:93;:::i;:::-;23054:2;23049:3;23045:12;23038:19;;22697:366;;;:::o;23069:419::-;23235:4;23273:2;23262:9;23258:18;23250:26;;23322:9;23316:4;23312:20;23308:1;23297:9;23293:17;23286:47;23350:131;23476:4;23350:131;:::i;:::-;23342:139;;23069:419;;;:::o;23494:180::-;23542:77;23539:1;23532:88;23639:4;23636:1;23629:15;23663:4;23660:1;23653:15;23680:180;23728:77;23725:1;23718:88;23825:4;23822:1;23815:15;23849:4;23846:1;23839:15;23866:143;23923:5;23954:6;23948:13;23939:22;;23970:33;23997:5;23970:33;:::i;:::-;23866:143;;;;:::o;24015:351::-;24085:6;24134:2;24122:9;24113:7;24109:23;24105:32;24102:119;;;24140:79;;:::i;:::-;24102:119;24260:1;24285:64;24341:7;24332:6;24321:9;24317:22;24285:64;:::i;:::-;24275:74;;24231:128;24015:351;;;;:::o;24372:85::-;24417:7;24446:5;24435:16;;24372:85;;;:::o;24463:60::-;24491:3;24512:5;24505:12;;24463:60;;;:::o;24529:158::-;24587:9;24620:61;24638:42;24647:32;24673:5;24647:32;:::i;:::-;24638:42;:::i;:::-;24620:61;:::i;:::-;24607:74;;24529:158;;;:::o;24693:147::-;24788:45;24827:5;24788:45;:::i;:::-;24783:3;24776:58;24693:147;;:::o;24846:114::-;24913:6;24947:5;24941:12;24931:22;;24846:114;;;:::o;24966:184::-;25065:11;25099:6;25094:3;25087:19;25139:4;25134:3;25130:14;25115:29;;24966:184;;;;:::o;25156:132::-;25223:4;25246:3;25238:11;;25276:4;25271:3;25267:14;25259:22;;25156:132;;;:::o;25294:108::-;25371:24;25389:5;25371:24;:::i;:::-;25366:3;25359:37;25294:108;;:::o;25408:179::-;25477:10;25498:46;25540:3;25532:6;25498:46;:::i;:::-;25576:4;25571:3;25567:14;25553:28;;25408:179;;;;:::o;25593:113::-;25663:4;25695;25690:3;25686:14;25678:22;;25593:113;;;:::o;25742:732::-;25861:3;25890:54;25938:5;25890:54;:::i;:::-;25960:86;26039:6;26034:3;25960:86;:::i;:::-;25953:93;;26070:56;26120:5;26070:56;:::i;:::-;26149:7;26180:1;26165:284;26190:6;26187:1;26184:13;26165:284;;;26266:6;26260:13;26293:63;26352:3;26337:13;26293:63;:::i;:::-;26286:70;;26379:60;26432:6;26379:60;:::i;:::-;26369:70;;26225:224;26212:1;26209;26205:9;26200:14;;26165:284;;;26169:14;26465:3;26458:10;;25866:608;;;25742:732;;;;:::o;26480:831::-;26743:4;26781:3;26770:9;26766:19;26758:27;;26795:71;26863:1;26852:9;26848:17;26839:6;26795:71;:::i;:::-;26876:80;26952:2;26941:9;26937:18;26928:6;26876:80;:::i;:::-;27003:9;26997:4;26993:20;26988:2;26977:9;26973:18;26966:48;27031:108;27134:4;27125:6;27031:108;:::i;:::-;27023:116;;27149:72;27217:2;27206:9;27202:18;27193:6;27149:72;:::i;:::-;27231:73;27299:3;27288:9;27284:19;27275:6;27231:73;:::i;:::-;26480:831;;;;;;;;:::o;27317:180::-;27365:77;27362:1;27355:88;27462:4;27459:1;27452:15;27486:4;27483:1;27476:15;27503:185;27543:1;27560:20;27578:1;27560:20;:::i;:::-;27555:25;;27594:20;27612:1;27594:20;:::i;:::-;27589:25;;27633:1;27623:35;;27638:18;;:::i;:::-;27623:35;27680:1;27677;27673:9;27668:14;;27503:185;;;;:::o

Swarm Source

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