ETH Price: $2,595.63 (-2.35%)

Token

Ben Armstrong (BITBOY)
 

Overview

Max Total Supply

100,000,000 BITBOY

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19,735.018128926664818688 BITBOY

Value
$0.00
0xd9e7b3b6e8926ccbae0204d2f243751bca9dd09b
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:
BenArmstrong

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-07
*/

/**
 ____  __  ____  ____   __  _  _
(  _ \(  )(_  _)(  _ \ /  \( \/ )
 ) _ ( )(   )(   ) _ ((  O ))  /
(____/(__) (__) (____/ \__/(__/ 
Ben Armstrong $BITBOY has become the meme you need today, according to his own words! Taxes 0/0 and burned liquidity!
https://t.me/BenArmstrongToken
https://twitter.com/bitboy_crypto/status/1655273967962161153?s=46&t=ZyIEZ7ngDAIPL7WyNmR_CA
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 BenArmstrong is IERC20, Ownable {
    address DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
    address ZERO_ADDRESS = 0x0000000000000000000000000000000000000000;
    string constant _name = "Ben Armstrong";
    string constant _symbol = "BITBOY";
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 100_000_000 * (10**_decimals);
    uint256 public walletMax = (_totalSupply * 2) / 100;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeFree;
    mapping(address => bool) liqAuthor;
    uint256 feeDenominator = 10000;
    uint256 teamFee = 5000;

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

    address public pair;

    uint256 public startedAt;
    bool public swapWorking = false;
    bool fuckBears = false;

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

    modifier walletSizeLimit(address recipient, uint256 amount) {
        if (
            recipient != pair &&
            !liqAuthor[recipient] &&
            !isFeeFree[recipient]
        ) {
            require(
                _balances[recipient] + amount <= walletMax,
                "Exceeds max wallet size"
            );
        }
        _;
    }

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

    event FundsDistributed(uint256 teamFee);

    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;

        isFeeFree[owner()] = true;
        isFeeFree[address(this)] = true;
        liqAuthor[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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

    function setTax(uint256 newFee) external onlyOwner {
        require(
            newFee >= 0 && newFee <= feeDenominator,
            "Wrong tax"
        );
        teamFee = newFee;
    }

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

    function startTrading() external onlyOwner {
        require(!fuckBears);
        fuckBears = true;
        startedAt = 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(liqAuthor[sender], "Liquidity not added yet.");
            start();
        }

        if (!fuckBears) {
            require(
                liqAuthor[sender] || liqAuthor[recipient],
                "Trading not open."
            );
        }

        if (swap) {
            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 startedAt != 0;
    }

    function start() internal {
        startedAt = block.number;
        swapWorking = 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 !isFeeFree[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 * teamFee) / feeDenominator;
        _balances[address(this)] += feeAmount;

        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return
            !liquidityPools[msg.sender] &&
            !swap &&
            swapWorking &&
            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 addLiquidityAuthor(address _liquidityAuthor) external onlyOwner {
        liqAuthor[_liquidityAuthor] = true;
    }

    function changeOptions(bool _enabled) external onlyOwner {
        swapWorking = _enabled;
    }

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

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":"teamFee","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":"_liquidityAuthor","type":"address"}],"name":"addLiquidityAuthor","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":"approveMax","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":"changeOptions","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":"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":"newFee","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWorking","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"},{"inputs":[],"name":"walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062000a22565b6305f5e100620000aa919062000b5f565b60035560646002600354620000c0919062000b5f565b620000cc91906200098f565b600455612710600955611388600a55737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055503480156200017357600080fd5b50600062000186620008a960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002f057600080fd5b505afa15801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b9190620008f1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003af57600080fd5b505afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea9190620008f1565b306040518363ffffffff1660e01b81526004016200040a92919062000945565b602060405180830381600087803b1580156200042557600080fd5b505af11580156200043a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004609190620008f1565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660006200054f620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620006c5620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600062000784620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060035460056000620007ec620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200083a620008b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200089b919062000972565b60405180910390a362000c95565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620008eb8162000c7b565b92915050565b6000602082840312156200090a576200090962000c69565b5b60006200091a84828501620008da565b91505092915050565b6200092e8162000bc0565b82525050565b6200093f8162000bf4565b82525050565b60006040820190506200095c600083018562000923565b6200096b602083018462000923565b9392505050565b600060208201905062000989600083018462000934565b92915050565b60006200099c8262000bf4565b9150620009a98362000bf4565b925082620009bc57620009bb62000c3a565b5b828204905092915050565b6000808291508390505b600185111562000a1957808604811115620009f157620009f062000c0b565b5b600185161562000a015780820291505b808102905062000a118562000c6e565b9450620009d1565b94509492505050565b600062000a2f8262000bf4565b915062000a3c8362000bfe565b925062000a6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a73565b905092915050565b60008262000a85576001905062000b58565b8162000a95576000905062000b58565b816001811462000aae576002811462000ab95762000aef565b600191505062000b58565b60ff84111562000ace5762000acd62000c0b565b5b8360020a91508482111562000ae85762000ae762000c0b565b5b5062000b58565b5060208310610133831016604e8410600b841016171562000b295782820a90508381111562000b235762000b2262000c0b565b5b62000b58565b62000b388484846001620009c7565b9250905081840481111562000b525762000b5162000c0b565b5b81810290505b9392505050565b600062000b6c8262000bf4565b915062000b798362000bf4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb55762000bb462000c0b565b5b828202905092915050565b600062000bcd8262000bd4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c868162000bc0565b811462000c9257600080fd5b50565b612ee58062000ca56000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063f21f537d11610064578063f21f537d1461057d578063f2fde38b146105a8578063f887ea40146105d1578063fe314524146105fc5761018c565b8063a9059cbb146104d8578063c29b696614610515578063dd62ed3e146105405761018c565b806370a08231146103d8578063715018a614610415578063893d20e81461042c5780638da5cb5b1461045757806395d89b4114610482578063a8aa1b31146104ad5761018c565b8063293230b81161013e578063389216a311610118578063389216a31461031e57806340cd2dd6146103475780634f3e1efc14610370578063571ac8b01461039b5761018c565b8063293230b8146102b35780632e5bb6ff146102ca578063313ce567146102f35761018c565b806306fdde0314610191578063095ea7b3146101bc5780630961fbf7146101f95780631525ff7d1461022257806318160ddd1461024b57806323b872dd146102765761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610627565b6040516101b39190612763565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906123df565b610664565b6040516101f0919061272d565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b919061244c565b610756565b005b34801561022e57600080fd5b50610249600480360381019061024491906122f2565b610876565b005b34801561025757600080fd5b5061026061094f565b60405161026d91906128e5565b60405180910390f35b34801561028257600080fd5b5061029d6004803603810190610298919061238c565b610959565b6040516102aa919061272d565b60405180910390f35b3480156102bf57600080fd5b506102c8610b1b565b005b3480156102d657600080fd5b506102f160048036038101906102ec919061244c565b610bee565b005b3480156102ff57600080fd5b50610308610cdf565b604051610315919061295a565b60405180910390f35b34801561032a57600080fd5b506103456004803603810190610340919061241f565b610ce8565b005b34801561035357600080fd5b5061036e600480360381019061036991906122f2565b610d9a565b005b34801561037c57600080fd5b50610385610e8a565b60405161039291906128e5565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd91906122f2565b610efe565b6040516103cf919061272d565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906122f2565b610f31565b60405161040c91906128e5565b60405180910390f35b34801561042157600080fd5b5061042a610f7a565b005b34801561043857600080fd5b506104416110cd565b60405161044e9190612712565b60405180910390f35b34801561046357600080fd5b5061046c6110dc565b6040516104799190612712565b60405180910390f35b34801561048e57600080fd5b50610497611105565b6040516104a49190612763565b60405180910390f35b3480156104b957600080fd5b506104c2611142565b6040516104cf9190612712565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa91906123df565b611168565b60405161050c919061272d565b60405180910390f35b34801561052157600080fd5b5061052a61117d565b604051610537919061272d565b60405180910390f35b34801561054c57600080fd5b506105676004803603810190610562919061234c565b611190565b60405161057491906128e5565b60405180910390f35b34801561058957600080fd5b50610592611217565b60405161059f91906128e5565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca91906122f2565b61121d565b005b3480156105dd57600080fd5b506105e66113df565b6040516105f39190612748565b60405180910390f35b34801561060857600080fd5b50610611611405565b60405161061e91906128e5565b60405180910390f35b60606040518060400160405280600d81526020017f42656e2041726d7374726f6e6700000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161074491906128e5565b60405180910390a36001905092915050565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079761140b565b73ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e4906127e5565b60405180910390fd5b6000479050601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461083c9190612a51565b6108469190612a20565b9081150290604051600060405180830381858888f19350505050158015610871573d6000803e3d6000fd5b505050565b61087e61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612865565b60405180910390fd5b80601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b075781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a869190612aab565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b12848484611413565b90509392505050565b610b2361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612865565b60405180910390fd5b601060019054906101000a900460ff1615610bca57600080fd5b6001601060016101000a81548160ff02191690831515021790555043600f81905550565b610bf661140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a90612865565b60405180910390fd5b60008110158015610c9657506009548111155b610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906128a5565b60405180910390fd5b80600a8190555050565b60006012905090565b610cf061140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7490612865565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b610da261140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2690612865565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610eb7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f31565b610ee2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f31565b610eec91906129ca565b600354610ef99190612aab565b905090565b6000610f2a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610664565b9050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f8261140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006110d76110dc565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f424954424f590000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611175338484611413565b905092915050565b601060009054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b61122561140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611319906127a5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600033905090565b60008282600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114bf5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115155750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115aa5760045481600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156891906129ca565b11156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a090612885565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612825565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612805565b60405180910390fd5b600084116116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612785565b60405180910390fd5b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561174f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611746906127c5565b60405180910390fd5b611757611b36565b1580156117ad5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561184757600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590612845565b60405180910390fd5b611846611b43565b5b601060019054906101000a900460ff1661193c57600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118fc5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906128c5565b60405180910390fd5b5b601060029054906101000a900460ff16156119635761195c868686611b67565b9250611b2d565b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae9190612aab565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006119fc87611cf5565b611a065784611a11565b611a108686611d4c565b5b9050611a1c86611def565b15611a34576000851115611a3357611a32611ecc565b5b5b80600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7f91906129ca565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1f91906128e5565b60405180910390a360019350505b50509392505050565b600080600f541415905090565b43600f819055506001601060006101000a81548160ff021916908315150217905550565b600081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb49190612aab565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4291906129ca565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ce291906128e5565b60405180910390a3600190509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000611d5833846121eb565b611d6457819050611de9565b6000600954600a5484611d779190612a51565b611d819190612a20565b905080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd291906129ca565b925050819055508083611de59190612aab565b9150505b92915050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e585750601060029054906101000a900460ff16155b8015611e705750601060009054906101000a900460ff165b8015611ec55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b6001601060026101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156121ce576000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff811115611f9057611f8f612c3c565b5b604051908082528060200260200182016040528015611fbe5781602001602082028036833780820191505090505b5090503081600081518110611fd657611fd5612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561207857600080fd5b505afa15801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b0919061231f565b816001815181106120c4576120c3612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612162959493929190612900565b600060405180830381600087803b15801561217c57600080fd5b505af1158015612190573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516121c391906128e5565b60405180910390a150505b6000601060026101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122965750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000813590506122ad81612e6a565b92915050565b6000815190506122c281612e6a565b92915050565b6000813590506122d781612e81565b92915050565b6000813590506122ec81612e98565b92915050565b60006020828403121561230857612307612c6b565b5b60006123168482850161229e565b91505092915050565b60006020828403121561233557612334612c6b565b5b6000612343848285016122b3565b91505092915050565b6000806040838503121561236357612362612c6b565b5b60006123718582860161229e565b92505060206123828582860161229e565b9150509250929050565b6000806000606084860312156123a5576123a4612c6b565b5b60006123b38682870161229e565b93505060206123c48682870161229e565b92505060406123d5868287016122dd565b9150509250925092565b600080604083850312156123f6576123f5612c6b565b5b60006124048582860161229e565b9250506020612415858286016122dd565b9150509250929050565b60006020828403121561243557612434612c6b565b5b6000612443848285016122c8565b91505092915050565b60006020828403121561246257612461612c6b565b5b6000612470848285016122dd565b91505092915050565b60006124858383612491565b60208301905092915050565b61249a81612adf565b82525050565b6124a981612adf565b82525050565b60006124ba82612985565b6124c481856129a8565b93506124cf83612975565b8060005b838110156125005781516124e78882612479565b97506124f28361299b565b9250506001810190506124d3565b5085935050505092915050565b61251681612af1565b82525050565b61252581612b34565b82525050565b61253481612b46565b82525050565b600061254582612990565b61254f81856129b9565b935061255f818560208601612b7c565b61256881612c70565b840191505092915050565b60006125806015836129b9565b915061258b82612c81565b602082019050919050565b60006125a36026836129b9565b91506125ae82612caa565b604082019050919050565b60006125c66014836129b9565b91506125d182612cf9565b602082019050919050565b60006125e96014836129b9565b91506125f482612d22565b602082019050919050565b600061260c6016836129b9565b915061261782612d4b565b602082019050919050565b600061262f6018836129b9565b915061263a82612d74565b602082019050919050565b60006126526018836129b9565b915061265d82612d9d565b602082019050919050565b60006126756020836129b9565b915061268082612dc6565b602082019050919050565b60006126986017836129b9565b91506126a382612def565b602082019050919050565b60006126bb6009836129b9565b91506126c682612e18565b602082019050919050565b60006126de6011836129b9565b91506126e982612e41565b602082019050919050565b6126fd81612b1d565b82525050565b61270c81612b27565b82525050565b600060208201905061272760008301846124a0565b92915050565b6000602082019050612742600083018461250d565b92915050565b600060208201905061275d600083018461251c565b92915050565b6000602082019050818103600083015261277d818461253a565b905092915050565b6000602082019050818103600083015261279e81612573565b9050919050565b600060208201905081810360008301526127be81612596565b9050919050565b600060208201905081810360008301526127de816125b9565b9050919050565b600060208201905081810360008301526127fe816125dc565b9050919050565b6000602082019050818103600083015261281e816125ff565b9050919050565b6000602082019050818103600083015261283e81612622565b9050919050565b6000602082019050818103600083015261285e81612645565b9050919050565b6000602082019050818103600083015261287e81612668565b9050919050565b6000602082019050818103600083015261289e8161268b565b9050919050565b600060208201905081810360008301526128be816126ae565b9050919050565b600060208201905081810360008301526128de816126d1565b9050919050565b60006020820190506128fa60008301846126f4565b92915050565b600060a08201905061291560008301886126f4565b612922602083018761252b565b818103604083015261293481866124af565b905061294360608301856124a0565b61295060808301846126f4565b9695505050505050565b600060208201905061296f6000830184612703565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129d582612b1d565b91506129e083612b1d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a1557612a14612baf565b5b828201905092915050565b6000612a2b82612b1d565b9150612a3683612b1d565b925082612a4657612a45612bde565b5b828204905092915050565b6000612a5c82612b1d565b9150612a6783612b1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612aa057612a9f612baf565b5b828202905092915050565b6000612ab682612b1d565b9150612ac183612b1d565b925082821015612ad457612ad3612baf565b5b828203905092915050565b6000612aea82612afd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b3f82612b58565b9050919050565b6000612b5182612b1d565b9050919050565b6000612b6382612b6a565b9050919050565b6000612b7582612afd565b9050919050565b60005b83811015612b9a578082015181840152602081019050612b7f565b83811115612ba9576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d000000000000000000000000600082015250565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45786365656473206d61782077616c6c65742073697a65000000000000000000600082015250565b7f57726f6e67207461780000000000000000000000000000000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e2e000000000000000000000000000000600082015250565b612e7381612adf565b8114612e7e57600080fd5b50565b612e8a81612af1565b8114612e9557600080fd5b50565b612ea181612b1d565b8114612eac57600080fd5b5056fea26469706673582212205e945d0ce62d888218ae755b920c66668192a7ff014f28bef40c58d1bc52c60f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063f21f537d11610064578063f21f537d1461057d578063f2fde38b146105a8578063f887ea40146105d1578063fe314524146105fc5761018c565b8063a9059cbb146104d8578063c29b696614610515578063dd62ed3e146105405761018c565b806370a08231146103d8578063715018a614610415578063893d20e81461042c5780638da5cb5b1461045757806395d89b4114610482578063a8aa1b31146104ad5761018c565b8063293230b81161013e578063389216a311610118578063389216a31461031e57806340cd2dd6146103475780634f3e1efc14610370578063571ac8b01461039b5761018c565b8063293230b8146102b35780632e5bb6ff146102ca578063313ce567146102f35761018c565b806306fdde0314610191578063095ea7b3146101bc5780630961fbf7146101f95780631525ff7d1461022257806318160ddd1461024b57806323b872dd146102765761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610627565b6040516101b39190612763565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de91906123df565b610664565b6040516101f0919061272d565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b919061244c565b610756565b005b34801561022e57600080fd5b50610249600480360381019061024491906122f2565b610876565b005b34801561025757600080fd5b5061026061094f565b60405161026d91906128e5565b60405180910390f35b34801561028257600080fd5b5061029d6004803603810190610298919061238c565b610959565b6040516102aa919061272d565b60405180910390f35b3480156102bf57600080fd5b506102c8610b1b565b005b3480156102d657600080fd5b506102f160048036038101906102ec919061244c565b610bee565b005b3480156102ff57600080fd5b50610308610cdf565b604051610315919061295a565b60405180910390f35b34801561032a57600080fd5b506103456004803603810190610340919061241f565b610ce8565b005b34801561035357600080fd5b5061036e600480360381019061036991906122f2565b610d9a565b005b34801561037c57600080fd5b50610385610e8a565b60405161039291906128e5565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd91906122f2565b610efe565b6040516103cf919061272d565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906122f2565b610f31565b60405161040c91906128e5565b60405180910390f35b34801561042157600080fd5b5061042a610f7a565b005b34801561043857600080fd5b506104416110cd565b60405161044e9190612712565b60405180910390f35b34801561046357600080fd5b5061046c6110dc565b6040516104799190612712565b60405180910390f35b34801561048e57600080fd5b50610497611105565b6040516104a49190612763565b60405180910390f35b3480156104b957600080fd5b506104c2611142565b6040516104cf9190612712565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa91906123df565b611168565b60405161050c919061272d565b60405180910390f35b34801561052157600080fd5b5061052a61117d565b604051610537919061272d565b60405180910390f35b34801561054c57600080fd5b506105676004803603810190610562919061234c565b611190565b60405161057491906128e5565b60405180910390f35b34801561058957600080fd5b50610592611217565b60405161059f91906128e5565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca91906122f2565b61121d565b005b3480156105dd57600080fd5b506105e66113df565b6040516105f39190612748565b60405180910390f35b34801561060857600080fd5b50610611611405565b60405161061e91906128e5565b60405180910390f35b60606040518060400160405280600d81526020017f42656e2041726d7374726f6e6700000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161074491906128e5565b60405180910390a36001905092915050565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079761140b565b73ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e4906127e5565b60405180910390fd5b6000479050601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848461083c9190612a51565b6108469190612a20565b9081150290604051600060405180830381858888f19350505050158015610871573d6000803e3d6000fd5b505050565b61087e61140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612865565b60405180910390fd5b80601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b075781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a869190612aab565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b12848484611413565b90509392505050565b610b2361140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612865565b60405180910390fd5b601060019054906101000a900460ff1615610bca57600080fd5b6001601060016101000a81548160ff02191690831515021790555043600f81905550565b610bf661140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a90612865565b60405180910390fd5b60008110158015610c9657506009548111155b610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906128a5565b60405180910390fd5b80600a8190555050565b60006012905090565b610cf061140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7490612865565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b610da261140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2690612865565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610eb7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f31565b610ee2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f31565b610eec91906129ca565b600354610ef99190612aab565b905090565b6000610f2a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610664565b9050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f8261140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006110d76110dc565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f424954424f590000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611175338484611413565b905092915050565b601060009054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b61122561140b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611319906127a5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b600033905090565b60008282600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114bf5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115155750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115aa5760045481600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156891906129ca565b11156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a090612885565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612825565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612805565b60405180910390fd5b600084116116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612785565b60405180910390fd5b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561174f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611746906127c5565b60405180910390fd5b611757611b36565b1580156117ad5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561184757600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590612845565b60405180910390fd5b611846611b43565b5b601060019054906101000a900460ff1661193c57600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118fc5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611932906128c5565b60405180910390fd5b5b601060029054906101000a900460ff16156119635761195c868686611b67565b9250611b2d565b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae9190612aab565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006119fc87611cf5565b611a065784611a11565b611a108686611d4c565b5b9050611a1c86611def565b15611a34576000851115611a3357611a32611ecc565b5b5b80600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7f91906129ca565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1f91906128e5565b60405180910390a360019350505b50509392505050565b600080600f541415905090565b43600f819055506001601060006101000a81548160ff021916908315150217905550565b600081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb49190612aab565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4291906129ca565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ce291906128e5565b60405180910390a3600190509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000611d5833846121eb565b611d6457819050611de9565b6000600954600a5484611d779190612a51565b611d819190612a20565b905080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd291906129ca565b925050819055508083611de59190612aab565b9150505b92915050565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e585750601060029054906101000a900460ff16155b8015611e705750601060009054906101000a900460ff165b8015611ec55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b6001601060026101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156121ce576000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff811115611f9057611f8f612c3c565b5b604051908082528060200260200182016040528015611fbe5781602001602082028036833780820191505090505b5090503081600081518110611fd657611fd5612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561207857600080fd5b505afa15801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b0919061231f565b816001815181106120c4576120c3612c0d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612162959493929190612900565b600060405180830381600087803b15801561217c57600080fd5b505af1158015612190573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516121c391906128e5565b60405180910390a150505b6000601060026101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122965750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000813590506122ad81612e6a565b92915050565b6000815190506122c281612e6a565b92915050565b6000813590506122d781612e81565b92915050565b6000813590506122ec81612e98565b92915050565b60006020828403121561230857612307612c6b565b5b60006123168482850161229e565b91505092915050565b60006020828403121561233557612334612c6b565b5b6000612343848285016122b3565b91505092915050565b6000806040838503121561236357612362612c6b565b5b60006123718582860161229e565b92505060206123828582860161229e565b9150509250929050565b6000806000606084860312156123a5576123a4612c6b565b5b60006123b38682870161229e565b93505060206123c48682870161229e565b92505060406123d5868287016122dd565b9150509250925092565b600080604083850312156123f6576123f5612c6b565b5b60006124048582860161229e565b9250506020612415858286016122dd565b9150509250929050565b60006020828403121561243557612434612c6b565b5b6000612443848285016122c8565b91505092915050565b60006020828403121561246257612461612c6b565b5b6000612470848285016122dd565b91505092915050565b60006124858383612491565b60208301905092915050565b61249a81612adf565b82525050565b6124a981612adf565b82525050565b60006124ba82612985565b6124c481856129a8565b93506124cf83612975565b8060005b838110156125005781516124e78882612479565b97506124f28361299b565b9250506001810190506124d3565b5085935050505092915050565b61251681612af1565b82525050565b61252581612b34565b82525050565b61253481612b46565b82525050565b600061254582612990565b61254f81856129b9565b935061255f818560208601612b7c565b61256881612c70565b840191505092915050565b60006125806015836129b9565b915061258b82612c81565b602082019050919050565b60006125a36026836129b9565b91506125ae82612caa565b604082019050919050565b60006125c66014836129b9565b91506125d182612cf9565b602082019050919050565b60006125e96014836129b9565b91506125f482612d22565b602082019050919050565b600061260c6016836129b9565b915061261782612d4b565b602082019050919050565b600061262f6018836129b9565b915061263a82612d74565b602082019050919050565b60006126526018836129b9565b915061265d82612d9d565b602082019050919050565b60006126756020836129b9565b915061268082612dc6565b602082019050919050565b60006126986017836129b9565b91506126a382612def565b602082019050919050565b60006126bb6009836129b9565b91506126c682612e18565b602082019050919050565b60006126de6011836129b9565b91506126e982612e41565b602082019050919050565b6126fd81612b1d565b82525050565b61270c81612b27565b82525050565b600060208201905061272760008301846124a0565b92915050565b6000602082019050612742600083018461250d565b92915050565b600060208201905061275d600083018461251c565b92915050565b6000602082019050818103600083015261277d818461253a565b905092915050565b6000602082019050818103600083015261279e81612573565b9050919050565b600060208201905081810360008301526127be81612596565b9050919050565b600060208201905081810360008301526127de816125b9565b9050919050565b600060208201905081810360008301526127fe816125dc565b9050919050565b6000602082019050818103600083015261281e816125ff565b9050919050565b6000602082019050818103600083015261283e81612622565b9050919050565b6000602082019050818103600083015261285e81612645565b9050919050565b6000602082019050818103600083015261287e81612668565b9050919050565b6000602082019050818103600083015261289e8161268b565b9050919050565b600060208201905081810360008301526128be816126ae565b9050919050565b600060208201905081810360008301526128de816126d1565b9050919050565b60006020820190506128fa60008301846126f4565b92915050565b600060a08201905061291560008301886126f4565b612922602083018761252b565b818103604083015261293481866124af565b905061294360608301856124a0565b61295060808301846126f4565b9695505050505050565b600060208201905061296f6000830184612703565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129d582612b1d565b91506129e083612b1d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a1557612a14612baf565b5b828201905092915050565b6000612a2b82612b1d565b9150612a3683612b1d565b925082612a4657612a45612bde565b5b828204905092915050565b6000612a5c82612b1d565b9150612a6783612b1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612aa057612a9f612baf565b5b828202905092915050565b6000612ab682612b1d565b9150612ac183612b1d565b925082821015612ad457612ad3612baf565b5b828203905092915050565b6000612aea82612afd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b3f82612b58565b9050919050565b6000612b5182612b1d565b9050919050565b6000612b6382612b6a565b9050919050565b6000612b7582612afd565b9050919050565b60005b83811015612b9a578082015181840152602081019050612b7f565b83811115612ba9576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d000000000000000000000000600082015250565b7f45524332303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45786365656473206d61782077616c6c65742073697a65000000000000000000600082015250565b7f57726f6e67207461780000000000000000000000000000000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e2e000000000000000000000000000000600082015250565b612e7381612adf565b8114612e7e57600080fd5b50565b612e8a81612af1565b8114612e9557600080fd5b50565b612ea181612b1d565b8114612eac57600080fd5b5056fea26469706673582212205e945d0ce62d888218ae755b920c66668192a7ff014f28bef40c58d1bc52c60f64736f6c63430008070033

Deployed Bytecode Sourcemap

3443:8491:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6026:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6535:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7226:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6921:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5726:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7765:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:143;;;;;;;;;;;;;:::i;:::-;;7023:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5836:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11675:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11541:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11781:150;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6791:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6212:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2999:148;;;;;;;;;;;;;:::i;:::-;;6119:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2785:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5929:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4287:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7569:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4346:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6339:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4315:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3155:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4135:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3817:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6026:85;6065:13;6098:5;;;;;;;;;;;;;;;;;6091:12;;6026:85;:::o;6535:248::-;6637:4;6694:6;6659:11;:23;6671:10;6659:23;;;;;;;;;;;;;;;:32;6683:7;6659:32;;;;;;;;;;;;;;;:41;;;;6737:7;6716:37;;6725:10;6716:37;;;6746:6;6716:37;;;;;;:::i;:::-;;;;;;;;6771:4;6764:11;;6535:248;;;;:::o;7226:184::-;4979:10;;;;;;;;;;;4963:26;;:12;:10;:12::i;:::-;:26;;;4955:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7294:17:::1;7314:21;7294:41;;7354:10;;;;;;;;;;;7346:28;;:56;7398:3;7388:6;7376:9;:18;;;;:::i;:::-;7375:26;;;;:::i;:::-;7346:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7283:127;7226:184:::0;:::o;6921:94::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7002:5:::1;6989:10;;:18;;;;;;;;;;;;;;;;;;6921:94:::0;:::o;5726:102::-;5781:7;5808:12;;5801:19;;5726:102;:::o;7765:411::-;7899:4;7955:17;7920:11;:19;7932:6;7920:19;;;;;;;;;;;;;;;:31;7940:10;7920:31;;;;;;;;;;;;;;;;:52;7916:193;;8091:6;8040:11;:19;8052:6;8040:19;;;;;;;;;;;;;;;:31;8060:10;8040:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;7989:11;:19;8001:6;7989:19;;;;;;;;;;;;;;;:31;8009:10;7989:31;;;;;;;;;;;;;;;:108;;;;7916:193;8128:40;8142:6;8150:9;8161:6;8128:13;:40::i;:::-;8121:47;;7765:411;;;;;:::o;7418:143::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7481:9:::1;;;;;;;;;;;7480:10;7472:19;;;::::0;::::1;;7514:4;7502:9;;:16;;;;;;;;;;;;;;;;;;7541:12;7529:9;:24;;;;7418:143::o:0;7023:195::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7117:1:::1;7107:6;:11;;:39;;;;;7132:14;;7122:6;:24;;7107:39;7085:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;7204:6;7194:7;:16;;;;7023:195:::0;:::o;5836:85::-;5879:5;3749:2;5897:16;;5836:85;:::o;11675:98::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11757:8:::1;11743:11;;:22;;;;;;;;;;;;;;;;;;11675:98:::0;:::o;11541:126::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:4:::1;11625:9;:27;11635:16;11625:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11541:126:::0;:::o;11781:150::-;11830:7;11899:23;11909:12;;;;;;;;;;;11899:9;:23::i;:::-;11873;11883:12;;;;;;;;;;;11873:9;:23::i;:::-;:49;;;;:::i;:::-;11857:12;;:66;;;;:::i;:::-;11850:73;;11781:150;:::o;6791:122::-;6846:4;6870:35;6878:7;6887:17;6870:7;:35::i;:::-;6863:42;;6791:122;;;:::o;6212:119::-;6278:7;6305:9;:18;6315:7;6305:18;;;;;;;;;;;;;;;;6298:25;;6212:119;;;:::o;2999:148::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3106:1:::1;3069:40;;3090:6;::::0;::::1;;;;;;;;3069:40;;;;;;;;;;;;3137:1;3120:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2999:148::o:0;6119:85::-;6162:7;6189;:5;:7::i;:::-;6182:14;;6119:85;:::o;2785:79::-;2823:7;2850:6;;;;;;;;;;;2843:13;;2785:79;:::o;5929:89::-;5970:13;6003:7;;;;;;;;;;;;;;;;;5996:14;;5929:89;:::o;4287:19::-;;;;;;;;;;;;;:::o;7569:188::-;7676:4;7705:44;7719:10;7731:9;7742:6;7705:13;:44::i;:::-;7698:51;;7569:188;;;;:::o;4346:31::-;;;;;;;;;;;;;:::o;6339:188::-;6459:7;6491:11;:19;6503:6;6491:19;;;;;;;;;;;;;;;:28;6511:7;6491:28;;;;;;;;;;;;;;;;6484:35;;6339:188;;;;:::o;4315:24::-;;;;:::o;3155:281::-;2922:12;:10;:12::i;:::-;2912:22;;:6;;;;;;;;;;:22;;;2904:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3278:1:::1;3258:22;;:8;:22;;;;3236:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3391:8;3362:38;;3383:6;::::0;::::1;;;;;;;;3362:38;;;;;;;;;;;;3420:8;3411:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3155:281:::0;:::o;4135:24::-;;;;;;;;;;;;;:::o;3817:51::-;;;;:::o;532:107::-;577:15;620:10;605:26;;532:107;:::o;8184:1303::-;8345:4;8317:9;8328:6;4626:4;;;;;;;;;;;4613:17;;:9;:17;;;;:55;;;;;4648:9;:20;4658:9;4648:20;;;;;;;;;;;;;;;;;;;;;;;;;4647:21;4613:55;:93;;;;;4686:9;:20;4696:9;4686:20;;;;;;;;;;;;;;;;;;;;;;;;;4685:21;4613:93;4595:277;;;4792:9;;4782:6;4759:9;:20;4769:9;4759:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:42;;4733:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;4595:277;8388:1:::1;8370:20;;:6;:20;;;;8362:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;8459:1;8438:23;;:9;:23;;;;8430:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;8516:1;8507:6;:10;8499:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;8583:6;8562:9;:17;8572:6;8562:17;;;;;;;;;;;;;;;;:27;;8554:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8632:10;:8;:10::i;:::-;8631:11;:40;;;;;8646:14;:25;8661:9;8646:25;;;;;;;;;;;;;;;;;;;;;;;;;8631:40;8627:149;;;8696:9;:17;8706:6;8696:17;;;;;;;;;;;;;;;;;;;;;;;;;8688:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8757:7;:5;:7::i;:::-;8627:149;8793:9;;;;;;;;;;;8788:163;;8845:9;:17;8855:6;8845:17;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;8866:9;:20;8876:9;8866:20;;;;;;;;;;;;;;;;;;;;;;;;;8845:41;8819:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8788:163;8967:4;;;;;;;;;;;8963:85;;;8995:41;9010:6;9018:9;9029:6;8995:14;:41::i;:::-;8988:48;;;;8963:85;9100:6;9080:9;:17;9090:6;9080:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9060:9;:17;9070:6;9060:17;;;;;;;;;;;;;;;:46;;;;9119:22;9144:19;9156:6;9144:11;:19::i;:::-;:83;;9221:6;9144:83;;;9179:26;9187:9;9198:6;9179:7;:26::i;:::-;9144:83;9119:108;;9244:25;9259:9;9244:14;:25::i;:::-;9240:84;;;9299:1;9290:6;:10;9286:26;;;9302:10;:8;:10::i;:::-;9286:26;9240:84;9382:14;9359:9;:20;9369:9;9359:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9336:9;:20;9346:9;9336:20;;;;;;;;;;;;;;;:60;;;;9431:9;9414:43;;9423:6;9414:43;;;9442:14;9414:43;;;;;;:::i;:::-;;;;;;;;9475:4;9468:11;;;4882:1;8184:1303:::0;;;;;;;:::o;9495:89::-;9538:4;9575:1;9562:9;;:14;;9555:21;;9495:89;:::o;9592:98::-;9641:12;9629:9;:24;;;;9678:4;9664:11;;:18;;;;;;;;;;;;;;;;;;9592:98::o;9698:334::-;9825:4;9882:6;9862:9;:17;9872:6;9862:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9842:9;:17;9852:6;9842:17;;;;;;;;;;;;;;;:46;;;;9945:6;9922:9;:20;9932:9;9922:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;9899:9;:20;9909:9;9899:20;;;;;;;;;;;;;;;:52;;;;9984:9;9967:35;;9976:6;9967:35;;;9995:6;9967:35;;;;;;:::i;:::-;;;;;;;;10020:4;10013:11;;9698:334;;;;;:::o;10040:110::-;10100:4;10125:9;:17;10135:6;10125:17;;;;;;;;;;;;;;;;;;;;;;;;;10124:18;10117:25;;10040:110;;;:::o;10349:360::-;10437:7;10467:39;10484:10;10496:9;10467:16;:39::i;:::-;10462:86;;10530:6;10523:13;;;;10462:86;10560:17;10601:14;;10590:7;;10581:6;:16;;;;:::i;:::-;10580:35;;;;:::i;:::-;10560:55;;10654:9;10626;:24;10644:4;10626:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;10692:9;10683:6;:18;;;;:::i;:::-;10676:25;;;10349:360;;;;;:::o;10717:230::-;10783:4;10821:14;:26;10836:10;10821:26;;;;;;;;;;;;;;;;;;;;;;;;;10820:27;:49;;;;;10865:4;;;;;;;;;;;10864:5;10820:49;:77;;;;;10886:11;;;;;;;;;;;10820:77;:119;;;;;10914:14;:25;10929:9;10914:25;;;;;;;;;;;;;;;;;;;;;;;;;10820:119;10800:139;;10717:230;;;:::o;10955:578::-;4469:4;4462;;:11;;;;;;;;;;;;;;;;;;11035:1:::1;11008:9;:24;11026:4;11008:24;;;;;;;;;;;;;;;;:28;11004:522;;;11053:20;11076:9;:24;11094:4;11076:24;;;;;;;;;;;;;;;;11053:47;;11117:21;11155:1;11141:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:40;;11190:4;11172;11177:1;11172:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11220:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11210:4;11215:1;11210:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11250:6;;;;;;;;;;;:57;;;11326:12;11357:1;11377:4;11408;11432:15;11250:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11484:30;11501:12;11484:30;;;;;;:::i;:::-;;;;;;;;11038:488;;11004:522;4503:5:::0;4496:4;;:12;;;;;;;;;;;;;;;;;;10955:578::o;10158:183::-;10269:4;10308;;;;;;;;;;;10298:14;;:6;:14;;;:35;;;;10329:4;;;;;;;;;;;10316:17;;:9;:17;;;10298:35;10291:42;;10158: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:365::-;9018:3;9039:66;9103:1;9098:3;9039:66;:::i;:::-;9032:73;;9114:93;9203:3;9114:93;:::i;:::-;9232:2;9227:3;9223:12;9216:19;;8876:365;;;:::o;9247:366::-;9389:3;9410:67;9474:2;9469:3;9410:67;:::i;:::-;9403:74;;9486:93;9575:3;9486:93;:::i;:::-;9604:2;9599:3;9595:12;9588:19;;9247:366;;;:::o;9619:118::-;9706:24;9724:5;9706:24;:::i;:::-;9701:3;9694:37;9619:118;;:::o;9743:112::-;9826:22;9842:5;9826:22;:::i;:::-;9821:3;9814:35;9743:112;;:::o;9861:222::-;9954:4;9992:2;9981:9;9977:18;9969:26;;10005:71;10073:1;10062:9;10058:17;10049:6;10005:71;:::i;:::-;9861:222;;;;:::o;10089:210::-;10176:4;10214:2;10203:9;10199:18;10191:26;;10227:65;10289:1;10278:9;10274:17;10265:6;10227:65;:::i;:::-;10089:210;;;;:::o;10305:258::-;10416:4;10454:2;10443:9;10439:18;10431:26;;10467:89;10553:1;10542:9;10538:17;10529:6;10467:89;:::i;:::-;10305:258;;;;:::o;10569:313::-;10682:4;10720:2;10709:9;10705:18;10697:26;;10769:9;10763:4;10759:20;10755:1;10744:9;10740:17;10733:47;10797:78;10870:4;10861:6;10797:78;:::i;:::-;10789:86;;10569:313;;;;:::o;10888:419::-;11054:4;11092:2;11081:9;11077:18;11069:26;;11141:9;11135:4;11131:20;11127:1;11116:9;11112:17;11105:47;11169:131;11295:4;11169:131;:::i;:::-;11161:139;;10888:419;;;:::o;11313:::-;11479:4;11517:2;11506:9;11502:18;11494:26;;11566:9;11560:4;11556:20;11552:1;11541:9;11537:17;11530:47;11594:131;11720:4;11594:131;:::i;:::-;11586:139;;11313:419;;;:::o;11738:::-;11904:4;11942:2;11931:9;11927:18;11919:26;;11991:9;11985:4;11981:20;11977:1;11966:9;11962:17;11955:47;12019:131;12145:4;12019:131;:::i;:::-;12011:139;;11738:419;;;:::o;12163:::-;12329:4;12367:2;12356:9;12352:18;12344:26;;12416:9;12410:4;12406:20;12402:1;12391:9;12387:17;12380:47;12444:131;12570:4;12444:131;:::i;:::-;12436:139;;12163:419;;;:::o;12588:::-;12754:4;12792:2;12781:9;12777:18;12769:26;;12841:9;12835:4;12831:20;12827:1;12816:9;12812:17;12805:47;12869:131;12995:4;12869:131;:::i;:::-;12861:139;;12588:419;;;:::o;13013:::-;13179:4;13217:2;13206:9;13202:18;13194:26;;13266:9;13260:4;13256:20;13252:1;13241:9;13237:17;13230:47;13294:131;13420:4;13294:131;:::i;:::-;13286:139;;13013:419;;;:::o;13438:::-;13604:4;13642:2;13631:9;13627:18;13619:26;;13691:9;13685:4;13681:20;13677:1;13666:9;13662:17;13655:47;13719:131;13845:4;13719:131;:::i;:::-;13711:139;;13438:419;;;:::o;13863:::-;14029:4;14067:2;14056:9;14052:18;14044:26;;14116:9;14110:4;14106:20;14102:1;14091:9;14087:17;14080:47;14144:131;14270:4;14144:131;:::i;:::-;14136:139;;13863:419;;;:::o;14288:::-;14454:4;14492:2;14481:9;14477:18;14469:26;;14541:9;14535:4;14531:20;14527:1;14516:9;14512:17;14505:47;14569:131;14695:4;14569:131;:::i;:::-;14561:139;;14288:419;;;:::o;14713:::-;14879:4;14917:2;14906:9;14902:18;14894:26;;14966:9;14960:4;14956:20;14952:1;14941:9;14937:17;14930:47;14994:131;15120:4;14994:131;:::i;:::-;14986:139;;14713:419;;;:::o;15138:::-;15304:4;15342:2;15331:9;15327:18;15319:26;;15391:9;15385:4;15381:20;15377:1;15366:9;15362:17;15355:47;15419:131;15545:4;15419:131;:::i;:::-;15411:139;;15138:419;;;:::o;15563:222::-;15656:4;15694:2;15683:9;15679:18;15671:26;;15707:71;15775:1;15764:9;15760:17;15751:6;15707:71;:::i;:::-;15563:222;;;;:::o;15791:831::-;16054:4;16092:3;16081:9;16077:19;16069:27;;16106:71;16174:1;16163:9;16159:17;16150:6;16106:71;:::i;:::-;16187:80;16263:2;16252:9;16248:18;16239:6;16187:80;:::i;:::-;16314:9;16308:4;16304:20;16299:2;16288:9;16284:18;16277:48;16342:108;16445:4;16436:6;16342:108;:::i;:::-;16334:116;;16460:72;16528:2;16517:9;16513:18;16504:6;16460:72;:::i;:::-;16542:73;16610:3;16599:9;16595:19;16586:6;16542:73;:::i;:::-;15791:831;;;;;;;;:::o;16628:214::-;16717:4;16755:2;16744:9;16740:18;16732:26;;16768:67;16832:1;16821:9;16817:17;16808:6;16768:67;:::i;:::-;16628:214;;;;:::o;16929:132::-;16996:4;17019:3;17011:11;;17049:4;17044:3;17040:14;17032:22;;16929:132;;;:::o;17067:114::-;17134:6;17168:5;17162:12;17152:22;;17067:114;;;:::o;17187:99::-;17239:6;17273:5;17267:12;17257:22;;17187:99;;;:::o;17292:113::-;17362:4;17394;17389:3;17385:14;17377:22;;17292:113;;;:::o;17411:184::-;17510:11;17544:6;17539:3;17532:19;17584:4;17579:3;17575:14;17560:29;;17411:184;;;;:::o;17601:169::-;17685:11;17719:6;17714:3;17707:19;17759:4;17754:3;17750:14;17735:29;;17601:169;;;;:::o;17776:305::-;17816:3;17835:20;17853:1;17835:20;:::i;:::-;17830:25;;17869:20;17887:1;17869:20;:::i;:::-;17864:25;;18023:1;17955:66;17951:74;17948:1;17945:81;17942:107;;;18029:18;;:::i;:::-;17942:107;18073:1;18070;18066:9;18059:16;;17776:305;;;;:::o;18087:185::-;18127:1;18144:20;18162:1;18144:20;:::i;:::-;18139:25;;18178:20;18196:1;18178:20;:::i;:::-;18173:25;;18217:1;18207:35;;18222:18;;:::i;:::-;18207:35;18264:1;18261;18257:9;18252:14;;18087:185;;;;:::o;18278:348::-;18318:7;18341:20;18359:1;18341:20;:::i;:::-;18336:25;;18375:20;18393:1;18375:20;:::i;:::-;18370:25;;18563:1;18495:66;18491:74;18488:1;18485:81;18480:1;18473:9;18466:17;18462:105;18459:131;;;18570:18;;:::i;:::-;18459:131;18618:1;18615;18611:9;18600:20;;18278:348;;;;:::o;18632:191::-;18672:4;18692:20;18710:1;18692:20;:::i;:::-;18687:25;;18726:20;18744:1;18726:20;:::i;:::-;18721:25;;18765:1;18762;18759:8;18756:34;;;18770:18;;:::i;:::-;18756:34;18815:1;18812;18808:9;18800:17;;18632:191;;;;:::o;18829:96::-;18866:7;18895:24;18913:5;18895:24;:::i;:::-;18884:35;;18829:96;;;:::o;18931:90::-;18965:7;19008:5;19001:13;18994:21;18983:32;;18931:90;;;:::o;19027:126::-;19064:7;19104:42;19097:5;19093:54;19082:65;;19027:126;;;:::o;19159:77::-;19196:7;19225:5;19214:16;;19159:77;;;:::o;19242:86::-;19277:7;19317:4;19310:5;19306:16;19295:27;;19242:86;;;:::o;19334:144::-;19402:9;19435:37;19466:5;19435:37;:::i;:::-;19422:50;;19334:144;;;:::o;19484:121::-;19542:9;19575:24;19593:5;19575:24;:::i;:::-;19562:37;;19484:121;;;:::o;19611:126::-;19661:9;19694:37;19725:5;19694:37;:::i;:::-;19681:50;;19611:126;;;:::o;19743:113::-;19793:9;19826:24;19844:5;19826:24;:::i;:::-;19813:37;;19743:113;;;:::o;19862:307::-;19930:1;19940:113;19954:6;19951:1;19948:13;19940:113;;;20039:1;20034:3;20030:11;20024:18;20020:1;20015:3;20011:11;20004:39;19976:2;19973:1;19969:10;19964:15;;19940:113;;;20071:6;20068:1;20065:13;20062:101;;;20151:1;20142:6;20137:3;20133:16;20126:27;20062:101;19911:258;19862:307;;;:::o;20175:180::-;20223:77;20220:1;20213:88;20320:4;20317:1;20310:15;20344:4;20341:1;20334:15;20361:180;20409:77;20406:1;20399:88;20506:4;20503:1;20496:15;20530:4;20527:1;20520:15;20547:180;20595:77;20592:1;20585:88;20692:4;20689:1;20682:15;20716:4;20713:1;20706:15;20733:180;20781:77;20778:1;20771:88;20878:4;20875:1;20868:15;20902:4;20899:1;20892:15;21042:117;21151:1;21148;21141:12;21165:102;21206:6;21257:2;21253:7;21248:2;21241:5;21237:14;21233:28;21223:38;;21165:102;;;:::o;21273:171::-;21413:23;21409:1;21401:6;21397:14;21390:47;21273:171;:::o;21450:225::-;21590:34;21586:1;21578:6;21574:14;21567:58;21659:8;21654:2;21646:6;21642:15;21635:33;21450:225;:::o;21681:170::-;21821:22;21817:1;21809:6;21805:14;21798:46;21681:170;:::o;21857:::-;21997:22;21993:1;21985:6;21981:14;21974:46;21857:170;:::o;22033:172::-;22173:24;22169:1;22161:6;22157:14;22150:48;22033:172;:::o;22211:174::-;22351:26;22347:1;22339:6;22335:14;22328:50;22211:174;:::o;22391:::-;22531:26;22527:1;22519:6;22515:14;22508:50;22391:174;:::o;22571:182::-;22711:34;22707:1;22699:6;22695:14;22688:58;22571:182;:::o;22759:173::-;22899:25;22895:1;22887:6;22883:14;22876:49;22759:173;:::o;22938:159::-;23078:11;23074:1;23066:6;23062:14;23055:35;22938:159;:::o;23103:167::-;23243:19;23239:1;23231:6;23227:14;23220:43;23103:167;:::o;23276:122::-;23349:24;23367:5;23349:24;:::i;:::-;23342:5;23339:35;23329:63;;23388:1;23385;23378:12;23329:63;23276:122;:::o;23404:116::-;23474:21;23489:5;23474:21;:::i;:::-;23467:5;23464:32;23454:60;;23510:1;23507;23500:12;23454:60;23404:116;:::o;23526:122::-;23599:24;23617:5;23599:24;:::i;:::-;23592:5;23589:35;23579:63;;23638:1;23635;23628:12;23579:63;23526:122;:::o

Swarm Source

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