ETH Price: $3,682.36 (+2.27%)

Token

ERC-20: Bobara (BOBARA)
 

Overview

Max Total Supply

1,000,000,000 BOBARA

Holders

588

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.728780327172764354 BOBARA

Value
$0.00
0x9803a62d75bf09dc61f06e6c09d9d2242926df07
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:
Bobara

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
    _  _   _______  _            _    _                   ____          _                        
  _| || |_|__   __|| |          | |  | |                 |  _ \        | |                       
 |_  __  _|  | |   | |__  __  __| |__| |  ___  _ __  ___ | |_) |  ___  | |__    __ _  _ __  __ _ 
  _| || |_   | |   | '_ \ \ \/ /|  __  | / _ \| '__|/ _ \|  _ <  / _ \ | '_ \  / _` || '__|/ _` |
 |_  __  _|  | |   | | | | >  < | |  | ||  __/| |  |  __/| |_) || (_) || |_) || (_| || |  | (_| |
   |_||_|    |_|   |_| |_|/_/\_\|_|  |_| \___||_|   \___||____/  \___/ |_.__/  \__,_||_|   \__,_|
                                                                                                 
$BOBARA is a zero-tax token powered by @ThxHereBobara Twitter bot, with a renounced contract and burned liquidity.

Official Links:
https://twitter.com/ThxHereBobara
https://twitter.com/BobaraToken
https://t.me/BobaraToken    
https://bobara.love                                                                            
**/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

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

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

contract Bobara is IERC20, Ownable {
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Bobara";
    string constant _symbol = "BOBARA";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1_000_000_000 * (10**_decimals);

    uint256 public maxWalletSize = (_totalSupply * 2) / 100;

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) liquidityCreator;

    uint256 marketingFee = 5000;
    uint256 feeDenominator = 10000;

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping(address => bool) liquidityPools;

    address public pair;

    uint256 public launchedAt;
    bool public swapEnabled = false;
    bool startBullRun = false;

    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier walletSizeLimit(address recipient, uint256 amount) {
        if (
            recipient != pair &&
            !liquidityCreator[recipient] &&
            !isFeeExempt[recipient]
        ) {
            require(
                _balances[recipient] + amount <= maxWalletSize,
                "Exceeds maximum wallet size"
            );
        }
        _;
    }

    address devWallet;
    modifier onlyTeam() {
        require(_msgSender() == devWallet, "Caller is not a team member");
        _;
    }

    event FundsDistributed(uint256 marketingFee);

    constructor() {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        isFeeExempt[address(this)] = true;
        liquidityCreator[owner()] = true;

        _balances[owner()] = _totalSupply;

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

    receive() external payable {}

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

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

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

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

    function getOwner() external view returns (address) {
        return owner();
    }

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

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMaximum(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function setTeamWallet(address _team) external onlyOwner {
        devWallet = _team;
    }

    function setTaxFee(uint256 newTaxFee) external onlyOwner {
        require(
            newTaxFee >= 0 && newTaxFee <= feeDenominator,
            "Invalid tax fee"
        );
        marketingFee = newTaxFee;
    }

    function feeWithdrawal(uint256 amount) external onlyTeam {
        uint256 amountETH = address(this).balance;
        payable(devWallet).transfer((amountETH * amount) / 100);
    }

    function launchTrading() external onlyOwner {
        require(!startBullRun);
        startBullRun = true;
        launchedAt = block.number;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal walletSizeLimit(recipient, amount) returns (bool) {
        require(sender != address(0), "ERC20: transfer from 0x0");
        require(recipient != address(0), "ERC20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");

        if (!launched() && liquidityPools[recipient]) {
            require(liquidityCreator[sender], "Liquidity not added yet.");
            launch();
        }

        if (!startBullRun) {
            require(
                liquidityCreator[sender] || liquidityCreator[recipient],
                "Trading not open yet."
            );
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = feeExcluded(sender)
            ? takeFee(recipient, amount)
            : amount;

        if (shouldSwapBack(recipient)) {
            if (amount > 0) swapBack();
        }

        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        swapEnabled = true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function feeExcluded(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function isPurchaseOrSale(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        return sender == pair || recipient == pair;
    }

    function takeFee(address recipient, uint256 amount)
        internal
        returns (uint256)
    {
        if (!isPurchaseOrSale(msg.sender, recipient)) {
            return amount;
        }

        uint256 feeAmount = (amount * marketingFee) / feeDenominator;
        _balances[address(this)] += feeAmount;

        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return
            !liquidityPools[msg.sender] &&
            !inSwap &&
            swapEnabled &&
            liquidityPools[recipient];
    }

    function swapBack() internal swapping {
        if (_balances[address(this)] > 0) {
            uint256 amountToSwap = _balances[address(this)];

            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = router.WETH();

            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                amountToSwap,
                0,
                path,
                address(this),
                block.timestamp
            );

            emit FundsDistributed(amountToSwap);
        }
    }

    function addLiquidityCreator(address _liquidityCreator) external onlyOwner {
        liquidityCreator[_liquidityCreator] = true;
    }

    function changeSettings(bool _enabled) external onlyOwner {
        swapEnabled = _enabled;
    }

    function getCurrentSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"FundsDistributed","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":"address","name":"_liquidityCreator","type":"address"}],"name":"addLiquidityCreator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMaximum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"changeSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"feeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxFee","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062000a22565b633b9aca00620000aa919062000b5f565b60035560646002600354620000c0919062000b5f565b620000cc91906200098f565b600455611388600955612710600a55737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055503480156200017357600080fd5b50600062000186620008a960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002f057600080fd5b505afa15801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b9190620008f1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003af57600080fd5b505afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea9190620008f1565b306040518363ffffffff1660e01b81526004016200040a92919062000945565b602060405180830381600087803b1580156200042557600080fd5b505af11580156200043a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004609190620008f1565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660006200054f620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620006c5620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600062000784620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060035460056000620007ec620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200083a620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200089b919062000972565b60405180910390a362000c95565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620008eb8162000c7b565b92915050565b6000602082840312156200090a576200090962000c69565b5b60006200091a84828501620008da565b91505092915050565b6200092e8162000bc0565b82525050565b6200093f8162000bf4565b82525050565b60006040820190506200095c600083018562000923565b6200096b602083018462000923565b9392505050565b600060208201905062000989600083018462000934565b92915050565b60006200099c8262000bf4565b9150620009a98362000bf4565b925082620009bc57620009bb62000c3a565b5b828204905092915050565b6000808291508390505b600185111562000a1957808604811115620009f157620009f062000c0b565b5b600185161562000a015780820291505b808102905062000a118562000c6e565b9450620009d1565b94509492505050565b600062000a2f8262000bf4565b915062000a3c8362000bfe565b925062000a6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a73565b905092915050565b60008262000a85576001905062000b58565b8162000a95576000905062000b58565b816001811462000aae576002811462000ab95762000aef565b600191505062000b58565b60ff84111562000ace5762000acd62000c0b565b5b8360020a91508482111562000ae85762000ae762000c0b565b5b5062000b58565b5060208310610133831016604e8410600b841016171562000b295782820a90508381111562000b235762000b2262000c0b565b5b62000b58565b62000b388484846001620009c7565b9250905081840481111562000b525762000b5162000c0b565b5b81810290505b9392505050565b600062000b6c8262000bf4565b915062000b798362000bf4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb55762000bb462000c0b565b5b828202905092915050565b600062000bcd8262000bd4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c868162000bc0565b811462000c9257600080fd5b50565b612ee58062000ca56000396000f3fe6080604052600436106101855760003560e01c80637c6e0a5e116100d1578063a9059cbb1161008a578063c4081a4c11610064578063c4081a4c1461056d578063dd62ed3e14610596578063f2fde38b146105d3578063f887ea40146105fc5761018c565b8063a9059cbb146104dc578063aa02593114610519578063bf56b371146105425761018c565b80637c6e0a5e146103c8578063893d20e8146104055780638da5cb5b146104305780638f3fa8601461045b57806395d89b4114610486578063a8aa1b31146104b15761018c565b8063313ce5671161013e5780636ddd1713116101185780636ddd1713146103325780636fc61a091461035d57806370a0823114610374578063715018a6146103b15761018c565b8063313ce567146102b35780633c8f81d0146102de5780634f3e1efc146103075761018c565b806306fdde0314610191578063095ea7b3146101bc5780630961fbf7146101f95780631525ff7d1461022257806318160ddd1461024b57806323b872dd146102765761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610627565b6040516101b39190612763565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906123df565b610664565b6040516101f0919061272d565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b919061244c565b610756565b005b34801561022e57600080fd5b50610249600480360381019061024491906122f2565b610876565b005b34801561025757600080fd5b5061026061094f565b60405161026d91906128e5565b60405180910390f35b34801561028257600080fd5b5061029d6004803603810190610298919061238c565b610959565b6040516102aa919061272d565b60405180910390f35b3480156102bf57600080fd5b506102c8610b1b565b6040516102d5919061295a565b60405180910390f35b3480156102ea57600080fd5b50610305600480360381019061030091906122f2565b610b24565b005b34801561031357600080fd5b5061031c610c14565b60405161032991906128e5565b60405180910390f35b34801561033e57600080fd5b50610347610c88565b604051610354919061272d565b60405180910390f35b34801561036957600080fd5b50610372610c9b565b005b34801561038057600080fd5b5061039b600480360381019061039691906122f2565b610d6e565b6040516103a891906128e5565b60405180910390f35b3480156103bd57600080fd5b506103c6610db7565b005b3480156103d457600080fd5b506103ef60048036038101906103ea91906122f2565b610f0a565b6040516103fc919061272d565b60405180910390f35b34801561041157600080fd5b5061041a610f3d565b6040516104279190612712565b60405180910390f35b34801561043c57600080fd5b50610445610f4c565b6040516104529190612712565b60405180910390f35b34801561046757600080fd5b50610470610f75565b60405161047d91906128e5565b60405180910390f35b34801561049257600080fd5b5061049b610f7b565b6040516104a89190612763565b60405180910390f35b3480156104bd57600080fd5b506104c6610fb8565b6040516104d39190612712565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906123df565b610fde565b604051610510919061272d565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b919061241f565b610ff3565b005b34801561054e57600080fd5b506105576110a5565b60405161056491906128e5565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f919061244c565b6110ab565b005b3480156105a257600080fd5b506105bd60048036038101906105b8919061234c565b61119c565b6040516105ca91906128e5565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906122f2565b611223565b005b34801561060857600080fd5b506106116113e5565b60405161061e9190612748565b60405180910390f35b60606040518060400160405280600681526020017f426f626172610000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161074491906128e5565b60405180910390a36001905092915050565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079761140b565b73ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612825565b60405180910390fd5b6000479050601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461083c9190612a51565b6108469190612a20565b9081150290604051600060405180830381858888f19350505050158015610871573d6000803e3d6000fd5b505050565b61087e61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612885565b60405180910390fd5b80601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b075781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a869190612aab565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b12848484611413565b90509392505050565b60006012905090565b610b2c61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090612885565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610c41600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d6e565b610c6c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d6e565b610c7691906129ca565b600354610c839190612aab565b905090565b601060009054906101000a900460ff1681565b610ca361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612885565b60405180910390fd5b601060019054906101000a900460ff1615610d4a57600080fd5b6001601060016101000a81548160ff02191690831515021790555043600f81905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dbf61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390612885565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610f36827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610664565b9050919050565b6000610f47610f4c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60045481565b60606040518060400160405280600681526020017f424f424152410000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610feb338484611413565b905092915050565b610ffb61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90612885565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b600f5481565b6110b361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612885565b60405180910390fd5b600081101580156111535750600a548111155b611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906127a5565b60405180910390fd5b8060098190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122b61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112af90612885565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f906127c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008282600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114bf5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115155750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115aa5760045481600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156891906129ca565b11156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906128c5565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612845565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612805565b60405180910390fd5b600084116116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612785565b60405180910390fd5b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561174f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611746906127e5565b60405180910390fd5b611757611b36565b1580156117ad5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561184757600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590612865565b60405180910390fd5b611846611b43565b5b601060019054906101000a900460ff1661193c57600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118fc5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906128a5565b60405180910390fd5b5b601060029054906101000a900460ff16156119635761195c868686611b67565b9250611b2d565b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae9190612aab565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006119fc87611cf5565b611a065784611a11565b611a108686611d4c565b5b9050611a1c86611def565b15611a34576000851115611a3357611a32611ecc565b5b5b80600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7f91906129ca565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1f91906128e5565b60405180910390a360019350505b50509392505050565b600080600f541415905090565b43600f819055506001601060006101000a81548160ff021916908315150217905550565b600081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb49190612aab565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4291906129ca565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ce291906128e5565b60405180910390a3600190509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000611d5833846121eb565b611d6457819050611de9565b6000600a5460095484611d779190612a51565b611d819190612a20565b905080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd291906129ca565b925050819055508083611de59190612aab565b9150505b92915050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e585750601060029054906101000a900460ff16155b8015611e705750601060009054906101000a900460ff165b8015611ec55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b6001601060026101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156121ce576000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff811115611f9057611f8f612c3c565b5b604051908082528060200260200182016040528015611fbe5781602001602082028036833780820191505090505b5090503081600081518110611fd657611fd5612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561207857600080fd5b505afa15801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b0919061231f565b816001815181106120c4576120c3612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612162959493929190612900565b600060405180830381600087803b15801561217c57600080fd5b505af1158015612190573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516121c391906128e5565b60405180910390a150505b6000601060026101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122965750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000813590506122ad81612e6a565b92915050565b6000815190506122c281612e6a565b92915050565b6000813590506122d781612e81565b92915050565b6000813590506122ec81612e98565b92915050565b60006020828403121561230857612307612c6b565b5b60006123168482850161229e565b91505092915050565b60006020828403121561233557612334612c6b565b5b6000612343848285016122b3565b91505092915050565b6000806040838503121561236357612362612c6b565b5b60006123718582860161229e565b92505060206123828582860161229e565b9150509250929050565b6000806000606084860312156123a5576123a4612c6b565b5b60006123b38682870161229e565b93505060206123c48682870161229e565b92505060406123d5868287016122dd565b9150509250925092565b600080604083850312156123f6576123f5612c6b565b5b60006124048582860161229e565b9250506020612415858286016122dd565b9150509250929050565b60006020828403121561243557612434612c6b565b5b6000612443848285016122c8565b91505092915050565b60006020828403121561246257612461612c6b565b5b6000612470848285016122dd565b91505092915050565b60006124858383612491565b60208301905092915050565b61249a81612adf565b82525050565b6124a981612adf565b82525050565b60006124ba82612985565b6124c481856129a8565b93506124cf83612975565b8060005b838110156125005781516124e78882612479565b97506124f28361299b565b9250506001810190506124d3565b5085935050505092915050565b61251681612af1565b82525050565b61252581612b34565b82525050565b61253481612b46565b82525050565b600061254582612990565b61254f81856129b9565b935061255f818560208601612b7c565b61256881612c70565b840191505092915050565b60006125806015836129b9565b915061258b82612c81565b602082019050919050565b60006125a3600f836129b9565b91506125ae82612caa565b602082019050919050565b60006125c66026836129b9565b91506125d182612cd3565b604082019050919050565b60006125e96014836129b9565b91506125f482612d22565b602082019050919050565b600061260c6016836129b9565b915061261782612d4b565b602082019050919050565b600061262f601b836129b9565b915061263a82612d74565b602082019050919050565b60006126526018836129b9565b915061265d82612d9d565b602082019050919050565b60006126756018836129b9565b915061268082612dc6565b602082019050919050565b60006126986020836129b9565b91506126a382612def565b602082019050919050565b60006126bb6015836129b9565b91506126c682612e18565b602082019050919050565b60006126de601b836129b9565b91506126e982612e41565b602082019050919050565b6126fd81612b1d565b82525050565b61270c81612b27565b82525050565b600060208201905061272760008301846124a0565b92915050565b6000602082019050612742600083018461250d565b92915050565b600060208201905061275d600083018461251c565b92915050565b6000602082019050818103600083015261277d818461253a565b905092915050565b6000602082019050818103600083015261279e81612573565b9050919050565b600060208201905081810360008301526127be81612596565b9050919050565b600060208201905081810360008301526127de816125b9565b9050919050565b600060208201905081810360008301526127fe816125dc565b9050919050565b6000602082019050818103600083015261281e816125ff565b9050919050565b6000602082019050818103600083015261283e81612622565b9050919050565b6000602082019050818103600083015261285e81612645565b9050919050565b6000602082019050818103600083015261287e81612668565b9050919050565b6000602082019050818103600083015261289e8161268b565b9050919050565b600060208201905081810360008301526128be816126ae565b9050919050565b600060208201905081810360008301526128de816126d1565b9050919050565b60006020820190506128fa60008301846126f4565b92915050565b600060a08201905061291560008301886126f4565b612922602083018761252b565b818103604083015261293481866124af565b905061294360608301856124a0565b61295060808301846126f4565b9695505050505050565b600060208201905061296f6000830184612703565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129d582612b1d565b91506129e083612b1d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a1557612a14612baf565b5b828201905092915050565b6000612a2b82612b1d565b9150612a3683612b1d565b925082612a4657612a45612bde565b5b828204905092915050565b6000612a5c82612b1d565b9150612a6783612b1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612aa057612a9f612baf565b5b828202905092915050565b6000612ab682612b1d565b9150612ac183612b1d565b925082821015612ad457612ad3612baf565b5b828203905092915050565b6000612aea82612afd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b3f82612b58565b9050919050565b6000612b5182612b1d565b9050919050565b6000612b6382612b6a565b9050919050565b6000612b7582612afd565b9050919050565b60005b83811015612b9a578082015181840152602081019050612b7f565b83811115612ba9576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f496e76616c696420746178206665650000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f45786365656473206d6178696d756d2077616c6c65742073697a650000000000600082015250565b612e7381612adf565b8114612e7e57600080fd5b50565b612e8a81612af1565b8114612e9557600080fd5b50565b612ea181612b1d565b8114612eac57600080fd5b5056fea26469706673582212206e6b957b78d3623dba1f0e9eb30d32042c64ffc8d5b17ac58c24a2c16887b18464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637c6e0a5e116100d1578063a9059cbb1161008a578063c4081a4c11610064578063c4081a4c1461056d578063dd62ed3e14610596578063f2fde38b146105d3578063f887ea40146105fc5761018c565b8063a9059cbb146104dc578063aa02593114610519578063bf56b371146105425761018c565b80637c6e0a5e146103c8578063893d20e8146104055780638da5cb5b146104305780638f3fa8601461045b57806395d89b4114610486578063a8aa1b31146104b15761018c565b8063313ce5671161013e5780636ddd1713116101185780636ddd1713146103325780636fc61a091461035d57806370a0823114610374578063715018a6146103b15761018c565b8063313ce567146102b35780633c8f81d0146102de5780634f3e1efc146103075761018c565b806306fdde0314610191578063095ea7b3146101bc5780630961fbf7146101f95780631525ff7d1461022257806318160ddd1461024b57806323b872dd146102765761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610627565b6040516101b39190612763565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906123df565b610664565b6040516101f0919061272d565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b919061244c565b610756565b005b34801561022e57600080fd5b50610249600480360381019061024491906122f2565b610876565b005b34801561025757600080fd5b5061026061094f565b60405161026d91906128e5565b60405180910390f35b34801561028257600080fd5b5061029d6004803603810190610298919061238c565b610959565b6040516102aa919061272d565b60405180910390f35b3480156102bf57600080fd5b506102c8610b1b565b6040516102d5919061295a565b60405180910390f35b3480156102ea57600080fd5b50610305600480360381019061030091906122f2565b610b24565b005b34801561031357600080fd5b5061031c610c14565b60405161032991906128e5565b60405180910390f35b34801561033e57600080fd5b50610347610c88565b604051610354919061272d565b60405180910390f35b34801561036957600080fd5b50610372610c9b565b005b34801561038057600080fd5b5061039b600480360381019061039691906122f2565b610d6e565b6040516103a891906128e5565b60405180910390f35b3480156103bd57600080fd5b506103c6610db7565b005b3480156103d457600080fd5b506103ef60048036038101906103ea91906122f2565b610f0a565b6040516103fc919061272d565b60405180910390f35b34801561041157600080fd5b5061041a610f3d565b6040516104279190612712565b60405180910390f35b34801561043c57600080fd5b50610445610f4c565b6040516104529190612712565b60405180910390f35b34801561046757600080fd5b50610470610f75565b60405161047d91906128e5565b60405180910390f35b34801561049257600080fd5b5061049b610f7b565b6040516104a89190612763565b60405180910390f35b3480156104bd57600080fd5b506104c6610fb8565b6040516104d39190612712565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906123df565b610fde565b604051610510919061272d565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b919061241f565b610ff3565b005b34801561054e57600080fd5b506105576110a5565b60405161056491906128e5565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f919061244c565b6110ab565b005b3480156105a257600080fd5b506105bd60048036038101906105b8919061234c565b61119c565b6040516105ca91906128e5565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f591906122f2565b611223565b005b34801561060857600080fd5b506106116113e5565b60405161061e9190612748565b60405180910390f35b60606040518060400160405280600681526020017f426f626172610000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161074491906128e5565b60405180910390a36001905092915050565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079761140b565b73ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490612825565b60405180910390fd5b6000479050601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461083c9190612a51565b6108469190612a20565b9081150290604051600060405180830381858888f19350505050158015610871573d6000803e3d6000fd5b505050565b61087e61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612885565b60405180910390fd5b80601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b075781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a869190612aab565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b12848484611413565b90509392505050565b60006012905090565b610b2c61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090612885565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610c41600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d6e565b610c6c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d6e565b610c7691906129ca565b600354610c839190612aab565b905090565b601060009054906101000a900460ff1681565b610ca361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612885565b60405180910390fd5b601060019054906101000a900460ff1615610d4a57600080fd5b6001601060016101000a81548160ff02191690831515021790555043600f81905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dbf61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390612885565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610f36827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610664565b9050919050565b6000610f47610f4c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60045481565b60606040518060400160405280600681526020017f424f424152410000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610feb338484611413565b905092915050565b610ffb61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90612885565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b600f5481565b6110b361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612885565b60405180910390fd5b600081101580156111535750600a548111155b611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906127a5565b60405180910390fd5b8060098190555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122b61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112af90612885565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f906127c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008282600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114bf5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115155750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115aa5760045481600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156891906129ca565b11156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906128c5565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612845565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612805565b60405180910390fd5b600084116116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612785565b60405180910390fd5b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561174f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611746906127e5565b60405180910390fd5b611757611b36565b1580156117ad5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561184757600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590612865565b60405180910390fd5b611846611b43565b5b601060019054906101000a900460ff1661193c57600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118fc5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906128a5565b60405180910390fd5b5b601060029054906101000a900460ff16156119635761195c868686611b67565b9250611b2d565b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae9190612aab565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006119fc87611cf5565b611a065784611a11565b611a108686611d4c565b5b9050611a1c86611def565b15611a34576000851115611a3357611a32611ecc565b5b5b80600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7f91906129ca565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1f91906128e5565b60405180910390a360019350505b50509392505050565b600080600f541415905090565b43600f819055506001601060006101000a81548160ff021916908315150217905550565b600081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb49190612aab565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4291906129ca565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ce291906128e5565b60405180910390a3600190509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000611d5833846121eb565b611d6457819050611de9565b6000600a5460095484611d779190612a51565b611d819190612a20565b905080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd291906129ca565b925050819055508083611de59190612aab565b9150505b92915050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e585750601060029054906101000a900460ff16155b8015611e705750601060009054906101000a900460ff165b8015611ec55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b6001601060026101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156121ce576000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff811115611f9057611f8f612c3c565b5b604051908082528060200260200182016040528015611fbe5781602001602082028036833780820191505090505b5090503081600081518110611fd657611fd5612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561207857600080fd5b505afa15801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b0919061231f565b816001815181106120c4576120c3612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612162959493929190612900565b600060405180830381600087803b15801561217c57600080fd5b505af1158015612190573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516121c391906128e5565b60405180910390a150505b6000601060026101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122965750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000813590506122ad81612e6a565b92915050565b6000815190506122c281612e6a565b92915050565b6000813590506122d781612e81565b92915050565b6000813590506122ec81612e98565b92915050565b60006020828403121561230857612307612c6b565b5b60006123168482850161229e565b91505092915050565b60006020828403121561233557612334612c6b565b5b6000612343848285016122b3565b91505092915050565b6000806040838503121561236357612362612c6b565b5b60006123718582860161229e565b92505060206123828582860161229e565b9150509250929050565b6000806000606084860312156123a5576123a4612c6b565b5b60006123b38682870161229e565b93505060206123c48682870161229e565b92505060406123d5868287016122dd565b9150509250925092565b600080604083850312156123f6576123f5612c6b565b5b60006124048582860161229e565b9250506020612415858286016122dd565b9150509250929050565b60006020828403121561243557612434612c6b565b5b6000612443848285016122c8565b91505092915050565b60006020828403121561246257612461612c6b565b5b6000612470848285016122dd565b91505092915050565b60006124858383612491565b60208301905092915050565b61249a81612adf565b82525050565b6124a981612adf565b82525050565b60006124ba82612985565b6124c481856129a8565b93506124cf83612975565b8060005b838110156125005781516124e78882612479565b97506124f28361299b565b9250506001810190506124d3565b5085935050505092915050565b61251681612af1565b82525050565b61252581612b34565b82525050565b61253481612b46565b82525050565b600061254582612990565b61254f81856129b9565b935061255f818560208601612b7c565b61256881612c70565b840191505092915050565b60006125806015836129b9565b915061258b82612c81565b602082019050919050565b60006125a3600f836129b9565b91506125ae82612caa565b602082019050919050565b60006125c66026836129b9565b91506125d182612cd3565b604082019050919050565b60006125e96014836129b9565b91506125f482612d22565b602082019050919050565b600061260c6016836129b9565b915061261782612d4b565b602082019050919050565b600061262f601b836129b9565b915061263a82612d74565b602082019050919050565b60006126526018836129b9565b915061265d82612d9d565b602082019050919050565b60006126756018836129b9565b915061268082612dc6565b602082019050919050565b60006126986020836129b9565b91506126a382612def565b602082019050919050565b60006126bb6015836129b9565b91506126c682612e18565b602082019050919050565b60006126de601b836129b9565b91506126e982612e41565b602082019050919050565b6126fd81612b1d565b82525050565b61270c81612b27565b82525050565b600060208201905061272760008301846124a0565b92915050565b6000602082019050612742600083018461250d565b92915050565b600060208201905061275d600083018461251c565b92915050565b6000602082019050818103600083015261277d818461253a565b905092915050565b6000602082019050818103600083015261279e81612573565b9050919050565b600060208201905081810360008301526127be81612596565b9050919050565b600060208201905081810360008301526127de816125b9565b9050919050565b600060208201905081810360008301526127fe816125dc565b9050919050565b6000602082019050818103600083015261281e816125ff565b9050919050565b6000602082019050818103600083015261283e81612622565b9050919050565b6000602082019050818103600083015261285e81612645565b9050919050565b6000602082019050818103600083015261287e81612668565b9050919050565b6000602082019050818103600083015261289e8161268b565b9050919050565b600060208201905081810360008301526128be816126ae565b9050919050565b600060208201905081810360008301526128de816126d1565b9050919050565b60006020820190506128fa60008301846126f4565b92915050565b600060a08201905061291560008301886126f4565b612922602083018761252b565b818103604083015261293481866124af565b905061294360608301856124a0565b61295060808301846126f4565b9695505050505050565b600060208201905061296f6000830184612703565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129d582612b1d565b91506129e083612b1d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a1557612a14612baf565b5b828201905092915050565b6000612a2b82612b1d565b9150612a3683612b1d565b925082612a4657612a45612bde565b5b828204905092915050565b6000612a5c82612b1d565b9150612a6783612b1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612aa057612a9f612baf565b5b828202905092915050565b6000612ab682612b1d565b9150612ac183612b1d565b925082821015612ad457612ad3612baf565b5b828203905092915050565b6000612aea82612afd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b3f82612b58565b9050919050565b6000612b5182612b1d565b9050919050565b6000612b6382612b6a565b9050919050565b6000612b7582612afd565b9050919050565b60005b83811015612b9a578082015181840152602081019050612b7f565b83811115612ba9576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f496e76616c696420746178206665650000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b7f45786365656473206d6178696d756d2077616c6c65742073697a650000000000600082015250565b612e7381612adf565b8114612e7e57600080fd5b50565b612e8a81612af1565b8114612e9557600080fd5b50565b612ea181612b1d565b8114612eac57600080fd5b5056fea26469706673582212206e6b957b78d3623dba1f0e9eb30d32042c64ffc8d5b17ac58c24a2c16887b18464736f6c63430008070033

Deployed Bytecode Sourcemap

4041:8616:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6675:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7184:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7904:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7574:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6375:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8450:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12269:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12520:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8095:151;;;;;;;;;;;;;:::i;:::-;;6861:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3597:148;;;;;;;;;;;;;:::i;:::-;;7440:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6768:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3383:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4394:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6578:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4888:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8254:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12413:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4916:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7675:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6988:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3753:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4736:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6675:85;6714:13;6747:5;;;;;;;;;;;;;;;;;6740:12;;6675:85;:::o;7184:248::-;7286:4;7343:6;7308:11;:23;7320:10;7308:23;;;;;;;;;;;;;;;:32;7332:7;7308:32;;;;;;;;;;;;;;;:41;;;;7386:7;7365:37;;7374:10;7365:37;;;7395:6;7365:37;;;;;;:::i;:::-;;;;;;;;7420:4;7413:11;;7184:248;;;;:::o;7904:183::-;5606:9;;;;;;;;;;;5590:25;;:12;:10;:12::i;:::-;:25;;;5582:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7972:17:::1;7992:21;7972:41;;8032:9;;;;;;;;;;;8024:27;;:55;8075:3;8065:6;8053:9;:18;;;;:::i;:::-;8052:26;;;;:::i;:::-;8024:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7961:126;7904:183:::0;:::o;7574:93::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7654:5:::1;7642:9;;:17;;;;;;;;;;;;;;;;;;7574:93:::0;:::o;6375:102::-;6430:7;6457:12;;6450:19;;6375:102;:::o;8450:411::-;8584:4;8640:17;8605:11;:19;8617:6;8605:19;;;;;;;;;;;;;;;:31;8625:10;8605:31;;;;;;;;;;;;;;;;:52;8601:193;;8776:6;8725:11;:19;8737:6;8725:19;;;;;;;;;;;;;;;:31;8745:10;8725:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;8674:11;:19;8686:6;8674:19;;;;;;;;;;;;;;;:31;8694:10;8674:31;;;;;;;;;;;;;;;:108;;;;8601:193;8813:40;8827:6;8835:9;8846:6;8813:13;:40::i;:::-;8806:47;;8450:411;;;;;:::o;6485:85::-;6528:5;4320:2;6546:16;;6485:85;:::o;12269:136::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:4:::1;12355:16;:35;12372:17;12355:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12269:136:::0;:::o;12520:134::-;12569:7;12630:15;12640:4;;;;;;;;;;;12630:9;:15::i;:::-;12612;12622:4;;;;;;;;;;;12612:9;:15::i;:::-;:33;;;;:::i;:::-;12596:12;;:50;;;;:::i;:::-;12589:57;;12520:134;:::o;4948:31::-;;;;;;;;;;;;;:::o;8095:151::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8159:12:::1;;;;;;;;;;;8158:13;8150:22;;;::::0;::::1;;8198:4;8183:12;;:19;;;;;;;;;;;;;;;;;;8226:12;8213:10;:25;;;;8095:151::o:0;6861:119::-;6927:7;6954:9;:18;6964:7;6954:18;;;;;;;;;;;;;;;;6947:25;;6861:119;;;:::o;3597:148::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3704:1:::1;3667:40;;3688:6;::::0;::::1;;;;;;;;3667:40;;;;;;;;;;;;3735:1;3718:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3597:148::o:0;7440:126::-;7499:4;7523:35;7531:7;7540:17;7523:7;:35::i;:::-;7516:42;;7440:126;;;:::o;6768:85::-;6811:7;6838;:5;:7::i;:::-;6831:14;;6768:85;:::o;3383:79::-;3421:7;3448:6;;;;;;;;;;;3441:13;;3383:79;:::o;4394:55::-;;;;:::o;6578:89::-;6619:13;6652:7;;;;;;;;;;;;;;;;;6645:14;;6578:89;:::o;4888:19::-;;;;;;;;;;;;;:::o;8254:188::-;8361:4;8390:44;8404:10;8416:9;8427:6;8390:13;:44::i;:::-;8383:51;;8254:188;;;;:::o;12413:99::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12496:8:::1;12482:11;;:22;;;;;;;;;;;;;;;;;;12413:99:::0;:::o;4916:25::-;;;;:::o;7675:221::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7778:1:::1;7765:9;:14;;:45;;;;;7796:14;;7783:9;:27;;7765:45;7743:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7879:9;7864:12;:24;;;;7675:221:::0;:::o;6988:188::-;7108:7;7140:11;:19;7152:6;7140:19;;;;;;;;;;;;;;;:28;7160:7;7140:28;;;;;;;;;;;;;;;;7133:35;;6988:188;;;;:::o;3753:281::-;3520:12;:10;:12::i;:::-;3510:22;;:6;;;;;;;;;;:22;;;3502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3876:1:::1;3856:22;;:8;:22;;;;3834:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3989:8;3960:38;;3981:6;::::0;::::1;;;;;;;;3960:38;;;;;;;;;;;;4018:8;4009:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3753:281:::0;:::o;4736:24::-;;;;;;;;;;;;;:::o;1130:107::-;1175:15;1218:10;1203:26;;1130:107;:::o;8869:1334::-;9030:4;9002:9;9013:6;5237:4;;;;;;;;;;;5224:17;;:9;:17;;;;:62;;;;;5259:16;:27;5276:9;5259:27;;;;;;;;;;;;;;;;;;;;;;;;;5258:28;5224:62;:102;;;;;5304:11;:22;5316:9;5304:22;;;;;;;;;;;;;;;;;;;;;;;;;5303:23;5224:102;5206:294;;;5412:13;;5402:6;5379:9;:20;5389:9;5379:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:46;;5353:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;5206:294;9073:1:::1;9055:20;;:6;:20;;;;9047:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9144:1;9123:23;;:9;:23;;;;9115:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9201:1;9192:6;:10;9184:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9268:6;9247:9;:17;9257:6;9247:17;;;;;;;;;;;;;;;;:27;;9239:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9317:10;:8;:10::i;:::-;9316:11;:40;;;;;9331:14;:25;9346:9;9331:25;;;;;;;;;;;;;;;;;;;;;;;;;9316:40;9312:157;;;9381:16;:24;9398:6;9381:24;;;;;;;;;;;;;;;;;;;;;;;;;9373:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9449:8;:6;:8::i;:::-;9312:157;9486:12;;;;;;;;;;;9481:184;;9541:16;:24;9558:6;9541:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;9569:16;:27;9586:9;9569:27;;;;;;;;;;;;;;;;;;;;;;;;;9541:55;9515:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;9481:184;9681:6;;;;;;;;;;;9677:87;;;9711:41;9726:6;9734:9;9745:6;9711:14;:41::i;:::-;9704:48;;;;9677:87;9816:6;9796:9;:17;9806:6;9796:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9776:9;:17;9786:6;9776:17;;;;;;;;;;;;;;;:46;;;;9835:22;9860:19;9872:6;9860:11;:19::i;:::-;:83;;9937:6;9860:83;;;9895:26;9903:9;9914:6;9895:7;:26::i;:::-;9860:83;9835:108;;9960:25;9975:9;9960:14;:25::i;:::-;9956:84;;;10015:1;10006:6;:10;10002:26;;;10018:10;:8;:10::i;:::-;10002:26;9956:84;10098:14;10075:9;:20;10085:9;10075:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;10052:9;:20;10062:9;10052:20;;;;;;;;;;;;;;;:60;;;;10147:9;10130:43;;10139:6;10130:43;;;10158:14;10130:43;;;;;;:::i;:::-;;;;;;;;10191:4;10184:11;;;5510:1;8869:1334:::0;;;;;;;:::o;10211:90::-;10254:4;10292:1;10278:10;;:15;;10271:22;;10211:90;:::o;10309:100::-;10360:12;10347:10;:25;;;;10397:4;10383:11;;:18;;;;;;;;;;;;;;;;;;10309:100::o;10417:334::-;10544:4;10601:6;10581:9;:17;10591:6;10581:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10561:9;:17;10571:6;10561:17;;;;;;;;;;;;;;;:46;;;;10664:6;10641:9;:20;10651:9;10641:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;10618:9;:20;10628:9;10618:20;;;;;;;;;;;;;;;:52;;;;10703:9;10686:35;;10695:6;10686:35;;;10714:6;10686:35;;;;;;:::i;:::-;;;;;;;;10739:4;10732:11;;10417:334;;;;;:::o;10759:112::-;10819:4;10844:11;:19;10856:6;10844:19;;;;;;;;;;;;;;;;;;;;;;;;;10843:20;10836:27;;10759:112;;;:::o;11070:365::-;11158:7;11188:39;11205:10;11217:9;11188:16;:39::i;:::-;11183:86;;11251:6;11244:13;;;;11183:86;11281:17;11327:14;;11311:12;;11302:6;:21;;;;:::i;:::-;11301:40;;;;:::i;:::-;11281:60;;11380:9;11352;:24;11370:4;11352:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11418:9;11409:6;:18;;;;:::i;:::-;11402:25;;;11070:365;;;;;:::o;11443:232::-;11509:4;11547:14;:26;11562:10;11547:26;;;;;;;;;;;;;;;;;;;;;;;;;11546:27;:51;;;;;11591:6;;;;;;;;;;;11590:7;11546:51;:79;;;;;11614:11;;;;;;;;;;;11546:79;:121;;;;;11642:14;:25;11657:9;11642:25;;;;;;;;;;;;;;;;;;;;;;;;;11546:121;11526:141;;11443:232;;;:::o;11683:578::-;5078:4;5069:6;;:13;;;;;;;;;;;;;;;;;;11763:1:::1;11736:9;:24;11754:4;11736:24;;;;;;;;;;;;;;;;:28;11732:522;;;11781:20;11804:9;:24;11822:4;11804:24;;;;;;;;;;;;;;;;11781:47;;11845:21;11883:1;11869:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11845:40;;11918:4;11900;11905:1;11900:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11948:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11938:4;11943:1;11938:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11978:6;;;;;;;;;;;:57;;;12054:12;12085:1;12105:4;12136;12160:15;11978:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12212:30;12229:12;12212:30;;;;;;:::i;:::-;;;;;;;;11766:488;;11732:522;5114:5:::0;5105:6;;:14;;;;;;;;;;;;;;;;;;11683:578::o;10879:183::-;10990:4;11029;;;;;;;;;;;11019:14;;:6;:14;;;:35;;;;11050:4;;;;;;;;;;;11037:17;;:9;:17;;;11019:35;11012:42;;10879:183;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:179::-;3595:10;3616:46;3658:3;3650:6;3616:46;:::i;:::-;3694:4;3689:3;3685:14;3671:28;;3526:179;;;;:::o;3711:108::-;3788:24;3806:5;3788:24;:::i;:::-;3783:3;3776:37;3711:108;;:::o;3825:118::-;3912:24;3930:5;3912:24;:::i;:::-;3907:3;3900:37;3825:118;;:::o;3979:732::-;4098:3;4127:54;4175:5;4127:54;:::i;:::-;4197:86;4276:6;4271:3;4197:86;:::i;:::-;4190:93;;4307:56;4357:5;4307:56;:::i;:::-;4386:7;4417:1;4402:284;4427:6;4424:1;4421:13;4402:284;;;4503:6;4497:13;4530:63;4589:3;4574:13;4530:63;:::i;:::-;4523:70;;4616:60;4669:6;4616:60;:::i;:::-;4606:70;;4462:224;4449:1;4446;4442:9;4437:14;;4402:284;;;4406:14;4702:3;4695:10;;4103:608;;;3979:732;;;;:::o;4717:109::-;4798:21;4813:5;4798:21;:::i;:::-;4793:3;4786:34;4717:109;;:::o;4832:167::-;4937:55;4986:5;4937:55;:::i;:::-;4932:3;4925:68;4832:167;;:::o;5005:147::-;5100:45;5139:5;5100:45;:::i;:::-;5095:3;5088:58;5005:147;;:::o;5158:364::-;5246:3;5274:39;5307:5;5274:39;:::i;:::-;5329:71;5393:6;5388:3;5329:71;:::i;:::-;5322:78;;5409:52;5454:6;5449:3;5442:4;5435:5;5431:16;5409:52;:::i;:::-;5486:29;5508:6;5486:29;:::i;:::-;5481:3;5477:39;5470:46;;5250:272;5158:364;;;;:::o;5528:366::-;5670:3;5691:67;5755:2;5750:3;5691:67;:::i;:::-;5684:74;;5767:93;5856:3;5767:93;:::i;:::-;5885:2;5880:3;5876:12;5869:19;;5528:366;;;:::o;5900:::-;6042:3;6063:67;6127:2;6122:3;6063:67;:::i;:::-;6056:74;;6139:93;6228:3;6139:93;:::i;:::-;6257:2;6252:3;6248:12;6241:19;;5900:366;;;:::o;6272:::-;6414:3;6435:67;6499:2;6494:3;6435:67;:::i;:::-;6428:74;;6511:93;6600:3;6511:93;:::i;:::-;6629:2;6624:3;6620:12;6613:19;;6272:366;;;:::o;6644:::-;6786:3;6807:67;6871:2;6866:3;6807:67;:::i;:::-;6800:74;;6883:93;6972:3;6883:93;:::i;:::-;7001:2;6996:3;6992:12;6985:19;;6644:366;;;:::o;7016:::-;7158:3;7179:67;7243:2;7238:3;7179:67;:::i;:::-;7172:74;;7255:93;7344:3;7255:93;:::i;:::-;7373:2;7368:3;7364:12;7357:19;;7016:366;;;:::o;7388:::-;7530:3;7551:67;7615:2;7610:3;7551:67;:::i;:::-;7544:74;;7627:93;7716:3;7627:93;:::i;:::-;7745:2;7740:3;7736:12;7729:19;;7388:366;;;:::o;7760:::-;7902:3;7923:67;7987:2;7982:3;7923:67;:::i;:::-;7916:74;;7999:93;8088:3;7999:93;:::i;:::-;8117:2;8112:3;8108:12;8101:19;;7760:366;;;:::o;8132:::-;8274:3;8295:67;8359:2;8354:3;8295:67;:::i;:::-;8288:74;;8371:93;8460:3;8371:93;:::i;:::-;8489:2;8484:3;8480:12;8473:19;;8132:366;;;:::o;8504:::-;8646:3;8667:67;8731:2;8726:3;8667:67;:::i;:::-;8660:74;;8743:93;8832:3;8743:93;:::i;:::-;8861:2;8856:3;8852:12;8845:19;;8504:366;;;:::o;8876:::-;9018:3;9039:67;9103:2;9098:3;9039:67;:::i;:::-;9032:74;;9115:93;9204:3;9115:93;:::i;:::-;9233:2;9228:3;9224:12;9217:19;;8876:366;;;:::o;9248:::-;9390:3;9411:67;9475:2;9470:3;9411:67;:::i;:::-;9404:74;;9487:93;9576:3;9487:93;:::i;:::-;9605:2;9600:3;9596:12;9589:19;;9248:366;;;:::o;9620:118::-;9707:24;9725:5;9707:24;:::i;:::-;9702:3;9695:37;9620:118;;:::o;9744:112::-;9827:22;9843:5;9827:22;:::i;:::-;9822:3;9815:35;9744:112;;:::o;9862:222::-;9955:4;9993:2;9982:9;9978:18;9970:26;;10006:71;10074:1;10063:9;10059:17;10050:6;10006:71;:::i;:::-;9862:222;;;;:::o;10090:210::-;10177:4;10215:2;10204:9;10200:18;10192:26;;10228:65;10290:1;10279:9;10275:17;10266:6;10228:65;:::i;:::-;10090:210;;;;:::o;10306:258::-;10417:4;10455:2;10444:9;10440:18;10432:26;;10468:89;10554:1;10543:9;10539:17;10530:6;10468:89;:::i;:::-;10306:258;;;;:::o;10570:313::-;10683:4;10721:2;10710:9;10706:18;10698:26;;10770:9;10764:4;10760:20;10756:1;10745:9;10741:17;10734:47;10798:78;10871:4;10862:6;10798:78;:::i;:::-;10790:86;;10570:313;;;;:::o;10889:419::-;11055:4;11093:2;11082:9;11078:18;11070:26;;11142:9;11136:4;11132:20;11128:1;11117:9;11113:17;11106:47;11170:131;11296:4;11170:131;:::i;:::-;11162:139;;10889:419;;;:::o;11314:::-;11480:4;11518:2;11507:9;11503:18;11495:26;;11567:9;11561:4;11557:20;11553:1;11542:9;11538:17;11531:47;11595:131;11721:4;11595:131;:::i;:::-;11587:139;;11314:419;;;:::o;11739:::-;11905:4;11943:2;11932:9;11928:18;11920:26;;11992:9;11986:4;11982:20;11978:1;11967:9;11963:17;11956:47;12020:131;12146:4;12020:131;:::i;:::-;12012:139;;11739:419;;;:::o;12164:::-;12330:4;12368:2;12357:9;12353:18;12345:26;;12417:9;12411:4;12407:20;12403:1;12392:9;12388:17;12381:47;12445:131;12571:4;12445:131;:::i;:::-;12437:139;;12164:419;;;:::o;12589:::-;12755:4;12793:2;12782:9;12778:18;12770:26;;12842:9;12836:4;12832:20;12828:1;12817:9;12813:17;12806:47;12870:131;12996:4;12870:131;:::i;:::-;12862:139;;12589:419;;;:::o;13014:::-;13180:4;13218:2;13207:9;13203:18;13195:26;;13267:9;13261:4;13257:20;13253:1;13242:9;13238:17;13231:47;13295:131;13421:4;13295:131;:::i;:::-;13287:139;;13014:419;;;:::o;13439:::-;13605:4;13643:2;13632:9;13628:18;13620:26;;13692:9;13686:4;13682:20;13678:1;13667:9;13663:17;13656:47;13720:131;13846:4;13720:131;:::i;:::-;13712:139;;13439:419;;;:::o;13864:::-;14030:4;14068:2;14057:9;14053:18;14045:26;;14117:9;14111:4;14107:20;14103:1;14092:9;14088:17;14081:47;14145:131;14271:4;14145:131;:::i;:::-;14137:139;;13864:419;;;:::o;14289:::-;14455:4;14493:2;14482:9;14478:18;14470:26;;14542:9;14536:4;14532:20;14528:1;14517:9;14513:17;14506:47;14570:131;14696:4;14570:131;:::i;:::-;14562:139;;14289:419;;;:::o;14714:::-;14880:4;14918:2;14907:9;14903:18;14895:26;;14967:9;14961:4;14957:20;14953:1;14942:9;14938:17;14931:47;14995:131;15121:4;14995:131;:::i;:::-;14987:139;;14714:419;;;:::o;15139:::-;15305:4;15343:2;15332:9;15328:18;15320:26;;15392:9;15386:4;15382:20;15378:1;15367:9;15363:17;15356:47;15420:131;15546:4;15420:131;:::i;:::-;15412:139;;15139:419;;;:::o;15564:222::-;15657:4;15695:2;15684:9;15680:18;15672:26;;15708:71;15776:1;15765:9;15761:17;15752:6;15708:71;:::i;:::-;15564:222;;;;:::o;15792:831::-;16055:4;16093:3;16082:9;16078:19;16070:27;;16107:71;16175:1;16164:9;16160:17;16151:6;16107:71;:::i;:::-;16188:80;16264:2;16253:9;16249:18;16240:6;16188:80;:::i;:::-;16315:9;16309:4;16305:20;16300:2;16289:9;16285:18;16278:48;16343:108;16446:4;16437:6;16343:108;:::i;:::-;16335:116;;16461:72;16529:2;16518:9;16514:18;16505:6;16461:72;:::i;:::-;16543:73;16611:3;16600:9;16596:19;16587:6;16543:73;:::i;:::-;15792:831;;;;;;;;:::o;16629:214::-;16718:4;16756:2;16745:9;16741:18;16733:26;;16769:67;16833:1;16822:9;16818:17;16809:6;16769:67;:::i;:::-;16629:214;;;;:::o;16930:132::-;16997:4;17020:3;17012:11;;17050:4;17045:3;17041:14;17033:22;;16930:132;;;:::o;17068:114::-;17135:6;17169:5;17163:12;17153:22;;17068:114;;;:::o;17188:99::-;17240:6;17274:5;17268:12;17258:22;;17188:99;;;:::o;17293:113::-;17363:4;17395;17390:3;17386:14;17378:22;;17293:113;;;:::o;17412:184::-;17511:11;17545:6;17540:3;17533:19;17585:4;17580:3;17576:14;17561:29;;17412:184;;;;:::o;17602:169::-;17686:11;17720:6;17715:3;17708:19;17760:4;17755:3;17751:14;17736:29;;17602:169;;;;:::o;17777:305::-;17817:3;17836:20;17854:1;17836:20;:::i;:::-;17831:25;;17870:20;17888:1;17870:20;:::i;:::-;17865:25;;18024:1;17956:66;17952:74;17949:1;17946:81;17943:107;;;18030:18;;:::i;:::-;17943:107;18074:1;18071;18067:9;18060:16;;17777:305;;;;:::o;18088:185::-;18128:1;18145:20;18163:1;18145:20;:::i;:::-;18140:25;;18179:20;18197:1;18179:20;:::i;:::-;18174:25;;18218:1;18208:35;;18223:18;;:::i;:::-;18208:35;18265:1;18262;18258:9;18253:14;;18088:185;;;;:::o;18279:348::-;18319:7;18342:20;18360:1;18342:20;:::i;:::-;18337:25;;18376:20;18394:1;18376:20;:::i;:::-;18371:25;;18564:1;18496:66;18492:74;18489:1;18486:81;18481:1;18474:9;18467:17;18463:105;18460:131;;;18571:18;;:::i;:::-;18460:131;18619:1;18616;18612:9;18601:20;;18279:348;;;;:::o;18633:191::-;18673:4;18693:20;18711:1;18693:20;:::i;:::-;18688:25;;18727:20;18745:1;18727:20;:::i;:::-;18722:25;;18766:1;18763;18760:8;18757:34;;;18771:18;;:::i;:::-;18757:34;18816:1;18813;18809:9;18801:17;;18633:191;;;;:::o;18830:96::-;18867:7;18896:24;18914:5;18896:24;:::i;:::-;18885:35;;18830:96;;;:::o;18932:90::-;18966:7;19009:5;19002:13;18995:21;18984:32;;18932:90;;;:::o;19028:126::-;19065:7;19105:42;19098:5;19094:54;19083:65;;19028:126;;;:::o;19160:77::-;19197:7;19226:5;19215:16;;19160:77;;;:::o;19243:86::-;19278:7;19318:4;19311:5;19307:16;19296:27;;19243:86;;;:::o;19335:144::-;19403:9;19436:37;19467:5;19436:37;:::i;:::-;19423:50;;19335:144;;;:::o;19485:121::-;19543:9;19576:24;19594:5;19576:24;:::i;:::-;19563:37;;19485:121;;;:::o;19612:126::-;19662:9;19695:37;19726:5;19695:37;:::i;:::-;19682:50;;19612:126;;;:::o;19744:113::-;19794:9;19827:24;19845:5;19827:24;:::i;:::-;19814:37;;19744:113;;;:::o;19863:307::-;19931:1;19941:113;19955:6;19952:1;19949:13;19941:113;;;20040:1;20035:3;20031:11;20025:18;20021:1;20016:3;20012:11;20005:39;19977:2;19974:1;19970:10;19965:15;;19941:113;;;20072:6;20069:1;20066:13;20063:101;;;20152:1;20143:6;20138:3;20134:16;20127:27;20063:101;19912:258;19863:307;;;:::o;20176:180::-;20224:77;20221:1;20214:88;20321:4;20318:1;20311:15;20345:4;20342:1;20335:15;20362:180;20410:77;20407:1;20400:88;20507:4;20504:1;20497:15;20531:4;20528:1;20521:15;20548:180;20596:77;20593:1;20586:88;20693:4;20690:1;20683:15;20717:4;20714:1;20707:15;20734:180;20782:77;20779:1;20772:88;20879:4;20876:1;20869:15;20903:4;20900:1;20893:15;21043:117;21152:1;21149;21142:12;21166:102;21207:6;21258:2;21254:7;21249:2;21242:5;21238:14;21234:28;21224:38;;21166:102;;;:::o;21274:171::-;21414:23;21410:1;21402:6;21398:14;21391:47;21274:171;:::o;21451:165::-;21591:17;21587:1;21579:6;21575:14;21568:41;21451:165;:::o;21622:225::-;21762:34;21758:1;21750:6;21746:14;21739:58;21831:8;21826:2;21818:6;21814:15;21807:33;21622:225;:::o;21853:170::-;21993:22;21989:1;21981:6;21977:14;21970:46;21853:170;:::o;22029:172::-;22169:24;22165:1;22157:6;22153:14;22146:48;22029:172;:::o;22207:177::-;22347:29;22343:1;22335:6;22331:14;22324:53;22207:177;:::o;22390:174::-;22530:26;22526:1;22518:6;22514:14;22507:50;22390:174;:::o;22570:::-;22710:26;22706:1;22698:6;22694:14;22687:50;22570:174;:::o;22750:182::-;22890:34;22886:1;22878:6;22874:14;22867:58;22750:182;:::o;22938:171::-;23078:23;23074:1;23066:6;23062:14;23055:47;22938:171;:::o;23115:177::-;23255:29;23251:1;23243:6;23239:14;23232:53;23115:177;:::o;23298:122::-;23371:24;23389:5;23371:24;:::i;:::-;23364:5;23361:35;23351:63;;23410:1;23407;23400:12;23351:63;23298:122;:::o;23426:116::-;23496:21;23511:5;23496:21;:::i;:::-;23489:5;23486:32;23476:60;;23532:1;23529;23522:12;23476:60;23426:116;:::o;23548:122::-;23621:24;23639:5;23621:24;:::i;:::-;23614:5;23611:35;23601:63;;23660:1;23657;23650:12;23601:63;23548:122;:::o

Swarm Source

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