ETH Price: $2,474.87 (+1.05%)
 

Overview

Max Total Supply

1,000,000,000 HEROES

Holders

526

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
349,380.89920531890752769 HEROES

Value
$0.00
0x3BD1150666C9dCd17392804C225b140443b88080
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:
CryptoHeroes

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
Crypto Heros - HEROES
Website: https://cryptoheroes.vip/
**/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 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 CryptoHeroes is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _FreeWallets;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 1000000000 * 10**_decimals;
    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = 40000;
    uint256 private maxSwap = onePercent / 2;
    uint256 public MaximumOneTrxAmount = onePercent*15/10;
    uint256 public MxWalletSize = onePercent*15/10;

    uint256 private InitialBlockNo;

    uint256 public buyTax = 30;
    uint256 public sellTax = 49;
    
    string private constant _name = "Crypto Heroes";
    string private constant _symbol = "HEROES";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public FeesAddress ;
    address immutable public SecFeesWallet;

    bool private launch = false;

    constructor() {
        FeesAddress  = 0x8aB9d0fcD57419d9F45413FD12609b51507c289e;
        SecFeesWallet = 0x8aB9d0fcD57419d9F45413FD12609b51507c289e;
        _balance[msg.sender] = _totalSupply;
        _FreeWallets[FeesAddress ] = 1;
        _FreeWallets[msg.sender] = 1;
        _FreeWallets[address(this)] = 1;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _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 StartTrading() external onlyOwner {
        require(!launch,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        launch = true;
        InitialBlockNo = block.number;
    }

    function _ExcludedWallet(address wallet) external onlyOwner {
        _FreeWallets[wallet] = 1;
    }

    function _RemoveExcludedWallet(address wallet) external onlyOwner {
        _FreeWallets[wallet] = 0;
    }

    function LibrateFromLimits() external onlyOwner {
        MaximumOneTrxAmount = _totalSupply;
        MxWalletSize = _totalSupply;
    }

    function EditTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax + newSellTax <= 70, "Tax too high");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_FreeWallets[from] == 0 && _FreeWallets[to] == 0)
        {
            require(launch, "Trading not open");
            require(amount <= MaximumOneTrxAmount, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MxWalletSize, "MaxWallet Enabled at launch");
            if (block.number < InitialBlockNo + 3) {
                _tax = (from == uniswapV2Pair) ? 30 : 95;
            } else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minimumSwapAmount) { 
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function RescueETH() external onlyOwner {
        bool success;
        (success, ) = owner().call{value: address(this).balance}("");
    } 

    function ManualSwap(uint256 percent) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        uint256 amtswap = (percent*contractBalance)/100;
        swapTokensForEth(amtswap);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
        bool success;
        (success, ) = SecFeesWallet.call{value: address(this).balance / 10}("");
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    }
    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":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":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"EditTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"FeesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LibrateFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MaximumOneTrxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SecFeesWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_ExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","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":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600260646012600a620000189190620005c7565b633b9aca0062000029919062000618565b62000035919062000692565b62000041919062000692565b600455600a600f60646012600a6200005a9190620005c7565b633b9aca006200006b919062000618565b62000077919062000692565b62000083919062000618565b6200008f919062000692565b600555600a600f60646012600a620000a89190620005c7565b633b9aca00620000b9919062000618565b620000c5919062000692565b620000d1919062000618565b620000dd919062000692565b600655601e60085560316009556000600b60146101000a81548160ff0219169083151502179055503480156200011257600080fd5b506000620001256200042560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350738ab9d0fcd57419d9f45413fd12609b51507c289e73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050738ab9d0fcd57419d9f45413fd12609b51507c289e73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a620002639190620005c7565b633b9aca0062000274919062000618565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003986200042560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003f79190620005c7565b633b9aca0062000408919062000618565b604051620004179190620006db565b60405180910390a3620006f8565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004bb578086048111156200049357620004926200042d565b5b6001851615620004a35780820291505b8081029050620004b3856200045c565b945062000473565b94509492505050565b600082620004d65760019050620005a9565b81620004e65760009050620005a9565b8160018114620004ff57600281146200050a5762000540565b6001915050620005a9565b60ff8411156200051f576200051e6200042d565b5b8360020a9150848211156200053957620005386200042d565b5b50620005a9565b5060208310610133831016604e8410600b84101617156200057a5782820a9050838111156200057457620005736200042d565b5b620005a9565b62000589848484600162000469565b92509050818404811115620005a357620005a26200042d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005d482620005b0565b9150620005e183620005ba565b9250620006107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004c4565b905092915050565b60006200062582620005b0565b91506200063283620005b0565b92508282026200064281620005b0565b915082820484148315176200065c576200065b6200042d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200069f82620005b0565b9150620006ac83620005b0565b925082620006bf57620006be62000663565b5b828204905092915050565b620006d581620005b0565b82525050565b6000602082019050620006f26000830184620006ca565b92915050565b60805160a0516132d86200072c60003960008181610d9d0152611e57015260008181610b770152611eef01526132d86000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063d5a71e7611610064578063d5a71e7614610549578063d7f7385814610560578063dd62ed3e14610589578063f2fde38b146105c65761018c565b8063a9059cbb146104ca578063bf6a1c0d14610507578063cc1776d31461051e5761018c565b806370a08231146103ca578063715018a6146104075780638da5cb5b1461041e57806395d89b411461044957806397b2ebfe14610474578063a414f3e21461049f5761018c565b8063313ce5671161013e5780634f7041a5116101185780634f7041a514610322578063506caca11461034d57806356ca8a41146103765780636cae5a691461039f5761018c565b8063313ce567146102a357806349bd5a5e146102ce5780634e23803f146102f95761018c565b806306fdde0314610191578063095ea7b3146101bc578063148798fe146101f957806318160ddd14610210578063230b33501461023b57806323b872dd146102665761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105ef565b6040516101b3919061237d565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612438565b61062c565b6040516101f09190612493565b60405180910390f35b34801561020557600080fd5b5061020e61064a565b005b34801561021c57600080fd5b50610225610757565b60405161023291906124bd565b60405180910390f35b34801561024757600080fd5b5061025061077b565b60405161025d91906124bd565b60405180910390f35b34801561027257600080fd5b5061028d600480360381019061028891906124d8565b610781565b60405161029a9190612493565b60405180910390f35b3480156102af57600080fd5b506102b86108a1565b6040516102c59190612547565b60405180910390f35b3480156102da57600080fd5b506102e36108aa565b6040516102f09190612571565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b919061258c565b6108d0565b005b34801561032e57600080fd5b506103376109ad565b60405161034491906124bd565b60405180910390f35b34801561035957600080fd5b50610374600480360381019061036f91906125b9565b6109b3565b005b34801561038257600080fd5b5061039d600480360381019061039891906125f9565b610aa9565b005b3480156103ab57600080fd5b506103b4610b75565b6040516103c19190612571565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec919061258c565b610b99565b6040516103fe91906124bd565b60405180910390f35b34801561041357600080fd5b5061041c610be2565b005b34801561042a57600080fd5b50610433610d35565b6040516104409190612571565b60405180910390f35b34801561045557600080fd5b5061045e610d5e565b60405161046b919061237d565b60405180910390f35b34801561048057600080fd5b50610489610d9b565b6040516104969190612571565b60405180910390f35b3480156104ab57600080fd5b506104b4610dbf565b6040516104c191906124bd565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190612438565b610dc5565b6040516104fe9190612493565b60405180910390f35b34801561051357600080fd5b5061051c610de3565b005b34801561052a57600080fd5b50610533611307565b60405161054091906124bd565b60405180910390f35b34801561055557600080fd5b5061055e61130d565b005b34801561056c57600080fd5b506105876004803603810190610582919061258c565b6113ea565b005b34801561059557600080fd5b506105b060048036038101906105ab9190612626565b6114c7565b6040516105bd91906124bd565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e8919061258c565b61154e565b005b60606040518060400160405280600d81526020017f43727970746f204865726f657300000000000000000000000000000000000000815250905090565b60006106406106396115ef565b84846115f7565b6001905092915050565b6106526115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d6906126b2565b60405180910390fd5b60006106e9610d35565b73ffffffffffffffffffffffffffffffffffffffff164760405161070c90612703565b60006040518083038185875af1925050503d8060008114610749576040519150601f19603f3d011682016040523d82523d6000602084013e61074e565b606091505b50508091505050565b60006012600a610767919061287a565b633b9aca0061077691906128c5565b905090565b60055481565b600061078e8484846117c0565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d96115ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108955782811015610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790612979565b60405180910390fd5b6108948561088c6115ef565b8584036115f7565b5b60019150509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108d86115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c906126b2565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60085481565b6109bb6115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f906126b2565b60405180910390fd5b60468183610a569190612999565b1115610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90612a19565b60405180910390fd5b81600881905550806009819055505050565b610ab16115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b35906126b2565b60405180910390fd5b6000610b4930610b99565b9050600060648284610b5b91906128c5565b610b659190612a68565b9050610b7081611c14565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bea6115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e906126b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4845524f45530000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b6000610dd9610dd26115ef565b84846117c0565b6001905092915050565b610deb6115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906126b2565b60405180910390fd5b600b60149054906101000a900460ff1615610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612ae5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae9190612b1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105b9190612b1a565b6040518363ffffffff1660e01b8152600401611078929190612b47565b6020604051808303816000875af1158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190612b1a565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061114430600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a611130919061287a565b633b9aca0061113f91906128c5565b6115f7565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061118d30610b99565b600080611198610d35565b426040518863ffffffff1660e01b81526004016111ba96959493929190612bb5565b60606040518083038185885af11580156111d8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111fd9190612c2b565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161129f929190612c7e565b6020604051808303816000875af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e29190612cd3565b506001600b60146101000a81548160ff02191690831515021790555043600781905550565b60095481565b6113156115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611399906126b2565b60405180910390fd5b6012600a6113b0919061287a565b633b9aca006113bf91906128c5565b6005819055506012600a6113d3919061287a565b633b9aca006113e291906128c5565b600681905550565b6113f26115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611476906126b2565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115566115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da906126b2565b60405180910390fd5b6115ec81611f7e565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90612d72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612e04565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b391906124bd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690612e96565b60405180910390fd5b60008111611872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186990612f02565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561190157506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611c0257600b60149054906101000a900460ff16611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c90612f6e565b60405180910390fd5b60055482111561199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190612fda565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a26575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a845760065482611a3885610b99565b611a429190612999565b1115611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613046565b60405180910390fd5b5b6003600754611a939190612999565b431015611b0357600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611af657605f611af9565b601e5b60ff169050611c01565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b62576008549050611c00565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bff576000611bc230610b99565b9050619c40811115611bf8576000600454905083821115611be1578391505b80821115611bed578091505b611bf682611c14565b505b6009549150505b5b5b5b611c0e848484846120aa565b50505050565b6000600267ffffffffffffffff811115611c3157611c30613066565b5b604051908082528060200260200182016040528015611c5f5781602001602082028036833780820191505090505b5090503081600081518110611c7757611c76613095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d429190612b1a565b81600181518110611d5657611d55613095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dbd30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f7565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e21959493929190613182565b600060405180830381600087803b158015611e3b57600080fd5b505af1158015611e4f573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a47611e999190612a68565b604051611ea590612703565b60006040518083038185875af1925050503d8060008114611ee2576040519150601f19603f3d011682016040523d82523d6000602084013e611ee7565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611f3190612703565b60006040518083038185875af1925050503d8060008114611f6e576040519150601f19603f3d011682016040523d82523d6000602084013e611f73565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe49061324e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000606482846120ba91906128c5565b6120c49190612a68565b9050600081846120d4919061326e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612121919061326e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121af9190612999565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223d9190612999565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122dd91906124bd565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561232757808201518184015260208101905061230c565b60008484015250505050565b6000601f19601f8301169050919050565b600061234f826122ed565b61235981856122f8565b9350612369818560208601612309565b61237281612333565b840191505092915050565b600060208201905081810360008301526123978184612344565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123cf826123a4565b9050919050565b6123df816123c4565b81146123ea57600080fd5b50565b6000813590506123fc816123d6565b92915050565b6000819050919050565b61241581612402565b811461242057600080fd5b50565b6000813590506124328161240c565b92915050565b6000806040838503121561244f5761244e61239f565b5b600061245d858286016123ed565b925050602061246e85828601612423565b9150509250929050565b60008115159050919050565b61248d81612478565b82525050565b60006020820190506124a86000830184612484565b92915050565b6124b781612402565b82525050565b60006020820190506124d260008301846124ae565b92915050565b6000806000606084860312156124f1576124f061239f565b5b60006124ff868287016123ed565b9350506020612510868287016123ed565b925050604061252186828701612423565b9150509250925092565b600060ff82169050919050565b6125418161252b565b82525050565b600060208201905061255c6000830184612538565b92915050565b61256b816123c4565b82525050565b60006020820190506125866000830184612562565b92915050565b6000602082840312156125a2576125a161239f565b5b60006125b0848285016123ed565b91505092915050565b600080604083850312156125d0576125cf61239f565b5b60006125de85828601612423565b92505060206125ef85828601612423565b9150509250929050565b60006020828403121561260f5761260e61239f565b5b600061261d84828501612423565b91505092915050565b6000806040838503121561263d5761263c61239f565b5b600061264b858286016123ed565b925050602061265c858286016123ed565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061269c6020836122f8565b91506126a782612666565b602082019050919050565b600060208201905081810360008301526126cb8161268f565b9050919050565b600081905092915050565b50565b60006126ed6000836126d2565b91506126f8826126dd565b600082019050919050565b600061270e826126e0565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561279e5780860481111561277a57612779612718565b5b60018516156127895780820291505b808102905061279785612747565b945061275e565b94509492505050565b6000826127b75760019050612873565b816127c55760009050612873565b81600181146127db57600281146127e557612814565b6001915050612873565b60ff8411156127f7576127f6612718565b5b8360020a91508482111561280e5761280d612718565b5b50612873565b5060208310610133831016604e8410600b84101617156128495782820a90508381111561284457612843612718565b5b612873565b6128568484846001612754565b9250905081840481111561286d5761286c612718565b5b81810290505b9392505050565b600061288582612402565b91506128908361252b565b92506128bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127a7565b905092915050565b60006128d082612402565b91506128db83612402565b92508282026128e981612402565b91508282048414831517612900576128ff612718565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006129636028836122f8565b915061296e82612907565b604082019050919050565b6000602082019050818103600083015261299281612956565b9050919050565b60006129a482612402565b91506129af83612402565b92508282019050808211156129c7576129c6612718565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612a03600c836122f8565b9150612a0e826129cd565b602082019050919050565b60006020820190508181036000830152612a32816129f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a7382612402565b9150612a7e83612402565b925082612a8e57612a8d612a39565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612acf6017836122f8565b9150612ada82612a99565b602082019050919050565b60006020820190508181036000830152612afe81612ac2565b9050919050565b600081519050612b14816123d6565b92915050565b600060208284031215612b3057612b2f61239f565b5b6000612b3e84828501612b05565b91505092915050565b6000604082019050612b5c6000830185612562565b612b696020830184612562565b9392505050565b6000819050919050565b6000819050919050565b6000612b9f612b9a612b9584612b70565b612b7a565b612402565b9050919050565b612baf81612b84565b82525050565b600060c082019050612bca6000830189612562565b612bd760208301886124ae565b612be46040830187612ba6565b612bf16060830186612ba6565b612bfe6080830185612562565b612c0b60a08301846124ae565b979650505050505050565b600081519050612c258161240c565b92915050565b600080600060608486031215612c4457612c4361239f565b5b6000612c5286828701612c16565b9350506020612c6386828701612c16565b9250506040612c7486828701612c16565b9150509250925092565b6000604082019050612c936000830185612562565b612ca060208301846124ae565b9392505050565b612cb081612478565b8114612cbb57600080fd5b50565b600081519050612ccd81612ca7565b92915050565b600060208284031215612ce957612ce861239f565b5b6000612cf784828501612cbe565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d5c6024836122f8565b9150612d6782612d00565b604082019050919050565b60006020820190508181036000830152612d8b81612d4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612dee6022836122f8565b9150612df982612d92565b604082019050919050565b60006020820190508181036000830152612e1d81612de1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e806025836122f8565b9150612e8b82612e24565b604082019050919050565b60006020820190508181036000830152612eaf81612e73565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612eec601c836122f8565b9150612ef782612eb6565b602082019050919050565b60006020820190508181036000830152612f1b81612edf565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612f586010836122f8565b9150612f6382612f22565b602082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612fc46017836122f8565b9150612fcf82612f8e565b602082019050919050565b60006020820190508181036000830152612ff381612fb7565b9050919050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000613030601b836122f8565b915061303b82612ffa565b602082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130f9816123c4565b82525050565b600061310b83836130f0565b60208301905092915050565b6000602082019050919050565b600061312f826130c4565b61313981856130cf565b9350613144836130e0565b8060005b8381101561317557815161315c88826130ff565b975061316783613117565b925050600181019050613148565b5085935050505092915050565b600060a08201905061319760008301886124ae565b6131a46020830187612ba6565b81810360408301526131b68186613124565b90506131c56060830185612562565b6131d260808301846124ae565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132386026836122f8565b9150613243826131dc565b604082019050919050565b600060208201905081810360008301526132678161322b565b9050919050565b600061327982612402565b915061328483612402565b925082820390508181111561329c5761329b612718565b5b9291505056fea26469706673582212203329fe77362ab35628541659fbab1f107f50d20f73317492854f9f57d384d4bf64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063d5a71e7611610064578063d5a71e7614610549578063d7f7385814610560578063dd62ed3e14610589578063f2fde38b146105c65761018c565b8063a9059cbb146104ca578063bf6a1c0d14610507578063cc1776d31461051e5761018c565b806370a08231146103ca578063715018a6146104075780638da5cb5b1461041e57806395d89b411461044957806397b2ebfe14610474578063a414f3e21461049f5761018c565b8063313ce5671161013e5780634f7041a5116101185780634f7041a514610322578063506caca11461034d57806356ca8a41146103765780636cae5a691461039f5761018c565b8063313ce567146102a357806349bd5a5e146102ce5780634e23803f146102f95761018c565b806306fdde0314610191578063095ea7b3146101bc578063148798fe146101f957806318160ddd14610210578063230b33501461023b57806323b872dd146102665761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105ef565b6040516101b3919061237d565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612438565b61062c565b6040516101f09190612493565b60405180910390f35b34801561020557600080fd5b5061020e61064a565b005b34801561021c57600080fd5b50610225610757565b60405161023291906124bd565b60405180910390f35b34801561024757600080fd5b5061025061077b565b60405161025d91906124bd565b60405180910390f35b34801561027257600080fd5b5061028d600480360381019061028891906124d8565b610781565b60405161029a9190612493565b60405180910390f35b3480156102af57600080fd5b506102b86108a1565b6040516102c59190612547565b60405180910390f35b3480156102da57600080fd5b506102e36108aa565b6040516102f09190612571565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b919061258c565b6108d0565b005b34801561032e57600080fd5b506103376109ad565b60405161034491906124bd565b60405180910390f35b34801561035957600080fd5b50610374600480360381019061036f91906125b9565b6109b3565b005b34801561038257600080fd5b5061039d600480360381019061039891906125f9565b610aa9565b005b3480156103ab57600080fd5b506103b4610b75565b6040516103c19190612571565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec919061258c565b610b99565b6040516103fe91906124bd565b60405180910390f35b34801561041357600080fd5b5061041c610be2565b005b34801561042a57600080fd5b50610433610d35565b6040516104409190612571565b60405180910390f35b34801561045557600080fd5b5061045e610d5e565b60405161046b919061237d565b60405180910390f35b34801561048057600080fd5b50610489610d9b565b6040516104969190612571565b60405180910390f35b3480156104ab57600080fd5b506104b4610dbf565b6040516104c191906124bd565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190612438565b610dc5565b6040516104fe9190612493565b60405180910390f35b34801561051357600080fd5b5061051c610de3565b005b34801561052a57600080fd5b50610533611307565b60405161054091906124bd565b60405180910390f35b34801561055557600080fd5b5061055e61130d565b005b34801561056c57600080fd5b506105876004803603810190610582919061258c565b6113ea565b005b34801561059557600080fd5b506105b060048036038101906105ab9190612626565b6114c7565b6040516105bd91906124bd565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e8919061258c565b61154e565b005b60606040518060400160405280600d81526020017f43727970746f204865726f657300000000000000000000000000000000000000815250905090565b60006106406106396115ef565b84846115f7565b6001905092915050565b6106526115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d6906126b2565b60405180910390fd5b60006106e9610d35565b73ffffffffffffffffffffffffffffffffffffffff164760405161070c90612703565b60006040518083038185875af1925050503d8060008114610749576040519150601f19603f3d011682016040523d82523d6000602084013e61074e565b606091505b50508091505050565b60006012600a610767919061287a565b633b9aca0061077691906128c5565b905090565b60055481565b600061078e8484846117c0565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d96115ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108955782811015610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790612979565b60405180910390fd5b6108948561088c6115ef565b8584036115f7565b5b60019150509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108d86115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c906126b2565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60085481565b6109bb6115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f906126b2565b60405180910390fd5b60468183610a569190612999565b1115610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90612a19565b60405180910390fd5b81600881905550806009819055505050565b610ab16115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b35906126b2565b60405180910390fd5b6000610b4930610b99565b9050600060648284610b5b91906128c5565b610b659190612a68565b9050610b7081611c14565b505050565b7f0000000000000000000000008ab9d0fcd57419d9f45413fd12609b51507c289e81565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bea6115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e906126b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4845524f45530000000000000000000000000000000000000000000000000000815250905090565b7f0000000000000000000000008ab9d0fcd57419d9f45413fd12609b51507c289e81565b60065481565b6000610dd9610dd26115ef565b84846117c0565b6001905092915050565b610deb6115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906126b2565b60405180910390fd5b600b60149054906101000a900460ff1615610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612ae5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fae9190612b1a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105b9190612b1a565b6040518363ffffffff1660e01b8152600401611078929190612b47565b6020604051808303816000875af1158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190612b1a565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061114430600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a611130919061287a565b633b9aca0061113f91906128c5565b6115f7565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061118d30610b99565b600080611198610d35565b426040518863ffffffff1660e01b81526004016111ba96959493929190612bb5565b60606040518083038185885af11580156111d8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111fd9190612c2b565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161129f929190612c7e565b6020604051808303816000875af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e29190612cd3565b506001600b60146101000a81548160ff02191690831515021790555043600781905550565b60095481565b6113156115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611399906126b2565b60405180910390fd5b6012600a6113b0919061287a565b633b9aca006113bf91906128c5565b6005819055506012600a6113d3919061287a565b633b9aca006113e291906128c5565b600681905550565b6113f26115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611476906126b2565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115566115ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da906126b2565b60405180910390fd5b6115ec81611f7e565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90612d72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612e04565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b391906124bd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690612e96565b60405180910390fd5b60008111611872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186990612f02565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561190157506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611c0257600b60149054906101000a900460ff16611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c90612f6e565b60405180910390fd5b60055482111561199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190612fda565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a26575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a845760065482611a3885610b99565b611a429190612999565b1115611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613046565b60405180910390fd5b5b6003600754611a939190612999565b431015611b0357600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611af657605f611af9565b601e5b60ff169050611c01565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b62576008549050611c00565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bff576000611bc230610b99565b9050619c40811115611bf8576000600454905083821115611be1578391505b80821115611bed578091505b611bf682611c14565b505b6009549150505b5b5b5b611c0e848484846120aa565b50505050565b6000600267ffffffffffffffff811115611c3157611c30613066565b5b604051908082528060200260200182016040528015611c5f5781602001602082028036833780820191505090505b5090503081600081518110611c7757611c76613095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d429190612b1a565b81600181518110611d5657611d55613095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dbd30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f7565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e21959493929190613182565b600060405180830381600087803b158015611e3b57600080fd5b505af1158015611e4f573d6000803e3d6000fd5b5050505060007f0000000000000000000000008ab9d0fcd57419d9f45413fd12609b51507c289e73ffffffffffffffffffffffffffffffffffffffff16600a47611e999190612a68565b604051611ea590612703565b60006040518083038185875af1925050503d8060008114611ee2576040519150601f19603f3d011682016040523d82523d6000602084013e611ee7565b606091505b5050809150507f0000000000000000000000008ab9d0fcd57419d9f45413fd12609b51507c289e73ffffffffffffffffffffffffffffffffffffffff1647604051611f3190612703565b60006040518083038185875af1925050503d8060008114611f6e576040519150601f19603f3d011682016040523d82523d6000602084013e611f73565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe49061324e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000606482846120ba91906128c5565b6120c49190612a68565b9050600081846120d4919061326e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612121919061326e565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121af9190612999565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223d9190612999565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122dd91906124bd565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561232757808201518184015260208101905061230c565b60008484015250505050565b6000601f19601f8301169050919050565b600061234f826122ed565b61235981856122f8565b9350612369818560208601612309565b61237281612333565b840191505092915050565b600060208201905081810360008301526123978184612344565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123cf826123a4565b9050919050565b6123df816123c4565b81146123ea57600080fd5b50565b6000813590506123fc816123d6565b92915050565b6000819050919050565b61241581612402565b811461242057600080fd5b50565b6000813590506124328161240c565b92915050565b6000806040838503121561244f5761244e61239f565b5b600061245d858286016123ed565b925050602061246e85828601612423565b9150509250929050565b60008115159050919050565b61248d81612478565b82525050565b60006020820190506124a86000830184612484565b92915050565b6124b781612402565b82525050565b60006020820190506124d260008301846124ae565b92915050565b6000806000606084860312156124f1576124f061239f565b5b60006124ff868287016123ed565b9350506020612510868287016123ed565b925050604061252186828701612423565b9150509250925092565b600060ff82169050919050565b6125418161252b565b82525050565b600060208201905061255c6000830184612538565b92915050565b61256b816123c4565b82525050565b60006020820190506125866000830184612562565b92915050565b6000602082840312156125a2576125a161239f565b5b60006125b0848285016123ed565b91505092915050565b600080604083850312156125d0576125cf61239f565b5b60006125de85828601612423565b92505060206125ef85828601612423565b9150509250929050565b60006020828403121561260f5761260e61239f565b5b600061261d84828501612423565b91505092915050565b6000806040838503121561263d5761263c61239f565b5b600061264b858286016123ed565b925050602061265c858286016123ed565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061269c6020836122f8565b91506126a782612666565b602082019050919050565b600060208201905081810360008301526126cb8161268f565b9050919050565b600081905092915050565b50565b60006126ed6000836126d2565b91506126f8826126dd565b600082019050919050565b600061270e826126e0565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561279e5780860481111561277a57612779612718565b5b60018516156127895780820291505b808102905061279785612747565b945061275e565b94509492505050565b6000826127b75760019050612873565b816127c55760009050612873565b81600181146127db57600281146127e557612814565b6001915050612873565b60ff8411156127f7576127f6612718565b5b8360020a91508482111561280e5761280d612718565b5b50612873565b5060208310610133831016604e8410600b84101617156128495782820a90508381111561284457612843612718565b5b612873565b6128568484846001612754565b9250905081840481111561286d5761286c612718565b5b81810290505b9392505050565b600061288582612402565b91506128908361252b565b92506128bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127a7565b905092915050565b60006128d082612402565b91506128db83612402565b92508282026128e981612402565b91508282048414831517612900576128ff612718565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006129636028836122f8565b915061296e82612907565b604082019050919050565b6000602082019050818103600083015261299281612956565b9050919050565b60006129a482612402565b91506129af83612402565b92508282019050808211156129c7576129c6612718565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612a03600c836122f8565b9150612a0e826129cd565b602082019050919050565b60006020820190508181036000830152612a32816129f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a7382612402565b9150612a7e83612402565b925082612a8e57612a8d612a39565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612acf6017836122f8565b9150612ada82612a99565b602082019050919050565b60006020820190508181036000830152612afe81612ac2565b9050919050565b600081519050612b14816123d6565b92915050565b600060208284031215612b3057612b2f61239f565b5b6000612b3e84828501612b05565b91505092915050565b6000604082019050612b5c6000830185612562565b612b696020830184612562565b9392505050565b6000819050919050565b6000819050919050565b6000612b9f612b9a612b9584612b70565b612b7a565b612402565b9050919050565b612baf81612b84565b82525050565b600060c082019050612bca6000830189612562565b612bd760208301886124ae565b612be46040830187612ba6565b612bf16060830186612ba6565b612bfe6080830185612562565b612c0b60a08301846124ae565b979650505050505050565b600081519050612c258161240c565b92915050565b600080600060608486031215612c4457612c4361239f565b5b6000612c5286828701612c16565b9350506020612c6386828701612c16565b9250506040612c7486828701612c16565b9150509250925092565b6000604082019050612c936000830185612562565b612ca060208301846124ae565b9392505050565b612cb081612478565b8114612cbb57600080fd5b50565b600081519050612ccd81612ca7565b92915050565b600060208284031215612ce957612ce861239f565b5b6000612cf784828501612cbe565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d5c6024836122f8565b9150612d6782612d00565b604082019050919050565b60006020820190508181036000830152612d8b81612d4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612dee6022836122f8565b9150612df982612d92565b604082019050919050565b60006020820190508181036000830152612e1d81612de1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e806025836122f8565b9150612e8b82612e24565b604082019050919050565b60006020820190508181036000830152612eaf81612e73565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612eec601c836122f8565b9150612ef782612eb6565b602082019050919050565b60006020820190508181036000830152612f1b81612edf565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612f586010836122f8565b9150612f6382612f22565b602082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612fc46017836122f8565b9150612fcf82612f8e565b602082019050919050565b60006020820190508181036000830152612ff381612fb7565b9050919050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000613030601b836122f8565b915061303b82612ffa565b602082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130f9816123c4565b82525050565b600061310b83836130f0565b60208301905092915050565b6000602082019050919050565b600061312f826130c4565b61313981856130cf565b9350613144836130e0565b8060005b8381101561317557815161315c88826130ff565b975061316783613117565b925050600181019050613148565b5085935050505092915050565b600060a08201905061319760008301886124ae565b6131a46020830187612ba6565b81810360408301526131b68186613124565b90506131c56060830185612562565b6131d260808301846124ae565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132386026836122f8565b9150613243826131dc565b604082019050919050565b600060208201905081810360008301526132678161322b565b9050919050565b600061327982612402565b915061328483612402565b925082820390508181111561329c5761329b612718565b5b9291505056fea26469706673582212203329fe77362ab35628541659fbab1f107f50d20f73317492854f9f57d384d4bf64736f6c63430008130033

Deployed Bytecode Sourcemap

2805:7649:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4319:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5153:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9386:142;;;;;;;;;;;;;:::i;:::-;;4596:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3375:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4505:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3756:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6946:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3529:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7321:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9537:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3791:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4704:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1857:148;;;;;;;;;;;;;:::i;:::-;;1289:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4410:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3835:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3435:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4830:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6252:686;;;;;;;;;;;;;:::i;:::-;;3562:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7174:139;;;;;;;;;;;;;:::i;:::-;;7057:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5003:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1503:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4319:83;4356:13;4389:5;;;;;;;;;;;;;;;;;4382:12;;4319:83;:::o;5153:160::-;5228:4;5244:39;5253:12;:10;:12::i;:::-;5267:7;5276:6;5244:8;:39::i;:::-;5301:4;5294:11;;5153:160;;;;:::o;9386:142::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9437:12:::1;9474:7;:5;:7::i;:::-;:12;;9494:21;9474:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9460:60;;;;;9426:102;9386:142::o:0;4596:100::-;4649:7;3126:2;3188;:13;;;;:::i;:::-;3175:10;:26;;;;:::i;:::-;4669:19;;4596:100;:::o;3375:53::-;;;;:::o;5321:578::-;5419:4;5436:36;5446:6;5454:9;5465:6;5436:9;:36::i;:::-;5485:24;5512:11;:19;5524:6;5512:19;;;;;;;;;;;;;;;:33;5532:12;:10;:12::i;:::-;5512:33;;;;;;;;;;;;;;;;5485:60;;5579:17;5559:16;:37;5556:314;;5660:6;5640:16;:26;;5614:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5786:57;5795:6;5803:12;:10;:12::i;:::-;5836:6;5817:16;:25;5786:8;:57::i;:::-;5556:314;5887:4;5880:11;;;5321:578;;;;;:::o;4505:83::-;4546:5;3126:2;4564:16;;4505:83;:::o;3756:28::-;;;;;;;;;;;;;:::o;6946:103::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7040:1:::1;7017:12;:20;7030:6;7017:20;;;;;;;;;;;;;;;:24;;;;6946:103:::0;:::o;3529:26::-;;;;:::o;7321:209::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7443:2:::1;7429:10;7417:9;:22;;;;:::i;:::-;:28;;7409:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7482:9;7473:6;:18;;;;7512:10;7502:7;:20;;;;7321:209:::0;;:::o;9537:219::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9604:23:::1;9630:24;9648:4;9630:9;:24::i;:::-;9604:50;;9665:15;9709:3;9692:15;9684:7;:23;;;;:::i;:::-;9683:29;;;;:::i;:::-;9665:47;;9723:25;9740:7;9723:16;:25::i;:::-;9593:163;;9537:219:::0;:::o;3791:36::-;;;:::o;4704:118::-;4770:7;4797:8;:17;4806:7;4797:17;;;;;;;;;;;;;;;;4790:24;;4704:118;;;:::o;1857:148::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1964:1:::1;1927:40;;1948:6;::::0;::::1;;;;;;;;1927:40;;;;;;;;;;;;1995:1;1978:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1857:148::o:0;1289:79::-;1327:7;1354:6;;;;;;;;;;;1347:13;;1289:79;:::o;4410:87::-;4449:13;4482:7;;;;;;;;;;;;;;;;;4475:14;;4410:87;:::o;3835:38::-;;;:::o;3435:46::-;;;;:::o;4830:165::-;4907:4;4923:42;4933:12;:10;:12::i;:::-;4947:9;4958:6;4923:9;:42::i;:::-;4983:4;4976:11;;4830:165;;;;:::o;6252:686::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6315:6:::1;;;;;;;;;;;6314:7;6306:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6396;6359:15;;:80;;;;;;;;;;;;;;;;;;6484:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6466:55;;;6530:4;6537:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6466:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6450:13;;:110;;;;;;;;;;;;;;;;;;6571:63;6588:4;6603:15;;;;;;;;;;;3126:2;3188;:13;;;;:::i;:::-;3175:10;:26;;;;:::i;:::-;6571:8;:63::i;:::-;6655:15;;;;;;;;;;;:31;;;6694:21;6725:4;6731:24;6749:4;6731:9;:24::i;:::-;6756:1;6758::::0;6760:7:::1;:5;:7::i;:::-;6768:15;6655:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6802:13;;;;;;;;;;;6795:29;;;6833:15;;;;;;;;;;;6851:14;6795:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6886:4;6877:6;;:13;;;;;;;;;;;;;;;;;;6918:12;6901:14;:29;;;;6252:686::o:0;3562:27::-;;;;:::o;7174:139::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3126:2:::1;3188;:13;;;;:::i;:::-;3175:10;:26;;;;:::i;:::-;7233:19;:34;;;;3126:2;3188;:13;;;;:::i;:::-;3175:10;:26;;;;:::i;:::-;7278:12;:27;;;;7174:139::o:0;7057:109::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7157:1:::1;7134:12;:20;7147:6;7134:20;;;;;;;;;;;;;;;:24;;;;7057:109:::0;:::o;5003:142::-;5084:7;5110:11;:18;5122:5;5110:18;;;;;;;;;;;;;;;:27;5129:7;5110:27;;;;;;;;;;;;;;;;5103:34;;5003:142;;;;:::o;1503:109::-;1426:12;:10;:12::i;:::-;1416:22;;:6;;;;;;;;;;:22;;;1408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1576:28:::1;1595:8;1576:18;:28::i;:::-;1503:109:::0;:::o;164:98::-;217:7;244:10;237:17;;164:98;:::o;5907:335::-;6017:1;6000:19;;:5;:19;;;5992:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6098:1;6079:21;;:7;:21;;;6071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6180:6;6150:11;:18;6162:5;6150:18;;;;;;;;;;;;;;;:27;6169:7;6150:27;;;;;;;;;;;;;;;:36;;;;6218:7;6202:32;;6211:5;6202:32;;;6227:6;6202:32;;;;;;:::i;:::-;;;;;;;;5907:335;;;:::o;7980:1398::-;8084:1;8068:18;;:4;:18;;;8060:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8156:1;8147:6;:10;8139:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8201:12;8254:1;8232:12;:18;8245:4;8232:18;;;;;;;;;;;;;;;;:23;:48;;;;;8279:1;8259:12;:16;8272:2;8259:16;;;;;;;;;;;;;;;;:21;8232:48;8228:1094;;;8314:6;;;;;;;;;;;8306:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8374:19;;8364:6;:29;;8356:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8446:13;;;;;;;;;;;8440:19;;:2;:19;;;;:44;;;;;8477:6;8463:21;;:2;:21;;;;8440:44;8436:128;;;8520:12;;8510:6;8494:13;8504:2;8494:9;:13::i;:::-;:22;;;;:::i;:::-;:38;;8486:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8436:128;8615:1;8598:14;;:18;;;;:::i;:::-;8583:12;:33;8579:732;;;8653:13;;;;;;;;;;;8645:21;;:4;:21;;;8644:33;;8675:2;8644:33;;;8670:2;8644:33;8637:40;;;;8579:732;;;8730:13;;;;;;;;;;;8722:21;;:4;:21;;;8718:578;;8775:6;;8768:13;;8718:578;;;8817:13;;;;;;;;;;;8811:19;;:2;:19;;;8807:489;;8855:20;8878:24;8896:4;8878:9;:24::i;:::-;8855:47;;3316:5;8929:12;:32;8925:315;;;8991:12;9006:7;;8991:22;;9059:6;9044:12;:21;9040:48;;;9082:6;9067:21;;9040:48;9134:4;9119:12;:19;9115:44;;;9155:4;9140:19;;9115:44;9186:30;9203:12;9186:16;:30::i;:::-;8963:277;8925:315;9269:7;;9262:14;;8832:464;8807:489;8718:578;8579:732;8228:1094;9332:38;9347:4;9353:2;9357:6;9365:4;9332:14;:38::i;:::-;8049:1329;7980:1398;;;:::o;9764:652::-;9830:21;9868:1;9854:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9830:40;;9899:4;9881;9886:1;9881:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9925:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9915:4;9920:1;9915:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;9958:62;9975:4;9990:15;;;;;;;;;;;10008:11;9958:8;:62::i;:::-;10031:15;;;;;;;;;;;:66;;;10112:11;10138:1;10154:4;10181;10201:15;10031:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10238:12;10275:13;:18;;10325:2;10301:21;:26;;;;:::i;:::-;10275:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10261:71;;;;;10357:11;:17;;10382:21;10357:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10343:65;;;;;9819:597;;9764:652;:::o;1620:229::-;1714:1;1694:22;;:8;:22;;;1686:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1804:8;1775:38;;1796:6;;;;;;;;;;1775:38;;;;;;;;;;;;1833:8;1824:6;;:17;;;;;;;;;;;;;;;;;;1620:229;:::o;7538:434::-;7637:17;7675:3;7667:4;7658:6;:13;;;;:::i;:::-;7657:21;;;;:::i;:::-;7637:41;;7689:22;7723:9;7714:6;:18;;;;:::i;:::-;7689:43;;7779:6;7762:8;:14;7771:4;7762:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;7745:8;:14;7754:4;7745:14;;;;;;;;;;;;;;;:40;;;;7826:14;7811:8;:12;7820:2;7811:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7796:8;:12;7805:2;7796:12;;;;;;;;;;;;;;;:44;;;;7903:9;7877:8;:23;7894:4;7877:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;7851:8;:23;7868:4;7851:23;;;;;;;;;;;;;;;:61;;;;7945:2;7930:34;;7939:4;7930:34;;;7949:14;7930:34;;;;;;:::i;:::-;;;;;;;;7626:346;;7538:434;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:182::-;6975:34;6971:1;6963:6;6959:14;6952:58;6835:182;:::o;7023:366::-;7165:3;7186:67;7250:2;7245:3;7186:67;:::i;:::-;7179:74;;7262:93;7351:3;7262:93;:::i;:::-;7380:2;7375:3;7371:12;7364:19;;7023:366;;;:::o;7395:419::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7648:9;7642:4;7638:20;7634:1;7623:9;7619:17;7612:47;7676:131;7802:4;7676:131;:::i;:::-;7668:139;;7395:419;;;:::o;7820:147::-;7921:11;7958:3;7943:18;;7820:147;;;;:::o;7973:114::-;;:::o;8093:398::-;8252:3;8273:83;8354:1;8349:3;8273:83;:::i;:::-;8266:90;;8365:93;8454:3;8365:93;:::i;:::-;8483:1;8478:3;8474:11;8467:18;;8093:398;;;:::o;8497:379::-;8681:3;8703:147;8846:3;8703:147;:::i;:::-;8696:154;;8867:3;8860:10;;8497:379;;;:::o;8882:180::-;8930:77;8927:1;8920:88;9027:4;9024:1;9017:15;9051:4;9048:1;9041:15;9068:102;9110:8;9157:5;9154:1;9150:13;9129:34;;9068:102;;;:::o;9176:848::-;9237:5;9244:4;9268:6;9259:15;;9292:5;9283:14;;9306:712;9327:1;9317:8;9314:15;9306:712;;;9422:4;9417:3;9413:14;9407:4;9404:24;9401:50;;;9431:18;;:::i;:::-;9401:50;9481:1;9471:8;9467:16;9464:451;;;9896:4;9889:5;9885:16;9876:25;;9464:451;9946:4;9940;9936:15;9928:23;;9976:32;9999:8;9976:32;:::i;:::-;9964:44;;9306:712;;;9176:848;;;;;;;:::o;10030:1073::-;10084:5;10275:8;10265:40;;10296:1;10287:10;;10298:5;;10265:40;10324:4;10314:36;;10341:1;10332:10;;10343:5;;10314:36;10410:4;10458:1;10453:27;;;;10494:1;10489:191;;;;10403:277;;10453:27;10471:1;10462:10;;10473:5;;;10489:191;10534:3;10524:8;10521:17;10518:43;;;10541:18;;:::i;:::-;10518:43;10590:8;10587:1;10583:16;10574:25;;10625:3;10618:5;10615:14;10612:40;;;10632:18;;:::i;:::-;10612:40;10665:5;;;10403:277;;10789:2;10779:8;10776:16;10770:3;10764:4;10761:13;10757:36;10739:2;10729:8;10726:16;10721:2;10715:4;10712:12;10708:35;10692:111;10689:246;;;10845:8;10839:4;10835:19;10826:28;;10880:3;10873:5;10870:14;10867:40;;;10887:18;;:::i;:::-;10867:40;10920:5;;10689:246;10960:42;10998:3;10988:8;10982:4;10979:1;10960:42;:::i;:::-;10945:57;;;;11034:4;11029:3;11025:14;11018:5;11015:25;11012:51;;;11043:18;;:::i;:::-;11012:51;11092:4;11085:5;11081:16;11072:25;;10030:1073;;;;;;:::o;11109:281::-;11167:5;11191:23;11209:4;11191:23;:::i;:::-;11183:31;;11235:25;11251:8;11235:25;:::i;:::-;11223:37;;11279:104;11316:66;11306:8;11300:4;11279:104;:::i;:::-;11270:113;;11109:281;;;;:::o;11396:410::-;11436:7;11459:20;11477:1;11459:20;:::i;:::-;11454:25;;11493:20;11511:1;11493:20;:::i;:::-;11488:25;;11548:1;11545;11541:9;11570:30;11588:11;11570:30;:::i;:::-;11559:41;;11749:1;11740:7;11736:15;11733:1;11730:22;11710:1;11703:9;11683:83;11660:139;;11779:18;;:::i;:::-;11660:139;11444:362;11396:410;;;;:::o;11812:227::-;11952:34;11948:1;11940:6;11936:14;11929:58;12021:10;12016:2;12008:6;12004:15;11997:35;11812:227;:::o;12045:366::-;12187:3;12208:67;12272:2;12267:3;12208:67;:::i;:::-;12201:74;;12284:93;12373:3;12284:93;:::i;:::-;12402:2;12397:3;12393:12;12386:19;;12045:366;;;:::o;12417:419::-;12583:4;12621:2;12610:9;12606:18;12598:26;;12670:9;12664:4;12660:20;12656:1;12645:9;12641:17;12634:47;12698:131;12824:4;12698:131;:::i;:::-;12690:139;;12417:419;;;:::o;12842:191::-;12882:3;12901:20;12919:1;12901:20;:::i;:::-;12896:25;;12935:20;12953:1;12935:20;:::i;:::-;12930:25;;12978:1;12975;12971:9;12964:16;;12999:3;12996:1;12993:10;12990:36;;;13006:18;;:::i;:::-;12990:36;12842:191;;;;:::o;13039:162::-;13179:14;13175:1;13167:6;13163:14;13156:38;13039:162;:::o;13207:366::-;13349:3;13370:67;13434:2;13429:3;13370:67;:::i;:::-;13363:74;;13446:93;13535:3;13446:93;:::i;:::-;13564:2;13559:3;13555:12;13548:19;;13207:366;;;:::o;13579:419::-;13745:4;13783:2;13772:9;13768:18;13760:26;;13832:9;13826:4;13822:20;13818:1;13807:9;13803:17;13796:47;13860:131;13986:4;13860:131;:::i;:::-;13852:139;;13579:419;;;:::o;14004:180::-;14052:77;14049:1;14042:88;14149:4;14146:1;14139:15;14173:4;14170:1;14163:15;14190:185;14230:1;14247:20;14265:1;14247:20;:::i;:::-;14242:25;;14281:20;14299:1;14281:20;:::i;:::-;14276:25;;14320:1;14310:35;;14325:18;;:::i;:::-;14310:35;14367:1;14364;14360:9;14355:14;;14190:185;;;;:::o;14381:173::-;14521:25;14517:1;14509:6;14505:14;14498:49;14381:173;:::o;14560:366::-;14702:3;14723:67;14787:2;14782:3;14723:67;:::i;:::-;14716:74;;14799:93;14888:3;14799:93;:::i;:::-;14917:2;14912:3;14908:12;14901:19;;14560:366;;;:::o;14932:419::-;15098:4;15136:2;15125:9;15121:18;15113:26;;15185:9;15179:4;15175:20;15171:1;15160:9;15156:17;15149:47;15213:131;15339:4;15213:131;:::i;:::-;15205:139;;14932:419;;;:::o;15357:143::-;15414:5;15445:6;15439:13;15430:22;;15461:33;15488:5;15461:33;:::i;:::-;15357:143;;;;:::o;15506:351::-;15576:6;15625:2;15613:9;15604:7;15600:23;15596:32;15593:119;;;15631:79;;:::i;:::-;15593:119;15751:1;15776:64;15832:7;15823:6;15812:9;15808:22;15776:64;:::i;:::-;15766:74;;15722:128;15506:351;;;;:::o;15863:332::-;15984:4;16022:2;16011:9;16007:18;15999:26;;16035:71;16103:1;16092:9;16088:17;16079:6;16035:71;:::i;:::-;16116:72;16184:2;16173:9;16169:18;16160:6;16116:72;:::i;:::-;15863:332;;;;;:::o;16201:85::-;16246:7;16275:5;16264:16;;16201:85;;;:::o;16292:60::-;16320:3;16341:5;16334:12;;16292:60;;;:::o;16358:158::-;16416:9;16449:61;16467:42;16476:32;16502:5;16476:32;:::i;:::-;16467:42;:::i;:::-;16449:61;:::i;:::-;16436:74;;16358:158;;;:::o;16522:147::-;16617:45;16656:5;16617:45;:::i;:::-;16612:3;16605:58;16522:147;;:::o;16675:807::-;16924:4;16962:3;16951:9;16947:19;16939:27;;16976:71;17044:1;17033:9;17029:17;17020:6;16976:71;:::i;:::-;17057:72;17125:2;17114:9;17110:18;17101:6;17057:72;:::i;:::-;17139:80;17215:2;17204:9;17200:18;17191:6;17139:80;:::i;:::-;17229;17305:2;17294:9;17290:18;17281:6;17229:80;:::i;:::-;17319:73;17387:3;17376:9;17372:19;17363:6;17319:73;:::i;:::-;17402;17470:3;17459:9;17455:19;17446:6;17402:73;:::i;:::-;16675:807;;;;;;;;;:::o;17488:143::-;17545:5;17576:6;17570:13;17561:22;;17592:33;17619:5;17592:33;:::i;:::-;17488:143;;;;:::o;17637:663::-;17725:6;17733;17741;17790:2;17778:9;17769:7;17765:23;17761:32;17758:119;;;17796:79;;:::i;:::-;17758:119;17916:1;17941:64;17997:7;17988:6;17977:9;17973:22;17941:64;:::i;:::-;17931:74;;17887:128;18054:2;18080:64;18136:7;18127:6;18116:9;18112:22;18080:64;:::i;:::-;18070:74;;18025:129;18193:2;18219:64;18275:7;18266:6;18255:9;18251:22;18219:64;:::i;:::-;18209:74;;18164:129;17637:663;;;;;:::o;18306:332::-;18427:4;18465:2;18454:9;18450:18;18442:26;;18478:71;18546:1;18535:9;18531:17;18522:6;18478:71;:::i;:::-;18559:72;18627:2;18616:9;18612:18;18603:6;18559:72;:::i;:::-;18306:332;;;;;:::o;18644:116::-;18714:21;18729:5;18714:21;:::i;:::-;18707:5;18704:32;18694:60;;18750:1;18747;18740:12;18694:60;18644:116;:::o;18766:137::-;18820:5;18851:6;18845:13;18836:22;;18867:30;18891:5;18867:30;:::i;:::-;18766:137;;;;:::o;18909:345::-;18976:6;19025:2;19013:9;19004:7;19000:23;18996:32;18993:119;;;19031:79;;:::i;:::-;18993:119;19151:1;19176:61;19229:7;19220:6;19209:9;19205:22;19176:61;:::i;:::-;19166:71;;19122:125;18909:345;;;;:::o;19260:223::-;19400:34;19396:1;19388:6;19384:14;19377:58;19469:6;19464:2;19456:6;19452:15;19445:31;19260:223;:::o;19489:366::-;19631:3;19652:67;19716:2;19711:3;19652:67;:::i;:::-;19645:74;;19728:93;19817:3;19728:93;:::i;:::-;19846:2;19841:3;19837:12;19830:19;;19489:366;;;:::o;19861:419::-;20027:4;20065:2;20054:9;20050:18;20042:26;;20114:9;20108:4;20104:20;20100:1;20089:9;20085:17;20078:47;20142:131;20268:4;20142:131;:::i;:::-;20134:139;;19861:419;;;:::o;20286:221::-;20426:34;20422:1;20414:6;20410:14;20403:58;20495:4;20490:2;20482:6;20478:15;20471:29;20286:221;:::o;20513:366::-;20655:3;20676:67;20740:2;20735:3;20676:67;:::i;:::-;20669:74;;20752:93;20841:3;20752:93;:::i;:::-;20870:2;20865:3;20861:12;20854:19;;20513:366;;;:::o;20885:419::-;21051:4;21089:2;21078:9;21074:18;21066:26;;21138:9;21132:4;21128:20;21124:1;21113:9;21109:17;21102:47;21166:131;21292:4;21166:131;:::i;:::-;21158:139;;20885:419;;;:::o;21310:224::-;21450:34;21446:1;21438:6;21434:14;21427:58;21519:7;21514:2;21506:6;21502:15;21495:32;21310:224;:::o;21540:366::-;21682:3;21703:67;21767:2;21762:3;21703:67;:::i;:::-;21696:74;;21779:93;21868:3;21779:93;:::i;:::-;21897:2;21892:3;21888:12;21881:19;;21540:366;;;:::o;21912:419::-;22078:4;22116:2;22105:9;22101:18;22093:26;;22165:9;22159:4;22155:20;22151:1;22140:9;22136:17;22129:47;22193:131;22319:4;22193:131;:::i;:::-;22185:139;;21912:419;;;:::o;22337:178::-;22477:30;22473:1;22465:6;22461:14;22454:54;22337:178;:::o;22521:366::-;22663:3;22684:67;22748:2;22743:3;22684:67;:::i;:::-;22677:74;;22760:93;22849:3;22760:93;:::i;:::-;22878:2;22873:3;22869:12;22862:19;;22521:366;;;:::o;22893:419::-;23059:4;23097:2;23086:9;23082:18;23074:26;;23146:9;23140:4;23136:20;23132:1;23121:9;23117:17;23110:47;23174:131;23300:4;23174:131;:::i;:::-;23166:139;;22893:419;;;:::o;23318:166::-;23458:18;23454:1;23446:6;23442:14;23435:42;23318:166;:::o;23490:366::-;23632:3;23653:67;23717:2;23712:3;23653:67;:::i;:::-;23646:74;;23729:93;23818:3;23729:93;:::i;:::-;23847:2;23842:3;23838:12;23831:19;;23490:366;;;:::o;23862:419::-;24028:4;24066:2;24055:9;24051:18;24043:26;;24115:9;24109:4;24105:20;24101:1;24090:9;24086:17;24079:47;24143:131;24269:4;24143:131;:::i;:::-;24135:139;;23862:419;;;:::o;24287:173::-;24427:25;24423:1;24415:6;24411:14;24404:49;24287:173;:::o;24466:366::-;24608:3;24629:67;24693:2;24688:3;24629:67;:::i;:::-;24622:74;;24705:93;24794:3;24705:93;:::i;:::-;24823:2;24818:3;24814:12;24807:19;;24466:366;;;:::o;24838:419::-;25004:4;25042:2;25031:9;25027:18;25019:26;;25091:9;25085:4;25081:20;25077:1;25066:9;25062:17;25055:47;25119:131;25245:4;25119:131;:::i;:::-;25111:139;;24838:419;;;:::o;25263:177::-;25403:29;25399:1;25391:6;25387:14;25380:53;25263:177;:::o;25446:366::-;25588:3;25609:67;25673:2;25668:3;25609:67;:::i;:::-;25602:74;;25685:93;25774:3;25685:93;:::i;:::-;25803:2;25798:3;25794:12;25787:19;;25446:366;;;:::o;25818:419::-;25984:4;26022:2;26011:9;26007:18;25999:26;;26071:9;26065:4;26061:20;26057:1;26046:9;26042:17;26035:47;26099:131;26225:4;26099:131;:::i;:::-;26091:139;;25818:419;;;:::o;26243:180::-;26291:77;26288:1;26281:88;26388:4;26385:1;26378:15;26412:4;26409:1;26402:15;26429:180;26477:77;26474:1;26467:88;26574:4;26571:1;26564:15;26598:4;26595:1;26588:15;26615:114;26682:6;26716:5;26710:12;26700:22;;26615:114;;;:::o;26735:184::-;26834:11;26868:6;26863:3;26856:19;26908:4;26903:3;26899:14;26884:29;;26735:184;;;;:::o;26925:132::-;26992:4;27015:3;27007:11;;27045:4;27040:3;27036:14;27028:22;;26925:132;;;:::o;27063:108::-;27140:24;27158:5;27140:24;:::i;:::-;27135:3;27128:37;27063:108;;:::o;27177:179::-;27246:10;27267:46;27309:3;27301:6;27267:46;:::i;:::-;27345:4;27340:3;27336:14;27322:28;;27177:179;;;;:::o;27362:113::-;27432:4;27464;27459:3;27455:14;27447:22;;27362:113;;;:::o;27511:732::-;27630:3;27659:54;27707:5;27659:54;:::i;:::-;27729:86;27808:6;27803:3;27729:86;:::i;:::-;27722:93;;27839:56;27889:5;27839:56;:::i;:::-;27918:7;27949:1;27934:284;27959:6;27956:1;27953:13;27934:284;;;28035:6;28029:13;28062:63;28121:3;28106:13;28062:63;:::i;:::-;28055:70;;28148:60;28201:6;28148:60;:::i;:::-;28138:70;;27994:224;27981:1;27978;27974:9;27969:14;;27934:284;;;27938:14;28234:3;28227:10;;27635:608;;;27511:732;;;;:::o;28249:831::-;28512:4;28550:3;28539:9;28535:19;28527:27;;28564:71;28632:1;28621:9;28617:17;28608:6;28564:71;:::i;:::-;28645:80;28721:2;28710:9;28706:18;28697:6;28645:80;:::i;:::-;28772:9;28766:4;28762:20;28757:2;28746:9;28742:18;28735:48;28800:108;28903:4;28894:6;28800:108;:::i;:::-;28792:116;;28918:72;28986:2;28975:9;28971:18;28962:6;28918:72;:::i;:::-;29000:73;29068:3;29057:9;29053:19;29044:6;29000:73;:::i;:::-;28249:831;;;;;;;;:::o;29086:225::-;29226:34;29222:1;29214:6;29210:14;29203:58;29295:8;29290:2;29282:6;29278:15;29271:33;29086:225;:::o;29317:366::-;29459:3;29480:67;29544:2;29539:3;29480:67;:::i;:::-;29473:74;;29556:93;29645:3;29556:93;:::i;:::-;29674:2;29669:3;29665:12;29658:19;;29317:366;;;:::o;29689:419::-;29855:4;29893:2;29882:9;29878:18;29870:26;;29942:9;29936:4;29932:20;29928:1;29917:9;29913:17;29906:47;29970:131;30096:4;29970:131;:::i;:::-;29962:139;;29689:419;;;:::o;30114:194::-;30154:4;30174:20;30192:1;30174:20;:::i;:::-;30169:25;;30208:20;30226:1;30208:20;:::i;:::-;30203:25;;30252:1;30249;30245:9;30237:17;;30276:1;30270:4;30267:11;30264:37;;;30281:18;;:::i;:::-;30264:37;30114:194;;;;:::o

Swarm Source

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