ETH Price: $2,288.00 (+0.49%)

Token

LEGEND (L)
 

Overview

Max Total Supply

1,000,000,000 L

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,611,379.771982892 L

Value
$0.00
0x6ff801efa12abdf5ea3ec3eadd5e4bcdc18e116f
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:
LEGEND

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

// SPDX-License-Identifier: Unlicensed
/**

Legend is a community-centric, meme coin. 

Tax: 5/5

Tg: https://t.me/LEGEND_ERC
Twitter: https://twitter.com/LEGEND_ERC

*/

pragma solidity ^0.8.9;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract LEGEND is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "LEGEND";
    string private constant _symbol = "L";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xdBb735426078CD272CAD9a9cc217356a49D1Cd5D);
    address payable private _marketingAddress = payable(0xdBb735426078CD272CAD9a9cc217356a49D1Cd5D);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount =   20000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: This account is approved");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

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

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c91906200073f565b6000196200002b9190620007a6565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573dbb735426078cd272cad9a9cc217356a49d1cd5d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dbb735426078cd272cad9a9cc217356a49d1cd5d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df82000060175566038d7ea4c680006018553480156200016757600080fd5b5060006200017a620006d560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620006d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030e57600080fd5b505afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034991906200084b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ac57600080fd5b505afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e791906200084b565b6040518363ffffffff1660e01b8152600401620004069291906200088e565b602060405180830381600087803b1580156200042157600080fd5b505af115801562000436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045c91906200084b565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b2620006dd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200065f620006d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006c69190620008cc565b60405180910390a350620008e9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200074c8262000706565b9150620007598362000706565b9250826200076c576200076b62000710565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b38262000706565b9150620007c08362000706565b925082821015620007d657620007d562000777565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200081382620007e6565b9050919050565b620008258162000806565b81146200083157600080fd5b50565b60008151905062000845816200081a565b92915050565b600060208284031215620008645762000863620007e1565b5b6000620008748482850162000834565b91505092915050565b620008888162000806565b82525050565b6000604082019050620008a560008301856200087d565b620008b460208301846200087d565b9392505050565b620008c68162000706565b82525050565b6000602082019050620008e36000830184620008bb565b92915050565b61331380620008f96000396000f3fe6080604052600436106101385760003560e01c8063715018a6116100ab5780638f70ccf71161006f5780638f70ccf7146104105780638f9a55c01461043957806395d89b4114610464578063a9059cbb1461048f578063bfd79284146104cc578063dd62ed3e146105095761013f565b8063715018a61461034f578063751039fc146103665780637d1db4a51461037d5780637f2feddc146103a85780638da5cb5b146103e55761013f565b806323b872dd116100fd57806323b872dd1461022b5780632fd689e314610268578063313ce5671461029357806349bd5a5e146102be5780636b999053146102e957806370a08231146103125761013f565b8062b8cf2a1461014457806306fdde031461016d578063095ea7b3146101985780631694505e146101d557806318160ddd146102005761013f565b3661013f57005b600080fd5b34801561015057600080fd5b5061016b600480360381019061016691906124a6565b610546565b005b34801561017957600080fd5b50610182610670565b60405161018f9190612577565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906125cf565b6106ad565b6040516101cc919061262a565b60405180910390f35b3480156101e157600080fd5b506101ea6106cb565b6040516101f791906126a4565b60405180910390f35b34801561020c57600080fd5b506102156106f1565b60405161022291906126ce565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906126e9565b610701565b60405161025f919061262a565b60405180910390f35b34801561027457600080fd5b5061027d6107da565b60405161028a91906126ce565b60405180910390f35b34801561029f57600080fd5b506102a86107e0565b6040516102b59190612758565b60405180910390f35b3480156102ca57600080fd5b506102d36107e9565b6040516102e09190612782565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b919061279d565b61080f565b005b34801561031e57600080fd5b506103396004803603810190610334919061279d565b6108ff565b60405161034691906126ce565b60405180910390f35b34801561035b57600080fd5b50610364610950565b005b34801561037257600080fd5b5061037b610aa3565b005b34801561038957600080fd5b50610392610b97565b60405161039f91906126ce565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca919061279d565b610b9d565b6040516103dc91906126ce565b60405180910390f35b3480156103f157600080fd5b506103fa610bb5565b6040516104079190612782565b60405180910390f35b34801561041c57600080fd5b50610437600480360381019061043291906127f6565b610bde565b005b34801561044557600080fd5b5061044e610c90565b60405161045b91906126ce565b60405180910390f35b34801561047057600080fd5b50610479610c96565b6040516104869190612577565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b191906125cf565b610cd3565b6040516104c3919061262a565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee919061279d565b610cf1565b604051610500919061262a565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612823565b610d11565b60405161053d91906126ce565b60405180910390f35b61054e610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906128af565b60405180910390fd5b60005b815181101561066c57600160106000848481518110610600576105ff6128cf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106649061292d565b9150506105de565b5050565b60606040518060400160405280600681526020017f4c4547454e440000000000000000000000000000000000000000000000000000815250905090565b60006106c16106ba610d98565b8484610da0565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061070e848484610f6b565b6107cf8461071a610d98565b6107ca856040518060600160405280602881526020016132b660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610780610d98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f09092919063ffffffff16565b610da0565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610817610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906128af565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610949600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611854565b9050919050565b610958610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc906128af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610aab610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f906128af565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a76400006017819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf670de0b6b3a7640000604051610b8d91906126ce565b60405180910390a1565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610be6610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a906128af565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600181526020017f4c00000000000000000000000000000000000000000000000000000000000000815250905090565b6000610ce7610ce0610d98565b8484610f6b565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e07906129e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7790612a7a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f5e91906126ce565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290612b0c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612b9e565b60405180910390fd5b6000811161108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590612c30565b60405180910390fd5b611096610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561110457506110d4610bb5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114ef57601560149054906101000a900460ff1661119357611125610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118990612cc2565b60405180910390fd5b5b6016548111156111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90612d2e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561127c5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612d9a565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611368576017548161131d846108ff565b6113279190612dba565b10611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90612e82565b60405180910390fd5b5b6000611373306108ff565b905060006018548210159050601654821061138e5760165491505b8080156113a6575060158054906101000a900460ff16155b80156114005750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114185750601560169054906101000a900460ff165b801561146e5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c45750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114ec576114d2826118c2565b600047905060008111156114ea576114e947611b48565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115965750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116485750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561165757600090506117de565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117025750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561171a57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117c55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117dd57600a54600c81905550600b54600d819055505b5b6117ea84848484611bb4565b50505050565b6000838311158290611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f9190612577565b60405180910390fd5b50600083856118479190612ea2565b9050809150509392505050565b600060065482111561189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290612f48565b60405180910390fd5b60006118a5611be1565b90506118ba8184611c0c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118f9576118f8612305565b5b6040519080825280602002602001820160405280156119275781602001602082028036833780820191505090505b509050308160008151811061193f5761193e6128cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a199190612f7d565b81600181518110611a2d57611a2c6128cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610da0565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611af89594939291906130a3565b600060405180830381600087803b158015611b1257600080fd5b505af1158015611b26573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bb0573d6000803e3d6000fd5b5050565b80611bc257611bc1611c56565b5b611bcd848484611c99565b80611bdb57611bda611e64565b5b50505050565b6000806000611bee611e78565b91509150611c058183611c0c90919063ffffffff16565b9250505090565b6000611c4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed7565b905092915050565b6000600c54148015611c6a57506000600d54145b15611c7457611c97565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611cab87611f3a565b955095509550955095509550611d0986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dea8161204a565b611df48483612107565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e5191906126ce565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050611eac670de0b6b3a7640000600654611c0c90919063ffffffff16565b821015611eca57600654670de0b6b3a7640000935093505050611ed3565b81819350935050505b9091565b60008083118290611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f159190612577565b60405180910390fd5b5060008385611f2d919061312c565b9050809150509392505050565b6000806000806000806000806000611f578a600c54600d54612141565b9250925092506000611f67611be1565b90506000806000611f7a8e8787876121d7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611fe483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117f0565b905092915050565b6000808284611ffb9190612dba565b905083811015612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906131a9565b60405180910390fd5b8091505092915050565b6000612054611be1565b9050600061206b828461226090919063ffffffff16565b90506120bf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61211c82600654611fa290919063ffffffff16565b60068190555061213781600754611fec90919063ffffffff16565b6007819055505050565b60008060008061216d606461215f888a61226090919063ffffffff16565b611c0c90919063ffffffff16565b905060006121976064612189888b61226090919063ffffffff16565b611c0c90919063ffffffff16565b905060006121c0826121b2858c611fa290919063ffffffff16565b611fa290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806121f0858961226090919063ffffffff16565b90506000612207868961226090919063ffffffff16565b9050600061221e878961226090919063ffffffff16565b90506000612247826122398587611fa290919063ffffffff16565b611fa290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561227357600090506122d5565b6000828461228191906131c9565b9050828482612290919061312c565b146122d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c790613295565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61233d826122f4565b810181811067ffffffffffffffff8211171561235c5761235b612305565b5b80604052505050565b600061236f6122db565b905061237b8282612334565b919050565b600067ffffffffffffffff82111561239b5761239a612305565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123dc826123b1565b9050919050565b6123ec816123d1565b81146123f757600080fd5b50565b600081359050612409816123e3565b92915050565b600061242261241d84612380565b612365565b90508083825260208201905060208402830185811115612445576124446123ac565b5b835b8181101561246e578061245a88826123fa565b845260208401935050602081019050612447565b5050509392505050565b600082601f83011261248d5761248c6122ef565b5b813561249d84826020860161240f565b91505092915050565b6000602082840312156124bc576124bb6122e5565b5b600082013567ffffffffffffffff8111156124da576124d96122ea565b5b6124e684828501612478565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561252957808201518184015260208101905061250e565b83811115612538576000848401525b50505050565b6000612549826124ef565b61255381856124fa565b935061256381856020860161250b565b61256c816122f4565b840191505092915050565b60006020820190508181036000830152612591818461253e565b905092915050565b6000819050919050565b6125ac81612599565b81146125b757600080fd5b50565b6000813590506125c9816125a3565b92915050565b600080604083850312156125e6576125e56122e5565b5b60006125f4858286016123fa565b9250506020612605858286016125ba565b9150509250929050565b60008115159050919050565b6126248161260f565b82525050565b600060208201905061263f600083018461261b565b92915050565b6000819050919050565b600061266a612665612660846123b1565b612645565b6123b1565b9050919050565b600061267c8261264f565b9050919050565b600061268e82612671565b9050919050565b61269e81612683565b82525050565b60006020820190506126b96000830184612695565b92915050565b6126c881612599565b82525050565b60006020820190506126e360008301846126bf565b92915050565b600080600060608486031215612702576127016122e5565b5b6000612710868287016123fa565b9350506020612721868287016123fa565b9250506040612732868287016125ba565b9150509250925092565b600060ff82169050919050565b6127528161273c565b82525050565b600060208201905061276d6000830184612749565b92915050565b61277c816123d1565b82525050565b60006020820190506127976000830184612773565b92915050565b6000602082840312156127b3576127b26122e5565b5b60006127c1848285016123fa565b91505092915050565b6127d38161260f565b81146127de57600080fd5b50565b6000813590506127f0816127ca565b92915050565b60006020828403121561280c5761280b6122e5565b5b600061281a848285016127e1565b91505092915050565b6000806040838503121561283a576128396122e5565b5b6000612848858286016123fa565b9250506020612859858286016123fa565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128996020836124fa565b91506128a482612863565b602082019050919050565b600060208201905081810360008301526128c88161288c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061293882612599565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561296b5761296a6128fe565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129d26024836124fa565b91506129dd82612976565b604082019050919050565b60006020820190508181036000830152612a01816129c5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a646022836124fa565b9150612a6f82612a08565b604082019050919050565b60006020820190508181036000830152612a9381612a57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612af66025836124fa565b9150612b0182612a9a565b604082019050919050565b60006020820190508181036000830152612b2581612ae9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b886023836124fa565b9150612b9382612b2c565b604082019050919050565b60006020820190508181036000830152612bb781612b7b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c1a6029836124fa565b9150612c2582612bbe565b604082019050919050565b60006020820190508181036000830152612c4981612c0d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612cac603f836124fa565b9150612cb782612c50565b604082019050919050565b60006020820190508181036000830152612cdb81612c9f565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612d18601c836124fa565b9150612d2382612ce2565b602082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f544f4b454e3a2054686973206163636f756e7420697320617070726f76656400600082015250565b6000612d84601f836124fa565b9150612d8f82612d4e565b602082019050919050565b60006020820190508181036000830152612db381612d77565b9050919050565b6000612dc582612599565b9150612dd083612599565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e0557612e046128fe565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612e6c6023836124fa565b9150612e7782612e10565b604082019050919050565b60006020820190508181036000830152612e9b81612e5f565b9050919050565b6000612ead82612599565b9150612eb883612599565b925082821015612ecb57612eca6128fe565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612f32602a836124fa565b9150612f3d82612ed6565b604082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b600081519050612f77816123e3565b92915050565b600060208284031215612f9357612f926122e5565b5b6000612fa184828501612f68565b91505092915050565b6000819050919050565b6000612fcf612fca612fc584612faa565b612645565b612599565b9050919050565b612fdf81612fb4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61301a816123d1565b82525050565b600061302c8383613011565b60208301905092915050565b6000602082019050919050565b600061305082612fe5565b61305a8185612ff0565b935061306583613001565b8060005b8381101561309657815161307d8882613020565b975061308883613038565b925050600181019050613069565b5085935050505092915050565b600060a0820190506130b860008301886126bf565b6130c56020830187612fd6565b81810360408301526130d78186613045565b90506130e66060830185612773565b6130f360808301846126bf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061313782612599565b915061314283612599565b925082613152576131516130fd565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613193601b836124fa565b915061319e8261315d565b602082019050919050565b600060208201905081810360008301526131c281613186565b9050919050565b60006131d482612599565b91506131df83612599565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613218576132176128fe565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061327f6021836124fa565b915061328a82613223565b604082019050919050565b600060208201905081810360008301526132ae81613272565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fd7de747c3ae61460419b100b9aac106410430e2e46e9163b4e44d82b376a53b64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101385760003560e01c8063715018a6116100ab5780638f70ccf71161006f5780638f70ccf7146104105780638f9a55c01461043957806395d89b4114610464578063a9059cbb1461048f578063bfd79284146104cc578063dd62ed3e146105095761013f565b8063715018a61461034f578063751039fc146103665780637d1db4a51461037d5780637f2feddc146103a85780638da5cb5b146103e55761013f565b806323b872dd116100fd57806323b872dd1461022b5780632fd689e314610268578063313ce5671461029357806349bd5a5e146102be5780636b999053146102e957806370a08231146103125761013f565b8062b8cf2a1461014457806306fdde031461016d578063095ea7b3146101985780631694505e146101d557806318160ddd146102005761013f565b3661013f57005b600080fd5b34801561015057600080fd5b5061016b600480360381019061016691906124a6565b610546565b005b34801561017957600080fd5b50610182610670565b60405161018f9190612577565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906125cf565b6106ad565b6040516101cc919061262a565b60405180910390f35b3480156101e157600080fd5b506101ea6106cb565b6040516101f791906126a4565b60405180910390f35b34801561020c57600080fd5b506102156106f1565b60405161022291906126ce565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906126e9565b610701565b60405161025f919061262a565b60405180910390f35b34801561027457600080fd5b5061027d6107da565b60405161028a91906126ce565b60405180910390f35b34801561029f57600080fd5b506102a86107e0565b6040516102b59190612758565b60405180910390f35b3480156102ca57600080fd5b506102d36107e9565b6040516102e09190612782565b60405180910390f35b3480156102f557600080fd5b50610310600480360381019061030b919061279d565b61080f565b005b34801561031e57600080fd5b506103396004803603810190610334919061279d565b6108ff565b60405161034691906126ce565b60405180910390f35b34801561035b57600080fd5b50610364610950565b005b34801561037257600080fd5b5061037b610aa3565b005b34801561038957600080fd5b50610392610b97565b60405161039f91906126ce565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca919061279d565b610b9d565b6040516103dc91906126ce565b60405180910390f35b3480156103f157600080fd5b506103fa610bb5565b6040516104079190612782565b60405180910390f35b34801561041c57600080fd5b50610437600480360381019061043291906127f6565b610bde565b005b34801561044557600080fd5b5061044e610c90565b60405161045b91906126ce565b60405180910390f35b34801561047057600080fd5b50610479610c96565b6040516104869190612577565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b191906125cf565b610cd3565b6040516104c3919061262a565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee919061279d565b610cf1565b604051610500919061262a565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612823565b610d11565b60405161053d91906126ce565b60405180910390f35b61054e610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906128af565b60405180910390fd5b60005b815181101561066c57600160106000848481518110610600576105ff6128cf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106649061292d565b9150506105de565b5050565b60606040518060400160405280600681526020017f4c4547454e440000000000000000000000000000000000000000000000000000815250905090565b60006106c16106ba610d98565b8484610da0565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061070e848484610f6b565b6107cf8461071a610d98565b6107ca856040518060600160405280602881526020016132b660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610780610d98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f09092919063ffffffff16565b610da0565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610817610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906128af565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610949600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611854565b9050919050565b610958610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc906128af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610aab610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f906128af565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a76400006017819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf670de0b6b3a7640000604051610b8d91906126ce565b60405180910390a1565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610be6610d98565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a906128af565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600181526020017f4c00000000000000000000000000000000000000000000000000000000000000815250905090565b6000610ce7610ce0610d98565b8484610f6b565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e07906129e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7790612a7a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f5e91906126ce565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd290612b0c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612b9e565b60405180910390fd5b6000811161108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590612c30565b60405180910390fd5b611096610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561110457506110d4610bb5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114ef57601560149054906101000a900460ff1661119357611125610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118990612cc2565b60405180910390fd5b5b6016548111156111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90612d2e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561127c5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612d9a565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611368576017548161131d846108ff565b6113279190612dba565b10611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90612e82565b60405180910390fd5b5b6000611373306108ff565b905060006018548210159050601654821061138e5760165491505b8080156113a6575060158054906101000a900460ff16155b80156114005750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114185750601560169054906101000a900460ff165b801561146e5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114c45750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114ec576114d2826118c2565b600047905060008111156114ea576114e947611b48565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115965750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116485750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561165757600090506117de565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117025750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561171a57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117c55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117dd57600a54600c81905550600b54600d819055505b5b6117ea84848484611bb4565b50505050565b6000838311158290611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f9190612577565b60405180910390fd5b50600083856118479190612ea2565b9050809150509392505050565b600060065482111561189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290612f48565b60405180910390fd5b60006118a5611be1565b90506118ba8184611c0c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118f9576118f8612305565b5b6040519080825280602002602001820160405280156119275781602001602082028036833780820191505090505b509050308160008151811061193f5761193e6128cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a199190612f7d565b81600181518110611a2d57611a2c6128cf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610da0565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611af89594939291906130a3565b600060405180830381600087803b158015611b1257600080fd5b505af1158015611b26573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bb0573d6000803e3d6000fd5b5050565b80611bc257611bc1611c56565b5b611bcd848484611c99565b80611bdb57611bda611e64565b5b50505050565b6000806000611bee611e78565b91509150611c058183611c0c90919063ffffffff16565b9250505090565b6000611c4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed7565b905092915050565b6000600c54148015611c6a57506000600d54145b15611c7457611c97565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611cab87611f3a565b955095509550955095509550611d0986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dea8161204a565b611df48483612107565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e5191906126ce565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050611eac670de0b6b3a7640000600654611c0c90919063ffffffff16565b821015611eca57600654670de0b6b3a7640000935093505050611ed3565b81819350935050505b9091565b60008083118290611f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f159190612577565b60405180910390fd5b5060008385611f2d919061312c565b9050809150509392505050565b6000806000806000806000806000611f578a600c54600d54612141565b9250925092506000611f67611be1565b90506000806000611f7a8e8787876121d7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611fe483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117f0565b905092915050565b6000808284611ffb9190612dba565b905083811015612040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612037906131a9565b60405180910390fd5b8091505092915050565b6000612054611be1565b9050600061206b828461226090919063ffffffff16565b90506120bf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61211c82600654611fa290919063ffffffff16565b60068190555061213781600754611fec90919063ffffffff16565b6007819055505050565b60008060008061216d606461215f888a61226090919063ffffffff16565b611c0c90919063ffffffff16565b905060006121976064612189888b61226090919063ffffffff16565b611c0c90919063ffffffff16565b905060006121c0826121b2858c611fa290919063ffffffff16565b611fa290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806121f0858961226090919063ffffffff16565b90506000612207868961226090919063ffffffff16565b9050600061221e878961226090919063ffffffff16565b90506000612247826122398587611fa290919063ffffffff16565b611fa290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561227357600090506122d5565b6000828461228191906131c9565b9050828482612290919061312c565b146122d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c790613295565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61233d826122f4565b810181811067ffffffffffffffff8211171561235c5761235b612305565b5b80604052505050565b600061236f6122db565b905061237b8282612334565b919050565b600067ffffffffffffffff82111561239b5761239a612305565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123dc826123b1565b9050919050565b6123ec816123d1565b81146123f757600080fd5b50565b600081359050612409816123e3565b92915050565b600061242261241d84612380565b612365565b90508083825260208201905060208402830185811115612445576124446123ac565b5b835b8181101561246e578061245a88826123fa565b845260208401935050602081019050612447565b5050509392505050565b600082601f83011261248d5761248c6122ef565b5b813561249d84826020860161240f565b91505092915050565b6000602082840312156124bc576124bb6122e5565b5b600082013567ffffffffffffffff8111156124da576124d96122ea565b5b6124e684828501612478565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561252957808201518184015260208101905061250e565b83811115612538576000848401525b50505050565b6000612549826124ef565b61255381856124fa565b935061256381856020860161250b565b61256c816122f4565b840191505092915050565b60006020820190508181036000830152612591818461253e565b905092915050565b6000819050919050565b6125ac81612599565b81146125b757600080fd5b50565b6000813590506125c9816125a3565b92915050565b600080604083850312156125e6576125e56122e5565b5b60006125f4858286016123fa565b9250506020612605858286016125ba565b9150509250929050565b60008115159050919050565b6126248161260f565b82525050565b600060208201905061263f600083018461261b565b92915050565b6000819050919050565b600061266a612665612660846123b1565b612645565b6123b1565b9050919050565b600061267c8261264f565b9050919050565b600061268e82612671565b9050919050565b61269e81612683565b82525050565b60006020820190506126b96000830184612695565b92915050565b6126c881612599565b82525050565b60006020820190506126e360008301846126bf565b92915050565b600080600060608486031215612702576127016122e5565b5b6000612710868287016123fa565b9350506020612721868287016123fa565b9250506040612732868287016125ba565b9150509250925092565b600060ff82169050919050565b6127528161273c565b82525050565b600060208201905061276d6000830184612749565b92915050565b61277c816123d1565b82525050565b60006020820190506127976000830184612773565b92915050565b6000602082840312156127b3576127b26122e5565b5b60006127c1848285016123fa565b91505092915050565b6127d38161260f565b81146127de57600080fd5b50565b6000813590506127f0816127ca565b92915050565b60006020828403121561280c5761280b6122e5565b5b600061281a848285016127e1565b91505092915050565b6000806040838503121561283a576128396122e5565b5b6000612848858286016123fa565b9250506020612859858286016123fa565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128996020836124fa565b91506128a482612863565b602082019050919050565b600060208201905081810360008301526128c88161288c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061293882612599565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561296b5761296a6128fe565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129d26024836124fa565b91506129dd82612976565b604082019050919050565b60006020820190508181036000830152612a01816129c5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a646022836124fa565b9150612a6f82612a08565b604082019050919050565b60006020820190508181036000830152612a9381612a57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612af66025836124fa565b9150612b0182612a9a565b604082019050919050565b60006020820190508181036000830152612b2581612ae9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b886023836124fa565b9150612b9382612b2c565b604082019050919050565b60006020820190508181036000830152612bb781612b7b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c1a6029836124fa565b9150612c2582612bbe565b604082019050919050565b60006020820190508181036000830152612c4981612c0d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612cac603f836124fa565b9150612cb782612c50565b604082019050919050565b60006020820190508181036000830152612cdb81612c9f565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612d18601c836124fa565b9150612d2382612ce2565b602082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f544f4b454e3a2054686973206163636f756e7420697320617070726f76656400600082015250565b6000612d84601f836124fa565b9150612d8f82612d4e565b602082019050919050565b60006020820190508181036000830152612db381612d77565b9050919050565b6000612dc582612599565b9150612dd083612599565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e0557612e046128fe565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612e6c6023836124fa565b9150612e7782612e10565b604082019050919050565b60006020820190508181036000830152612e9b81612e5f565b9050919050565b6000612ead82612599565b9150612eb883612599565b925082821015612ecb57612eca6128fe565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612f32602a836124fa565b9150612f3d82612ed6565b604082019050919050565b60006020820190508181036000830152612f6181612f25565b9050919050565b600081519050612f77816123e3565b92915050565b600060208284031215612f9357612f926122e5565b5b6000612fa184828501612f68565b91505092915050565b6000819050919050565b6000612fcf612fca612fc584612faa565b612645565b612599565b9050919050565b612fdf81612fb4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61301a816123d1565b82525050565b600061302c8383613011565b60208301905092915050565b6000602082019050919050565b600061305082612fe5565b61305a8185612ff0565b935061306583613001565b8060005b8381101561309657815161307d8882613020565b975061308883613038565b925050600181019050613069565b5085935050505092915050565b600060a0820190506130b860008301886126bf565b6130c56020830187612fd6565b81810360408301526130d78186613045565b90506130e66060830185612773565b6130f360808301846126bf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061313782612599565b915061314283612599565b925082613152576131516130fd565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613193601b836124fa565b915061319e8261315d565b602082019050919050565b600060208201905081810360008301526131c281613186565b9050919050565b60006131d482612599565b91506131df83612599565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613218576132176128fe565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061327f6021836124fa565b915061328a82613223565b604082019050919050565b600060208201905081810360008301526132ae81613272565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fd7de747c3ae61460419b100b9aac106410430e2e46e9163b4e44d82b376a53b64736f6c63430008090033

Deployed Bytecode Sourcemap

4030:12006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6518:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7443:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5364:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6795:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7644:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5664:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6704:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5412:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12376:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6898:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1769:148;;;;;;;;;;;;;:::i;:::-;;15609:159;;;;;;;;;;;;;:::i;:::-;;5554:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5106:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1555:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12090:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5609:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6609:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5068:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7251:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12199:169;1692:12;:10;:12::i;:::-;1682:22;;:6;;;;;;;;;;:22;;;1674:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12275:9:::1;12270:91;12294:5;:12;12290:1;:16;12270:91;;;12345:4;12328;:14;12333:5;12339:1;12333:8;;;;;;;;:::i;:::-;;;;;;;;12328:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12308:3;;;;;:::i;:::-;;;;12270:91;;;;12199:169:::0;:::o;6518:83::-;6555:13;6588:5;;;;;;;;;;;;;;;;;6581:12;;6518:83;:::o;7443:193::-;7545:4;7567:39;7576:12;:10;:12::i;:::-;7590:7;7599:6;7567:8;:39::i;:::-;7624:4;7617:11;;7443:193;;;;:::o;5364:41::-;;;;;;;;;;;;;:::o;6795:95::-;6848:7;4570:18;6868:14;;6795:95;:::o;7644:446::-;7776:4;7793:36;7803:6;7811:9;7822:6;7793:9;:36::i;:::-;7840:220;7863:6;7884:12;:10;:12::i;:::-;7911:138;7967:6;7911:138;;;;;;;;;;;;;;;;;:11;:19;7923:6;7911:19;;;;;;;;;;;;;;;:33;7931:12;:10;:12::i;:::-;7911:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7840:8;:220::i;:::-;8078:4;8071:11;;7644:446;;;;;:::o;5664:52::-;;;;:::o;6704:83::-;6745:5;4244:1;6763:16;;6704:83;:::o;5412:28::-;;;;;;;;;;;;;:::o;12376:92::-;1692:12;:10;:12::i;:::-;1682:22;;:6;;;;;;;;;;:22;;;1674:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12455:5:::1;12440:4;:12;12445:6;12440:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12376:92:::0;:::o;6898:138::-;6964:7;6991:37;7011:7;:16;7019:7;7011:16;;;;;;;;;;;;;;;;6991:19;:37::i;:::-;6984:44;;6898:138;;;:::o;1769:148::-;1692:12;:10;:12::i;:::-;1682:22;;:6;;;;;;;;;;:22;;;1674:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1876:1:::1;1839:40;;1860:6;::::0;::::1;;;;;;;;1839:40;;;;;;;;;;;;1907:1;1890:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1769:148::o:0;15609:159::-;1692:12;:10;:12::i;:::-;1682:22;;:6;;;;;;;;;;:22;;;1674:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4570:18:::1;15662:12;:22;;;;4570:18;15695:14;:22;;;;15733:27;4570:18;15733:27;;;;;;:::i;:::-;;;;;;;;15609:159::o:0;5554:48::-;;;;:::o;5106:43::-;;;;;;;;;;;;;;;;;:::o;1555:79::-;1593:7;1620:6;;;;;;;;;;;1613:13;;1555:79;:::o;12090:101::-;1692:12;:10;:12::i;:::-;1682:22;;:6;;;;;;;;;;:22;;;1674:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12171:12:::1;12157:11;;:26;;;;;;;;;;;;;;;;;;12090:101:::0;:::o;5609:48::-;;;;:::o;6609:87::-;6648:13;6681:7;;;;;;;;;;;;;;;;;6674:14;;6609:87;:::o;7044:199::-;7149:4;7171:42;7181:12;:10;:12::i;:::-;7195:9;7206:6;7171:9;:42::i;:::-;7231:4;7224:11;;7044:199;;;;:::o;5068:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;7251:184::-;7368:7;7400:11;:18;7412:5;7400:18;;;;;;;;;;;;;;;:27;7419:7;7400:27;;;;;;;;;;;;;;;;7393:34;;7251:184;;;;:::o;314:98::-;367:7;394:10;387:17;;314:98;:::o;8781:369::-;8925:1;8908:19;;:5;:19;;;;8900:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9006:1;8987:21;;:7;:21;;;;8979:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9088:6;9058:11;:18;9070:5;9058:18;;;;;;;;;;;;;;;:27;9077:7;9058:27;;;;;;;;;;;;;;;:36;;;;9126:7;9110:32;;9119:5;9110:32;;;9135:6;9110:32;;;;;;:::i;:::-;;;;;;;;8781:369;;;:::o;9158:2326::-;9296:1;9280:18;;:4;:18;;;;9272:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9373:1;9359:16;;:2;:16;;;;9351:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9443:1;9434:6;:10;9426:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9515:7;:5;:7::i;:::-;9507:15;;:4;:15;;;;:32;;;;;9532:7;:5;:7::i;:::-;9526:13;;:2;:13;;;;9507:32;9503:1255;;;9596:11;;;;;;;;;;;9591:144;;9644:7;:5;:7::i;:::-;9636:15;;:4;:15;;;9628:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9591:144;9769:12;;9759:6;:22;;9751:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9838:4;:10;9843:4;9838:10;;;;;;;;;;;;;;;;;;;;;;;;;9837:11;:24;;;;;9853:4;:8;9858:2;9853:8;;;;;;;;;;;;;;;;;;;;;;;;;9852:9;9837:24;9829:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9923:13;;;;;;;;;;;9917:19;;:2;:19;;;9914:146;;9990:14;;9981:6;9965:13;9975:2;9965:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9957:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9914:146;10076:28;10107:24;10125:4;10107:9;:24::i;:::-;10076:55;;10146:12;10185:19;;10161:20;:43;;10146:58;;10248:12;;10224:20;:36;10221:124;;10317:12;;10294:35;;10221:124;10365:7;:18;;;;;10377:6;;;;;;;;;;10376:7;10365:18;:43;;;;;10395:13;;;;;;;;;;;10387:21;;:4;:21;;;;10365:43;:58;;;;;10412:11;;;;;;;;;;;10365:58;:87;;;;;10428:18;:24;10447:4;10428:24;;;;;;;;;;;;;;;;;;;;;;;;;10427:25;10365:87;:114;;;;;10457:18;:22;10476:2;10457:22;;;;;;;;;;;;;;;;;;;;;;;;;10456:23;10365:114;10361:386;;;10500:38;10517:20;10500:16;:38::i;:::-;10557:26;10586:21;10557:50;;10651:1;10630:18;:22;10626:106;;;10677:35;10690:21;10677:12;:35::i;:::-;10626:106;10481:266;10361:386;9541:1217;;9503:1255;10770:12;10785:4;10770:19;;10834:18;:24;10853:4;10834:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10862:18;:22;10881:2;10862:22;;;;;;;;;;;;;;;;;;;;;;;;;10834:50;10833:102;;;;10898:13;;;;;;;;;;;10890:21;;:4;:21;;;;:44;;;;;10921:13;;;;;;;;;;;10915:19;;:2;:19;;;;10890:44;10833:102;10829:594;;;10962:5;10952:15;;10829:594;;;11045:13;;;;;;;;;;;11037:21;;:4;:21;;;:55;;;;;11076:15;;;;;;;;;;;11062:30;;:2;:30;;;;11037:55;11034:162;;;11125:14;;11113:9;:26;;;;11168:12;;11158:7;:22;;;;11034:162;11255:13;;;;;;;;;;;11249:19;;:2;:19;;;:55;;;;;11288:15;;;;;;;;;;;11272:32;;:4;:32;;;;11249:55;11245:165;;;11337:15;;11325:9;:27;;;;11381:13;;11371:7;:23;;;;11245:165;10829:594;11435:41;11450:4;11456:2;11460:6;11468:7;11435:14;:41::i;:::-;9261:2223;9158:2326;;;:::o;2281:224::-;2401:7;2434:1;2429;:6;;2437:12;2421:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2461:9;2477:1;2473;:5;;;;:::i;:::-;2461:17;;2496:1;2489:8;;;2281:224;;;;;:::o;8098:323::-;8193:7;8251;;8240;:18;;8218:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8339:19;8361:10;:8;:10::i;:::-;8339:32;;8389:24;8401:11;8389:7;:11;;:24;;;;:::i;:::-;8382:31;;;8098:323;;;:::o;11492:483::-;5819:4;5810:6;;:13;;;;;;;;;;;;;;;;;;11570:21:::1;11608:1;11594:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11570:40;;11639:4;11621;11626:1;11621:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11665:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11655:4;11660:1;11655:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11698:62;11715:4;11730:15;;;;;;;;;;;11748:11;11698:8;:62::i;:::-;11771:15;;;;;;;;;;;:66;;;11852:11;11878:1;11894:4;11921;11941:15;11771:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11559:416;5855:5:::0;5846:6;;:14;;;;;;;;;;;;;;;;;;11492:483;:::o;11983:99::-;12040:17;;;;;;;;;;;:26;;:34;12067:6;12040:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11983:99;:::o;12476:282::-;12632:7;12627:28;;12641:14;:12;:14::i;:::-;12627:28;12666:44;12684:6;12692:9;12703:6;12666:17;:44::i;:::-;12726:7;12721:29;;12735:15;:13;:15::i;:::-;12721:29;12476:282;;;;:::o;15437:164::-;15479:7;15500:15;15517;15536:19;:17;:19::i;:::-;15499:56;;;;15573:20;15585:7;15573;:11;;:20;;;;:::i;:::-;15566:27;;;;15437:164;:::o;2767:132::-;2825:7;2852:39;2856:1;2859;2852:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2845:46;;2767:132;;;;:::o;8429:219::-;8489:1;8476:9;;:14;:30;;;;;8505:1;8494:7;;:12;8476:30;8472:43;;;8508:7;;8472:43;8547:9;;8527:17;:29;;;;8585:7;;8567:15;:25;;;;8617:1;8605:9;:13;;;;8639:1;8629:7;:11;;;;8429:219;:::o;12766:610::-;12913:15;12943:23;12981:12;13008:23;13046:12;13073:13;13100:19;13111:7;13100:10;:19::i;:::-;12898:221;;;;;;;;;;;;13148:28;13168:7;13148;:15;13156:6;13148:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13130:7;:15;13138:6;13130:15;;;;;;;;;;;;;;;:46;;;;13208:39;13231:15;13208:7;:18;13216:9;13208:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13187:7;:18;13195:9;13187:18;;;;;;;;;;;;;;;:60;;;;13258:16;13268:5;13258:9;:16::i;:::-;13285:23;13297:4;13303;13285:11;:23::i;:::-;13341:9;13324:44;;13333:6;13324:44;;;13352:15;13324:44;;;;;;:::i;:::-;;;;;;;;12887:489;;;;;;12766:610;;;:::o;8656:117::-;8712:17;;8700:9;:29;;;;8750:15;;8740:7;:25;;;;8656:117::o;15776:257::-;15827:7;15836;15856:15;15874:7;;15856:25;;15892:15;4570:18;15892:25;;15942:20;4570:18;15942:7;;:11;;:20;;;;:::i;:::-;15932:7;:30;15928:61;;;15972:7;;4570:18;15964:25;;;;;;;;15928:61;16008:7;16017;16000:25;;;;;;15776:257;;;:::o;2907:223::-;3027:7;3059:1;3055;:5;3062:12;3047:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3086:9;3102:1;3098;:5;;;;:::i;:::-;3086:17;;3121:1;3114:8;;;2907:223;;;;;:::o;13795:615::-;13895:7;13917;13939;13961;13983;14005;14041:23;14066:12;14080:13;14110:40;14122:7;14131:9;;14142:7;;14110:11;:40::i;:::-;14040:110;;;;;;14161:19;14183:10;:8;:10::i;:::-;14161:32;;14205:15;14222:23;14247:12;14276:46;14288:7;14297:4;14303:5;14310:11;14276;:46::i;:::-;14204:118;;;;;;14341:7;14350:15;14367:4;14373:15;14390:4;14396:5;14333:69;;;;;;;;;;;;;;;;;;;13795:615;;;;;;;:::o;2137:136::-;2195:7;2222:43;2226:1;2229;2222:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2215:50;;2137:136;;;;:::o;1950:179::-;2008:7;2028:9;2044:1;2040;:5;;;;:::i;:::-;2028:17;;2069:1;2064;:6;;2056:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2120:1;2113:8;;;1950:179;;;;:::o;13384:211::-;13437:19;13459:10;:8;:10::i;:::-;13437:32;;13480:13;13496:22;13506:11;13496:5;:9;;:22;;;;:::i;:::-;13480:38;;13554:33;13581:5;13554:7;:22;13570:4;13554:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13529:7;:22;13545:4;13529:22;;;;;;;;;;;;;;;:58;;;;13426:169;;13384:211;:::o;13603:147::-;13681:17;13693:4;13681:7;;:11;;:17;;;;:::i;:::-;13671:7;:27;;;;13722:20;13737:4;13722:10;;:14;;:20;;;;:::i;:::-;13709:10;:33;;;;13603:147;;:::o;14418:469::-;14587:7;14609;14631;14666:12;14681:30;14707:3;14681:21;14693:8;14681:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14666:45;;14722:13;14738:28;14762:3;14738:19;14750:6;14738:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14722:44;;14777:23;14803:28;14825:5;14803:17;14815:4;14803:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14777:54;;14850:15;14867:4;14873:5;14842:37;;;;;;;;;14418:469;;;;;;;:::o;14895:534::-;15089:7;15111;15133;15168:15;15186:24;15198:11;15186:7;:11;;:24;;;;:::i;:::-;15168:42;;15221:12;15236:21;15245:11;15236:4;:8;;:21;;;;:::i;:::-;15221:36;;15268:13;15284:22;15294:11;15284:5;:9;;:22;;;;:::i;:::-;15268:38;;15317:23;15343:28;15365:5;15343:17;15355:4;15343:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15317:54;;15390:7;15399:15;15416:4;15382:39;;;;;;;;;;14895:534;;;;;;;;:::o;2513:246::-;2571:7;2600:1;2595;:6;2591:47;;;2625:1;2618:8;;;;2591:47;2648:9;2664:1;2660;:5;;;;:::i;:::-;2648:17;;2693:1;2688;2684;:5;;;;:::i;:::-;:10;2676:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2750:1;2743:8;;;2513:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:474::-;10061:6;10069;10118:2;10106:9;10097:7;10093:23;10089:32;10086:119;;;10124:79;;:::i;:::-;10086:119;10244:1;10269:53;10314:7;10305:6;10294:9;10290:22;10269:53;:::i;:::-;10259:63;;10215:117;10371:2;10397:53;10442:7;10433:6;10422:9;10418:22;10397:53;:::i;:::-;10387:63;;10342:118;9993:474;;;;;:::o;10473:182::-;10613:34;10609:1;10601:6;10597:14;10590:58;10473:182;:::o;10661:366::-;10803:3;10824:67;10888:2;10883:3;10824:67;:::i;:::-;10817:74;;10900:93;10989:3;10900:93;:::i;:::-;11018:2;11013:3;11009:12;11002:19;;10661:366;;;:::o;11033:419::-;11199:4;11237:2;11226:9;11222:18;11214:26;;11286:9;11280:4;11276:20;11272:1;11261:9;11257:17;11250:47;11314:131;11440:4;11314:131;:::i;:::-;11306:139;;11033:419;;;:::o;11458:180::-;11506:77;11503:1;11496:88;11603:4;11600:1;11593:15;11627:4;11624:1;11617:15;11644:180;11692:77;11689:1;11682:88;11789:4;11786:1;11779:15;11813:4;11810:1;11803:15;11830:233;11869:3;11892:24;11910:5;11892:24;:::i;:::-;11883:33;;11938:66;11931:5;11928:77;11925:103;;;12008:18;;:::i;:::-;11925:103;12055:1;12048:5;12044:13;12037:20;;11830:233;;;:::o;12069:223::-;12209:34;12205:1;12197:6;12193:14;12186:58;12278:6;12273:2;12265:6;12261:15;12254:31;12069:223;:::o;12298:366::-;12440:3;12461:67;12525:2;12520:3;12461:67;:::i;:::-;12454:74;;12537:93;12626:3;12537:93;:::i;:::-;12655:2;12650:3;12646:12;12639:19;;12298:366;;;:::o;12670:419::-;12836:4;12874:2;12863:9;12859:18;12851:26;;12923:9;12917:4;12913:20;12909:1;12898:9;12894:17;12887:47;12951:131;13077:4;12951:131;:::i;:::-;12943:139;;12670:419;;;:::o;13095:221::-;13235:34;13231:1;13223:6;13219:14;13212:58;13304:4;13299:2;13291:6;13287:15;13280:29;13095:221;:::o;13322:366::-;13464:3;13485:67;13549:2;13544:3;13485:67;:::i;:::-;13478:74;;13561:93;13650:3;13561:93;:::i;:::-;13679:2;13674:3;13670:12;13663:19;;13322:366;;;:::o;13694:419::-;13860:4;13898:2;13887:9;13883:18;13875:26;;13947:9;13941:4;13937:20;13933:1;13922:9;13918:17;13911:47;13975:131;14101:4;13975:131;:::i;:::-;13967:139;;13694:419;;;:::o;14119:224::-;14259:34;14255:1;14247:6;14243:14;14236:58;14328:7;14323:2;14315:6;14311:15;14304:32;14119:224;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14349:366;;;:::o;14721:419::-;14887:4;14925:2;14914:9;14910:18;14902:26;;14974:9;14968:4;14964:20;14960:1;14949:9;14945:17;14938:47;15002:131;15128:4;15002:131;:::i;:::-;14994:139;;14721:419;;;:::o;15146:222::-;15286:34;15282:1;15274:6;15270:14;15263:58;15355:5;15350:2;15342:6;15338:15;15331:30;15146:222;:::o;15374:366::-;15516:3;15537:67;15601:2;15596:3;15537:67;:::i;:::-;15530:74;;15613:93;15702:3;15613:93;:::i;:::-;15731:2;15726:3;15722:12;15715:19;;15374:366;;;:::o;15746:419::-;15912:4;15950:2;15939:9;15935:18;15927:26;;15999:9;15993:4;15989:20;15985:1;15974:9;15970:17;15963:47;16027:131;16153:4;16027:131;:::i;:::-;16019:139;;15746:419;;;:::o;16171:228::-;16311:34;16307:1;16299:6;16295:14;16288:58;16380:11;16375:2;16367:6;16363:15;16356:36;16171:228;:::o;16405:366::-;16547:3;16568:67;16632:2;16627:3;16568:67;:::i;:::-;16561:74;;16644:93;16733:3;16644:93;:::i;:::-;16762:2;16757:3;16753:12;16746:19;;16405:366;;;:::o;16777:419::-;16943:4;16981:2;16970:9;16966:18;16958:26;;17030:9;17024:4;17020:20;17016:1;17005:9;17001:17;16994:47;17058:131;17184:4;17058:131;:::i;:::-;17050:139;;16777:419;;;:::o;17202:250::-;17342:34;17338:1;17330:6;17326:14;17319:58;17411:33;17406:2;17398:6;17394:15;17387:58;17202:250;:::o;17458:366::-;17600:3;17621:67;17685:2;17680:3;17621:67;:::i;:::-;17614:74;;17697:93;17786:3;17697:93;:::i;:::-;17815:2;17810:3;17806:12;17799:19;;17458:366;;;:::o;17830:419::-;17996:4;18034:2;18023:9;18019:18;18011:26;;18083:9;18077:4;18073:20;18069:1;18058:9;18054:17;18047:47;18111:131;18237:4;18111:131;:::i;:::-;18103:139;;17830:419;;;:::o;18255:178::-;18395:30;18391:1;18383:6;18379:14;18372:54;18255:178;:::o;18439:366::-;18581:3;18602:67;18666:2;18661:3;18602:67;:::i;:::-;18595:74;;18678:93;18767:3;18678:93;:::i;:::-;18796:2;18791:3;18787:12;18780:19;;18439:366;;;:::o;18811:419::-;18977:4;19015:2;19004:9;19000:18;18992:26;;19064:9;19058:4;19054:20;19050:1;19039:9;19035:17;19028:47;19092:131;19218:4;19092:131;:::i;:::-;19084:139;;18811:419;;;:::o;19236:181::-;19376:33;19372:1;19364:6;19360:14;19353:57;19236:181;:::o;19423:366::-;19565:3;19586:67;19650:2;19645:3;19586:67;:::i;:::-;19579:74;;19662:93;19751:3;19662:93;:::i;:::-;19780:2;19775:3;19771:12;19764:19;;19423:366;;;:::o;19795:419::-;19961:4;19999:2;19988:9;19984:18;19976:26;;20048:9;20042:4;20038:20;20034:1;20023:9;20019:17;20012:47;20076:131;20202:4;20076:131;:::i;:::-;20068:139;;19795:419;;;:::o;20220:305::-;20260:3;20279:20;20297:1;20279:20;:::i;:::-;20274:25;;20313:20;20331:1;20313:20;:::i;:::-;20308:25;;20467:1;20399:66;20395:74;20392:1;20389:81;20386:107;;;20473:18;;:::i;:::-;20386:107;20517:1;20514;20510:9;20503:16;;20220:305;;;;:::o;20531:222::-;20671:34;20667:1;20659:6;20655:14;20648:58;20740:5;20735:2;20727:6;20723:15;20716:30;20531:222;:::o;20759:366::-;20901:3;20922:67;20986:2;20981:3;20922:67;:::i;:::-;20915:74;;20998:93;21087:3;20998:93;:::i;:::-;21116:2;21111:3;21107:12;21100:19;;20759:366;;;:::o;21131:419::-;21297:4;21335:2;21324:9;21320:18;21312:26;;21384:9;21378:4;21374:20;21370:1;21359:9;21355:17;21348:47;21412:131;21538:4;21412:131;:::i;:::-;21404:139;;21131:419;;;:::o;21556:191::-;21596:4;21616:20;21634:1;21616:20;:::i;:::-;21611:25;;21650:20;21668:1;21650:20;:::i;:::-;21645:25;;21689:1;21686;21683:8;21680:34;;;21694:18;;:::i;:::-;21680:34;21739:1;21736;21732:9;21724:17;;21556:191;;;;:::o;21753:229::-;21893:34;21889:1;21881:6;21877:14;21870:58;21962:12;21957:2;21949:6;21945:15;21938:37;21753:229;:::o;21988:366::-;22130:3;22151:67;22215:2;22210:3;22151:67;:::i;:::-;22144:74;;22227:93;22316:3;22227:93;:::i;:::-;22345:2;22340:3;22336:12;22329:19;;21988:366;;;:::o;22360:419::-;22526:4;22564:2;22553:9;22549:18;22541:26;;22613:9;22607:4;22603:20;22599:1;22588:9;22584:17;22577:47;22641:131;22767:4;22641:131;:::i;:::-;22633:139;;22360:419;;;:::o;22785:143::-;22842:5;22873:6;22867:13;22858:22;;22889:33;22916:5;22889:33;:::i;:::-;22785:143;;;;:::o;22934:351::-;23004:6;23053:2;23041:9;23032:7;23028:23;23024:32;23021:119;;;23059:79;;:::i;:::-;23021:119;23179:1;23204:64;23260:7;23251:6;23240:9;23236:22;23204:64;:::i;:::-;23194:74;;23150:128;22934:351;;;;:::o;23291:85::-;23336:7;23365:5;23354:16;;23291:85;;;:::o;23382:158::-;23440:9;23473:61;23491:42;23500:32;23526:5;23500:32;:::i;:::-;23491:42;:::i;:::-;23473:61;:::i;:::-;23460:74;;23382:158;;;:::o;23546:147::-;23641:45;23680:5;23641:45;:::i;:::-;23636:3;23629:58;23546:147;;:::o;23699:114::-;23766:6;23800:5;23794:12;23784:22;;23699:114;;;:::o;23819:184::-;23918:11;23952:6;23947:3;23940:19;23992:4;23987:3;23983:14;23968:29;;23819:184;;;;:::o;24009:132::-;24076:4;24099:3;24091:11;;24129:4;24124:3;24120:14;24112:22;;24009:132;;;:::o;24147:108::-;24224:24;24242:5;24224:24;:::i;:::-;24219:3;24212:37;24147:108;;:::o;24261:179::-;24330:10;24351:46;24393:3;24385:6;24351:46;:::i;:::-;24429:4;24424:3;24420:14;24406:28;;24261:179;;;;:::o;24446:113::-;24516:4;24548;24543:3;24539:14;24531:22;;24446:113;;;:::o;24595:732::-;24714:3;24743:54;24791:5;24743:54;:::i;:::-;24813:86;24892:6;24887:3;24813:86;:::i;:::-;24806:93;;24923:56;24973:5;24923:56;:::i;:::-;25002:7;25033:1;25018:284;25043:6;25040:1;25037:13;25018:284;;;25119:6;25113:13;25146:63;25205:3;25190:13;25146:63;:::i;:::-;25139:70;;25232:60;25285:6;25232:60;:::i;:::-;25222:70;;25078:224;25065:1;25062;25058:9;25053:14;;25018:284;;;25022:14;25318:3;25311:10;;24719:608;;;24595:732;;;;:::o;25333:831::-;25596:4;25634:3;25623:9;25619:19;25611:27;;25648:71;25716:1;25705:9;25701:17;25692:6;25648:71;:::i;:::-;25729:80;25805:2;25794:9;25790:18;25781:6;25729:80;:::i;:::-;25856:9;25850:4;25846:20;25841:2;25830:9;25826:18;25819:48;25884:108;25987:4;25978:6;25884:108;:::i;:::-;25876:116;;26002:72;26070:2;26059:9;26055:18;26046:6;26002:72;:::i;:::-;26084:73;26152:3;26141:9;26137:19;26128:6;26084:73;:::i;:::-;25333:831;;;;;;;;:::o;26170:180::-;26218:77;26215:1;26208:88;26315:4;26312:1;26305:15;26339:4;26336:1;26329:15;26356:185;26396:1;26413:20;26431:1;26413:20;:::i;:::-;26408:25;;26447:20;26465:1;26447:20;:::i;:::-;26442:25;;26486:1;26476:35;;26491:18;;:::i;:::-;26476:35;26533:1;26530;26526:9;26521:14;;26356:185;;;;:::o;26547:177::-;26687:29;26683:1;26675:6;26671:14;26664:53;26547:177;:::o;26730:366::-;26872:3;26893:67;26957:2;26952:3;26893:67;:::i;:::-;26886:74;;26969:93;27058:3;26969:93;:::i;:::-;27087:2;27082:3;27078:12;27071:19;;26730:366;;;:::o;27102:419::-;27268:4;27306:2;27295:9;27291:18;27283:26;;27355:9;27349:4;27345:20;27341:1;27330:9;27326:17;27319:47;27383:131;27509:4;27383:131;:::i;:::-;27375:139;;27102:419;;;:::o;27527:348::-;27567:7;27590:20;27608:1;27590:20;:::i;:::-;27585:25;;27624:20;27642:1;27624:20;:::i;:::-;27619:25;;27812:1;27744:66;27740:74;27737:1;27734:81;27729:1;27722:9;27715:17;27711:105;27708:131;;;27819:18;;:::i;:::-;27708:131;27867:1;27864;27860:9;27849:20;;27527:348;;;;:::o;27881:220::-;28021:34;28017:1;28009:6;28005:14;27998:58;28090:3;28085:2;28077:6;28073:15;28066:28;27881:220;:::o;28107:366::-;28249:3;28270:67;28334:2;28329:3;28270:67;:::i;:::-;28263:74;;28346:93;28435:3;28346:93;:::i;:::-;28464:2;28459:3;28455:12;28448:19;;28107:366;;;:::o;28479:419::-;28645:4;28683:2;28672:9;28668:18;28660:26;;28732:9;28726:4;28722:20;28718:1;28707:9;28703:17;28696:47;28760:131;28886:4;28760:131;:::i;:::-;28752:139;;28479:419;;;:::o

Swarm Source

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