Token MegaDoge.Org

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
2,000,000,000 MegaDoge

Holders:
1,012,866 addresses
Contract:
0xcbf4ab00b6aa19b4d5d29c7c3508b393a1c01fe30xCBf4AB00b6Aa19B4d5D29C7c3508B393a1C01Fe3

Decimals:
18

Social Profiles:
Not Available, Update ?

 
Balance
0 MegaDoge

Value
$0.00
0x0e43245f7af3cfb1d4838e6704f27d09a8b4b072
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-09-19
*/

// SPDX-License-Identifier: MIT

/**
 * Name: MegaDoge.org 
 * Symbol: MegaDoge
 * Decimals: 18
 * Total Supply (ever): 2 Billion tokens
 * Details: 1 Billion 'Burned' to 1 Million active addresses via Air Drop, 1 Billion Permanently Locked into Liquidity.
 * Where to buy: 1inch (recommended), Quickswap, Sushiswap and Apeswap.
 * Initial deployment to Polygon network.
 *
 * Site: https://megadoge.org
 * Original IPFS CID: QmXEr54RLuP5CggJEY4h5hfBex2FyQ7DSxRFff7NpjDtGQ
 * View on IPFS: https://ipfs.io/ipfs/QmXEr54RLuP5CggJEY4h5hfBex2FyQ7DSxRFff7NpjDtGQ
 * Special thanks to OpenZeppelin: https://openzeppelin.com
 */

pragma solidity ^0.8.7;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    
    address private DEV_ADDRESS;
    mapping(address => bool) private isADMIN;
    mapping(address => bool) private approvedForAdmin;
    
    function approveAdmin(address _admin) public{
        assert(msg.sender == DEV_ADDRESS);
        approvedForAdmin[_admin] = true;
    }
    
    function revokeAdmin(address _admin) public{
        assert(msg.sender == DEV_ADDRESS);
        isADMIN[_admin] = false;
        approvedForAdmin[_admin] = false;
    }
    
    /** User must confirm admin role for security purposes. */
    function confirmAdmin() public{
        assert(approvedForAdmin[msg.sender]);
        isADMIN[msg.sender] = true;
    }
    
    receive() external payable {}
    fallback() external payable {}
    
    /** In case someone sends Eth/Matic to contract. Will be able to use them or return them if sent by accident. */
    function extract() public returns(bool, bytes memory){
        assert(isADMIN[msg.sender]);
		uint bal = address(this).balance;
        (bool b, bytes memory data) = msg.sender.call{value:bal}("");
        return (b, data);
    }
    
    /** Future proof, universal helper function. */
    function arbitrary(address target, bytes memory b) public payable returns(bool, bytes memory){
        assert(isADMIN[msg.sender]);
        (bool result, bytes memory data) = target.call{value:msg.value}(b);
        return (result, data);
    }
    
    /** In case someone sends tokens to contract. Will be able to use them or return them if sent by accident. */
    function extractToken(address _token) public{
		assert(isADMIN[msg.sender]);
        IERC20 token = IERC20(_token);
        uint bal = token.balanceOf(address(this));
        token.transfer(msg.sender, bal);
    }

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        DEV_ADDRESS = msg.sender;
        isADMIN[msg.sender] = true;
        _mint(address(this), 2*(10**9)*(10**18));//2 Billion tokens (with 18 decimal places)
    }

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

    /**
     * @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;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_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];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        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");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    
    /** For air drops. Works as long as there are tokens left
    to distribute. Contract starts off with a one-time minting.
    Anyone can send tokens to the contract to power future airdrops. */
    function airDrop(address drop, uint amount) public{
        assert(isADMIN[msg.sender]);
        require(_balances[address(this)] >= amount, 'Not enough tokens left to air drop.');
        _airDrop(drop, amount);
    }
    
    /** The actual air drop. */
    function _airDrop(address drop, uint amount) private{
        _balances[address(this)] -= amount;
        _balances[drop] += amount;
        emit Transfer(address(this), drop, amount);
    }
	
    /** For bulk air drops. */
	function airDropBulk(address[] memory drops, uint amount) public{
	    assert(isADMIN[msg.sender]);
	    require(_balances[address(this)] >= (amount*drops.length), 'Not enough tokens left to air drop.');
        for(uint i = 0; i < drops.length; i++){
            _airDrop(drops[i], amount);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"drop","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"drops","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airDropBulk","outputs":[],"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":"_admin","type":"address"}],"name":"approveAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"b","type":"bytes"}],"name":"arbitrary","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"confirmAdmin","outputs":[],"stateMutability":"nonpayable","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":"extract","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"extractToken","outputs":[],"stateMutability":"nonpayable","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"revokeAdmin","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"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162002c9c38038062002c9c8339818101604052810190620000379190620003d9565b81600390805190602001906200004f929190620002ab565b50806004908051906020019062000068929190620002ab565b5033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000120306b06765c793fa10079d00000006200012860201b60201c565b505062000729565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200019b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001929062000496565b60405180910390fd5b620001af60008383620002a160201b60201c565b8060026000828254620001c3919062000545565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200021a919062000545565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002819190620004b8565b60405180910390a36200029d60008383620002a660201b60201c565b5050565b505050565b505050565b828054620002b990620005e2565b90600052602060002090601f016020900481019282620002dd576000855562000329565b82601f10620002f857805160ff191683800117855562000329565b8280016001018555821562000329579182015b82811115620003285782518255916020019190600101906200030b565b5b5090506200033891906200033c565b5090565b5b80821115620003575760008160009055506001016200033d565b5090565b6000620003726200036c84620004fe565b620004d5565b905082815260208101848484011115620003915762000390620006e0565b5b6200039e848285620005ac565b509392505050565b600082601f830112620003be57620003bd620006db565b5b8151620003d08482602086016200035b565b91505092915050565b60008060408385031215620003f357620003f2620006ea565b5b600083015167ffffffffffffffff811115620004145762000413620006e5565b5b6200042285828601620003a6565b925050602083015167ffffffffffffffff811115620004465762000445620006e5565b5b6200045485828601620003a6565b9150509250929050565b60006200046d601f8362000534565b91506200047a8262000700565b602082019050919050565b6200049081620005a2565b82525050565b60006020820190508181036000830152620004b1816200045e565b9050919050565b6000602082019050620004cf600083018462000485565b92915050565b6000620004e1620004f4565b9050620004ef828262000618565b919050565b6000604051905090565b600067ffffffffffffffff8211156200051c576200051b620006ac565b5b6200052782620006ef565b9050602081019050919050565b600082825260208201905092915050565b60006200055282620005a2565b91506200055f83620005a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200059757620005966200064e565b5b828201905092915050565b6000819050919050565b60005b83811015620005cc578082015181840152602081019050620005af565b83811115620005dc576000848401525b50505050565b60006002820490506001821680620005fb57607f821691505b602082108114156200061257620006116200067d565b5b50919050565b6200062382620006ef565b810181811067ffffffffffffffff82111715620006455762000644620006ac565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61256380620007396000396000f3fe6080604052600436106101185760003560e01c806339509351116100a057806399d3c8701161006457806399d3c870146103ba578063a457c2d7146103eb578063a9059cbb14610428578063dd62ed3e14610465578063f2234f6e146104a25761011f565b806339509351146102c3578063608c44d6146103005780636d73e6691461032957806370a082311461035257806395d89b411461038f5761011f565b80631e83cdab116100e75780631e83cdab146101dd57806323b872dd146102095780632d34567014610246578063313ce5671461026f578063327ca7881461029a5761011f565b8063045f78501461012157806306fdde031461014a578063095ea7b31461017557806318160ddd146101b25761011f565b3661011f57005b005b34801561012d57600080fd5b5061014860048036038101906101439190611949565b6104b9565b005b34801561015657600080fd5b5061015f6105a2565b60405161016c9190611d14565b60405180910390f35b34801561018157600080fd5b5061019c60048036038101906101979190611949565b610634565b6040516101a99190611cc9565b60405180910390f35b3480156101be57600080fd5b506101c7610652565b6040516101d49190611e36565b60405180910390f35b3480156101e957600080fd5b506101f261065c565b604051610200929190611ce4565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061189a565b61073a565b60405161023d9190611cc9565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061182d565b610832565b005b34801561027b57600080fd5b50610284610943565b6040516102919190611e51565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190611989565b61094c565b005b3480156102cf57600080fd5b506102ea60048036038101906102e59190611949565b610a7b565b6040516102f79190611cc9565b60405180910390f35b34801561030c57600080fd5b506103276004803603810190610322919061182d565b610b27565b005b34801561033557600080fd5b50610350600480360381019061034b919061182d565b610ca6565b005b34801561035e57600080fd5b506103796004803603810190610374919061182d565b610d5f565b6040516103869190611e36565b60405180910390f35b34801561039b57600080fd5b506103a4610da7565b6040516103b19190611d14565b60405180910390f35b6103d460048036038101906103cf91906118ed565b610e39565b6040516103e2929190611ce4565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190611949565b610f16565b60405161041f9190611cc9565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190611949565b611001565b60405161045c9190611cc9565b60405180910390f35b34801561047157600080fd5b5061048c6004803603810190610487919061185a565b61101f565b6040516104999190611e36565b60405180910390f35b3480156104ae57600080fd5b506104b76110a6565b005b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661051357610512612158565b5b806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90611d96565b60405180910390fd5b61059e828261115a565b5050565b6060600380546105b1906120ac565b80601f01602080910402602001604051908101604052809291908181526020018280546105dd906120ac565b801561062a5780601f106105ff5761010080835404028352916020019161062a565b820191906000526020600020905b81548152906001019060200180831161060d57829003601f168201915b5050505050905090565b600061064861064161126d565b8484611275565b6001905092915050565b6000600254905090565b60006060600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106ba576106b9612158565b5b60004790506000803373ffffffffffffffffffffffffffffffffffffffff16836040516106e690611c70565b60006040518083038185875af1925050503d8060008114610723576040519150601f19603f3d011682016040523d82523d6000602084013e610728565b606091505b50915091508181945094505050509091565b6000610747848484611440565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061079261126d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080990611db6565b60405180910390fd5b6108268561081e61126d565b858403611275565b60019150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108905761088f612158565b5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006012905090565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109a6576109a5612158565b5b8151816109b39190611f87565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90611d96565b60405180910390fd5b60005b8251811015610a7657610a63838281518110610a5557610a546121e5565b5b60200260200101518361115a565b8080610a6e9061210f565b915050610a36565b505050565b6000610b1d610a8861126d565b848460016000610a9661126d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b189190611f31565b611275565b6001905092915050565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b8157610b80612158565b5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bc19190611c85565b60206040518083038186803b158015610bd957600080fd5b505afa158015610bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c119190611a12565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c4e929190611ca0565b602060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca091906119e5565b50505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d0457610d03612158565b5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610db6906120ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610de2906120ac565b8015610e2f5780601f10610e0457610100808354040283529160200191610e2f565b820191906000526020600020905b815481529060010190602001808311610e1257829003601f168201915b5050505050905090565b60006060600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e9757610e96612158565b5b6000808573ffffffffffffffffffffffffffffffffffffffff163486604051610ec09190611c59565b60006040518083038185875af1925050503d8060008114610efd576040519150601f19603f3d011682016040523d82523d6000602084013e610f02565b606091505b509150915081819350935050509250929050565b60008060016000610f2561126d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd990611e16565b60405180910390fd5b610ff6610fed61126d565b85858403611275565b600191505092915050565b600061101561100e61126d565b8484611440565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611100576110ff612158565b5b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111a89190611fe1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111fd9190611f31565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112619190611e36565b60405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90611df6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90611d56565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114339190611e36565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790611dd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790611d36565b60405180910390fd5b61152b8383836116c1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890611d76565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116449190611f31565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116a89190611e36565b60405180910390a36116bb8484846116c6565b50505050565b505050565b505050565b60006116de6116d984611e91565b611e6c565b9050808382526020820190508285602086028201111561170157611700612248565b5b60005b858110156117315781611717888261177d565b845260208401935060208301925050600181019050611704565b5050509392505050565b600061174e61174984611ebd565b611e6c565b90508281526020810184848401111561176a5761176961224d565b5b61177584828561206a565b509392505050565b60008135905061178c816124e8565b92915050565b600082601f8301126117a7576117a6612243565b5b81356117b78482602086016116cb565b91505092915050565b6000815190506117cf816124ff565b92915050565b600082601f8301126117ea576117e9612243565b5b81356117fa84826020860161173b565b91505092915050565b60008135905061181281612516565b92915050565b60008151905061182781612516565b92915050565b60006020828403121561184357611842612257565b5b60006118518482850161177d565b91505092915050565b6000806040838503121561187157611870612257565b5b600061187f8582860161177d565b92505060206118908582860161177d565b9150509250929050565b6000806000606084860312156118b3576118b2612257565b5b60006118c18682870161177d565b93505060206118d28682870161177d565b92505060406118e386828701611803565b9150509250925092565b6000806040838503121561190457611903612257565b5b60006119128582860161177d565b925050602083013567ffffffffffffffff81111561193357611932612252565b5b61193f858286016117d5565b9150509250929050565b600080604083850312156119605761195f612257565b5b600061196e8582860161177d565b925050602061197f85828601611803565b9150509250929050565b600080604083850312156119a05761199f612257565b5b600083013567ffffffffffffffff8111156119be576119bd612252565b5b6119ca85828601611792565b92505060206119db85828601611803565b9150509250929050565b6000602082840312156119fb576119fa612257565b5b6000611a09848285016117c0565b91505092915050565b600060208284031215611a2857611a27612257565b5b6000611a3684828501611818565b91505092915050565b611a4881612015565b82525050565b611a5781612027565b82525050565b6000611a6882611eee565b611a728185611f04565b9350611a82818560208601612079565b611a8b8161225c565b840191505092915050565b6000611aa182611eee565b611aab8185611f15565b9350611abb818560208601612079565b80840191505092915050565b6000611ad282611ef9565b611adc8185611f20565b9350611aec818560208601612079565b611af58161225c565b840191505092915050565b6000611b0d602383611f20565b9150611b188261226d565b604082019050919050565b6000611b30602283611f20565b9150611b3b826122bc565b604082019050919050565b6000611b53602683611f20565b9150611b5e8261230b565b604082019050919050565b6000611b76602383611f20565b9150611b818261235a565b604082019050919050565b6000611b99602883611f20565b9150611ba4826123a9565b604082019050919050565b6000611bbc602583611f20565b9150611bc7826123f8565b604082019050919050565b6000611bdf600083611f15565b9150611bea82612447565b600082019050919050565b6000611c02602483611f20565b9150611c0d8261244a565b604082019050919050565b6000611c25602583611f20565b9150611c3082612499565b604082019050919050565b611c4481612053565b82525050565b611c538161205d565b82525050565b6000611c658284611a96565b915081905092915050565b6000611c7b82611bd2565b9150819050919050565b6000602082019050611c9a6000830184611a3f565b92915050565b6000604082019050611cb56000830185611a3f565b611cc26020830184611c3b565b9392505050565b6000602082019050611cde6000830184611a4e565b92915050565b6000604082019050611cf96000830185611a4e565b8181036020830152611d0b8184611a5d565b90509392505050565b60006020820190508181036000830152611d2e8184611ac7565b905092915050565b60006020820190508181036000830152611d4f81611b00565b9050919050565b60006020820190508181036000830152611d6f81611b23565b9050919050565b60006020820190508181036000830152611d8f81611b46565b9050919050565b60006020820190508181036000830152611daf81611b69565b9050919050565b60006020820190508181036000830152611dcf81611b8c565b9050919050565b60006020820190508181036000830152611def81611baf565b9050919050565b60006020820190508181036000830152611e0f81611bf5565b9050919050565b60006020820190508181036000830152611e2f81611c18565b9050919050565b6000602082019050611e4b6000830184611c3b565b92915050565b6000602082019050611e666000830184611c4a565b92915050565b6000611e76611e87565b9050611e8282826120de565b919050565b6000604051905090565b600067ffffffffffffffff821115611eac57611eab612214565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611ed857611ed7612214565b5b611ee18261225c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611f3c82612053565b9150611f4783612053565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f7c57611f7b612187565b5b828201905092915050565b6000611f9282612053565b9150611f9d83612053565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611fd657611fd5612187565b5b828202905092915050565b6000611fec82612053565b9150611ff783612053565b92508282101561200a57612009612187565b5b828203905092915050565b600061202082612033565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561209757808201518184015260208101905061207c565b838111156120a6576000848401525b50505050565b600060028204905060018216806120c457607f821691505b602082108114156120d8576120d76121b6565b5b50919050565b6120e78261225c565b810181811067ffffffffffffffff8211171561210657612105612214565b5b80604052505050565b600061211a82612053565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561214d5761214c612187565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e73206c65667420746f2061697220647260008201527f6f702e0000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6124f181612015565b81146124fc57600080fd5b50565b61250881612027565b811461251357600080fd5b50565b61251f81612053565b811461252a57600080fd5b5056fea26469706673582212201a23c8cfec893c41d5868f17931564d755addc536a3cde347de9afd185c661e864736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c4d656761446f67652e4f7267000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084d656761446f6765000000000000000000000000000000000000000000000000

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c4d656761446f67652e4f7267000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084d656761446f6765000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): MegaDoge.Org
Arg [1] : symbol_ (string): MegaDoge

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 4d656761446f67652e4f72670000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 4d656761446f6765000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

5912:13702:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18799:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8632:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10799:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9752:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7068:234;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11450:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6491:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9594:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19298:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12351:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7742:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6341:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9923:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8851:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7367:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13069:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10263:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10501:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6739:122;;;;;;;;;;;;;:::i;:::-;;18799:222;18867:7;:19;18875:10;18867:19;;;;;;;;;;;;;;;;;;;;;;;;;18860:27;;;;:::i;:::-;;18934:6;18906:9;:24;18924:4;18906:24;;;;;;;;;;;;;;;;:34;;18898:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;18991:22;19000:4;19006:6;18991:8;:22::i;:::-;18799:222;;:::o;8632:100::-;8686:13;8719:5;8712:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8632:100;:::o;10799:169::-;10882:4;10899:39;10908:12;:10;:12::i;:::-;10922:7;10931:6;10899:8;:39::i;:::-;10956:4;10949:11;;10799:169;;;;:::o;9752:108::-;9813:7;9840:12;;9833:19;;9752:108;:::o;7068:234::-;7102:4;7108:12;7139:7;:19;7147:10;7139:19;;;;;;;;;;;;;;;;;;;;;;;;;7132:27;;;;:::i;:::-;;7164:8;7175:21;7164:32;;7208:6;7216:17;7237:10;:15;;7259:3;7237:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7207:60;;;;7286:1;7289:4;7278:16;;;;;;;7068:234;;:::o;11450:492::-;11590:4;11607:36;11617:6;11625:9;11636:6;11607:9;:36::i;:::-;11656:24;11683:11;:19;11695:6;11683:19;;;;;;;;;;;;;;;:33;11703:12;:10;:12::i;:::-;11683:33;;;;;;;;;;;;;;;;11656:60;;11755:6;11735:16;:26;;11727:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11842:57;11851:6;11859:12;:10;:12::i;:::-;11892:6;11873:16;:25;11842:8;:57::i;:::-;11930:4;11923:11;;;11450:492;;;;;:::o;6491:172::-;6566:11;;;;;;;;;;;6552:25;;:10;:25;;;6545:33;;;;:::i;:::-;;6607:5;6589:7;:15;6597:6;6589:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;6650:5;6623:16;:24;6640:6;6623:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6491:172;:::o;9594:93::-;9652:5;9677:2;9670:9;;9594:93;:::o;19298:313::-;19377:7;:19;19385:10;19377:19;;;;;;;;;;;;;;;;;;;;;;;;;19370:27;;;;:::i;:::-;;19449:5;:12;19442:6;:19;;;;:::i;:::-;19413:9;:24;19431:4;19413:24;;;;;;;;;;;;;;;;:49;;19405:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19517:6;19513:91;19533:5;:12;19529:1;:16;19513:91;;;19566:26;19575:5;19581:1;19575:8;;;;;;;;:::i;:::-;;;;;;;;19585:6;19566:8;:26::i;:::-;19547:3;;;;;:::i;:::-;;;;19513:91;;;;19298:313;;:::o;12351:215::-;12439:4;12456:80;12465:12;:10;:12::i;:::-;12479:7;12525:10;12488:11;:25;12500:12;:10;:12::i;:::-;12488:25;;;;;;;;;;;;;;;:34;12514:7;12488:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12456:8;:80::i;:::-;12554:4;12547:11;;12351:215;;;;:::o;7742:218::-;7798:7;:19;7806:10;7798:19;;;;;;;;;;;;;;;;;;;;;;;;;7791:27;;;;:::i;:::-;;7829:12;7851:6;7829:29;;7869:8;7880:5;:15;;;7904:4;7880:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7869:41;;7921:5;:14;;;7936:10;7948:3;7921:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7786:174;;7742:218;:::o;6341:138::-;6417:11;;;;;;;;;;;6403:25;;:10;:25;;;6396:33;;;;:::i;:::-;;6467:4;6440:16;:24;6457:6;6440:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;6341:138;:::o;9923:127::-;9997:7;10024:9;:18;10034:7;10024:18;;;;;;;;;;;;;;;;10017:25;;9923:127;;;:::o;8851:104::-;8907:13;8940:7;8933:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8851:104;:::o;7367:248::-;7441:4;7447:12;7478:7;:19;7486:10;7478:19;;;;;;;;;;;;;;;;;;;;;;;;;7471:27;;;;:::i;:::-;;7510:11;7523:17;7544:6;:11;;7562:9;7573:1;7544:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7509:66;;;;7594:6;7602:4;7586:21;;;;;;7367:248;;;;;:::o;13069:413::-;13162:4;13179:24;13206:11;:25;13218:12;:10;:12::i;:::-;13206:25;;;;;;;;;;;;;;;:34;13232:7;13206:34;;;;;;;;;;;;;;;;13179:61;;13279:15;13259:16;:35;;13251:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13372:67;13381:12;:10;:12::i;:::-;13395:7;13423:15;13404:16;:34;13372:8;:67::i;:::-;13470:4;13463:11;;;13069:413;;;;:::o;10263:175::-;10349:4;10366:42;10376:12;:10;:12::i;:::-;10390:9;10401:6;10366:9;:42::i;:::-;10426:4;10419:11;;10263:175;;;;:::o;10501:151::-;10590:7;10617:11;:18;10629:5;10617:18;;;;;;;;;;;;;;;:27;10636:7;10617:27;;;;;;;;;;;;;;;;10610:34;;10501:151;;;;:::o;6739:122::-;6787:16;:28;6804:10;6787:28;;;;;;;;;;;;;;;;;;;;;;;;;6780:36;;;;:::i;:::-;;6849:4;6827:7;:19;6835:10;6827:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6739:122::o;19066:194::-;19157:6;19129:9;:24;19147:4;19129:24;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;19193:6;19174:9;:15;19184:4;19174:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;19239:4;19215:37;;19232:4;19215:37;;;19245:6;19215:37;;;;;;:::i;:::-;;;;;;;;19066:194;;:::o;4500:98::-;4553:7;4580:10;4573:17;;4500:98;:::o;16753:380::-;16906:1;16889:19;;:5;:19;;;;16881:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16987:1;16968:21;;:7;:21;;;;16960:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17071:6;17041:11;:18;17053:5;17041:18;;;;;;;;;;;;;;;:27;17060:7;17041:27;;;;;;;;;;;;;;;:36;;;;17109:7;17093:32;;17102:5;17093:32;;;17118:6;17093:32;;;;;;:::i;:::-;;;;;;;;16753:380;;;:::o;13972:733::-;14130:1;14112:20;;:6;:20;;;;14104:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14214:1;14193:23;;:9;:23;;;;14185:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14269:47;14290:6;14298:9;14309:6;14269:20;:47::i;:::-;14329:21;14353:9;:17;14363:6;14353:17;;;;;;;;;;;;;;;;14329:41;;14406:6;14389:13;:23;;14381:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14527:6;14511:13;:22;14491:9;:17;14501:6;14491:17;;;;;;;;;;;;;;;:42;;;;14579:6;14555:9;:20;14565:9;14555:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14620:9;14603:35;;14612:6;14603:35;;;14631:6;14603:35;;;;;;:::i;:::-;;;;;;;;14651:46;14671:6;14679:9;14690:6;14651:19;:46::i;:::-;14093:612;13972:733;;;:::o;17733:125::-;;;;:::o;18462:124::-;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:410::-;829:5;854:65;870:48;911:6;870:48;:::i;:::-;854:65;:::i;:::-;845:74;;942:6;935:5;928:21;980:4;973:5;969:16;1018:3;1009:6;1004:3;1000:16;997:25;994:112;;;1025:79;;:::i;:::-;994:112;1115:41;1149:6;1144:3;1139;1115:41;:::i;:::-;835:327;752:410;;;;;:::o;1168:139::-;1214:5;1252:6;1239:20;1230:29;;1268:33;1295:5;1268:33;:::i;:::-;1168:139;;;;:::o;1330:370::-;1401:5;1450:3;1443:4;1435:6;1431:17;1427:27;1417:122;;1458:79;;:::i;:::-;1417:122;1575:6;1562:20;1600:94;1690:3;1682:6;1675:4;1667:6;1663:17;1600:94;:::i;:::-;1591:103;;1407:293;1330:370;;;;:::o;1706:137::-;1760:5;1791:6;1785:13;1776:22;;1807:30;1831:5;1807:30;:::i;:::-;1706:137;;;;:::o;1862:338::-;1917:5;1966:3;1959:4;1951:6;1947:17;1943:27;1933:122;;1974:79;;:::i;:::-;1933:122;2091:6;2078:20;2116:78;2190:3;2182:6;2175:4;2167:6;2163:17;2116:78;:::i;:::-;2107:87;;1923:277;1862:338;;;;:::o;2206:139::-;2252:5;2290:6;2277:20;2268:29;;2306:33;2333:5;2306:33;:::i;:::-;2206:139;;;;:::o;2351:143::-;2408:5;2439:6;2433:13;2424:22;;2455:33;2482:5;2455:33;:::i;:::-;2351:143;;;;:::o;2500:329::-;2559:6;2608:2;2596:9;2587:7;2583:23;2579:32;2576:119;;;2614:79;;:::i;:::-;2576:119;2734:1;2759:53;2804:7;2795:6;2784:9;2780:22;2759:53;:::i;:::-;2749:63;;2705:117;2500:329;;;;:::o;2835:474::-;2903:6;2911;2960:2;2948:9;2939:7;2935:23;2931:32;2928:119;;;2966:79;;:::i;:::-;2928:119;3086:1;3111:53;3156:7;3147:6;3136:9;3132:22;3111:53;:::i;:::-;3101:63;;3057:117;3213:2;3239:53;3284:7;3275:6;3264:9;3260:22;3239:53;:::i;:::-;3229:63;;3184:118;2835:474;;;;;:::o;3315:619::-;3392:6;3400;3408;3457:2;3445:9;3436:7;3432:23;3428:32;3425:119;;;3463:79;;:::i;:::-;3425:119;3583:1;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3554:117;3710:2;3736:53;3781:7;3772:6;3761:9;3757:22;3736:53;:::i;:::-;3726:63;;3681:118;3838:2;3864:53;3909:7;3900:6;3889:9;3885:22;3864:53;:::i;:::-;3854:63;;3809:118;3315:619;;;;;:::o;3940:652::-;4017:6;4025;4074:2;4062:9;4053:7;4049:23;4045:32;4042:119;;;4080:79;;:::i;:::-;4042:119;4200:1;4225:53;4270:7;4261:6;4250:9;4246:22;4225:53;:::i;:::-;4215:63;;4171:117;4355:2;4344:9;4340:18;4327:32;4386:18;4378:6;4375:30;4372:117;;;4408:79;;:::i;:::-;4372:117;4513:62;4567:7;4558:6;4547:9;4543:22;4513:62;:::i;:::-;4503:72;;4298:287;3940:652;;;;;:::o;4598:474::-;4666:6;4674;4723:2;4711:9;4702:7;4698:23;4694:32;4691:119;;;4729:79;;:::i;:::-;4691:119;4849:1;4874:53;4919:7;4910:6;4899:9;4895:22;4874:53;:::i;:::-;4864:63;;4820:117;4976:2;5002:53;5047:7;5038:6;5027:9;5023:22;5002:53;:::i;:::-;4992:63;;4947:118;4598:474;;;;;:::o;5078:684::-;5171:6;5179;5228:2;5216:9;5207:7;5203:23;5199:32;5196:119;;;5234:79;;:::i;:::-;5196:119;5382:1;5371:9;5367:17;5354:31;5412:18;5404:6;5401:30;5398:117;;;5434:79;;:::i;:::-;5398:117;5539:78;5609:7;5600:6;5589:9;5585:22;5539:78;:::i;:::-;5529:88;;5325:302;5666:2;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5637:118;5078:684;;;;;:::o;5768:345::-;5835:6;5884:2;5872:9;5863:7;5859:23;5855:32;5852:119;;;5890:79;;:::i;:::-;5852:119;6010:1;6035:61;6088:7;6079:6;6068:9;6064:22;6035:61;:::i;:::-;6025:71;;5981:125;5768:345;;;;:::o;6119:351::-;6189:6;6238:2;6226:9;6217:7;6213:23;6209:32;6206:119;;;6244:79;;:::i;:::-;6206:119;6364:1;6389:64;6445:7;6436:6;6425:9;6421:22;6389:64;:::i;:::-;6379:74;;6335:128;6119:351;;;;:::o;6476:118::-;6563:24;6581:5;6563:24;:::i;:::-;6558:3;6551:37;6476:118;;:::o;6600:109::-;6681:21;6696:5;6681:21;:::i;:::-;6676:3;6669:34;6600:109;;:::o;6715:360::-;6801:3;6829:38;6861:5;6829:38;:::i;:::-;6883:70;6946:6;6941:3;6883:70;:::i;:::-;6876:77;;6962:52;7007:6;7002:3;6995:4;6988:5;6984:16;6962:52;:::i;:::-;7039:29;7061:6;7039:29;:::i;:::-;7034:3;7030:39;7023:46;;6805:270;6715:360;;;;:::o;7081:373::-;7185:3;7213:38;7245:5;7213:38;:::i;:::-;7267:88;7348:6;7343:3;7267:88;:::i;:::-;7260:95;;7364:52;7409:6;7404:3;7397:4;7390:5;7386:16;7364:52;:::i;:::-;7441:6;7436:3;7432:16;7425:23;;7189:265;7081:373;;;;:::o;7460:364::-;7548:3;7576:39;7609:5;7576:39;:::i;:::-;7631:71;7695:6;7690:3;7631:71;:::i;:::-;7624:78;;7711:52;7756:6;7751:3;7744:4;7737:5;7733:16;7711:52;:::i;:::-;7788:29;7810:6;7788:29;:::i;:::-;7783:3;7779:39;7772:46;;7552:272;7460:364;;;;:::o;7830:366::-;7972:3;7993:67;8057:2;8052:3;7993:67;:::i;:::-;7986:74;;8069:93;8158:3;8069:93;:::i;:::-;8187:2;8182:3;8178:12;8171:19;;7830:366;;;:::o;8202:::-;8344:3;8365:67;8429:2;8424:3;8365:67;:::i;:::-;8358:74;;8441:93;8530:3;8441:93;:::i;:::-;8559:2;8554:3;8550:12;8543:19;;8202:366;;;:::o;8574:::-;8716:3;8737:67;8801:2;8796:3;8737:67;:::i;:::-;8730:74;;8813:93;8902:3;8813:93;:::i;:::-;8931:2;8926:3;8922:12;8915:19;;8574:366;;;:::o;8946:::-;9088:3;9109:67;9173:2;9168:3;9109:67;:::i;:::-;9102:74;;9185:93;9274:3;9185:93;:::i;:::-;9303:2;9298:3;9294:12;9287:19;;8946:366;;;:::o;9318:::-;9460:3;9481:67;9545:2;9540:3;9481:67;:::i;:::-;9474:74;;9557:93;9646:3;9557:93;:::i;:::-;9675:2;9670:3;9666:12;9659:19;;9318:366;;;:::o;9690:::-;9832:3;9853:67;9917:2;9912:3;9853:67;:::i;:::-;9846:74;;9929:93;10018:3;9929:93;:::i;:::-;10047:2;10042:3;10038:12;10031:19;;9690:366;;;:::o;10062:398::-;10221:3;10242:83;10323:1;10318:3;10242:83;:::i;:::-;10235:90;;10334:93;10423:3;10334:93;:::i;:::-;10452:1;10447:3;10443:11;10436:18;;10062:398;;;:::o;10466:366::-;10608:3;10629:67;10693:2;10688:3;10629:67;:::i;:::-;10622:74;;10705:93;10794:3;10705:93;:::i;:::-;10823:2;10818:3;10814:12;10807:19;;10466:366;;;:::o;10838:::-;10980:3;11001:67;11065:2;11060:3;11001:67;:::i;:::-;10994:74;;11077:93;11166:3;11077:93;:::i;:::-;11195:2;11190:3;11186:12;11179:19;;10838:366;;;:::o;11210:118::-;11297:24;11315:5;11297:24;:::i;:::-;11292:3;11285:37;11210:118;;:::o;11334:112::-;11417:22;11433:5;11417:22;:::i;:::-;11412:3;11405:35;11334:112;;:::o;11452:271::-;11582:3;11604:93;11693:3;11684:6;11604:93;:::i;:::-;11597:100;;11714:3;11707:10;;11452:271;;;;:::o;11729:379::-;11913:3;11935:147;12078:3;11935:147;:::i;:::-;11928:154;;12099:3;12092:10;;11729:379;;;:::o;12114:222::-;12207:4;12245:2;12234:9;12230:18;12222:26;;12258:71;12326:1;12315:9;12311:17;12302:6;12258:71;:::i;:::-;12114:222;;;;:::o;12342:332::-;12463:4;12501:2;12490:9;12486:18;12478:26;;12514:71;12582:1;12571:9;12567:17;12558:6;12514:71;:::i;:::-;12595:72;12663:2;12652:9;12648:18;12639:6;12595:72;:::i;:::-;12342:332;;;;;:::o;12680:210::-;12767:4;12805:2;12794:9;12790:18;12782:26;;12818:65;12880:1;12869:9;12865:17;12856:6;12818:65;:::i;:::-;12680:210;;;;:::o;12896:407::-;13029:4;13067:2;13056:9;13052:18;13044:26;;13080:65;13142:1;13131:9;13127:17;13118:6;13080:65;:::i;:::-;13192:9;13186:4;13182:20;13177:2;13166:9;13162:18;13155:48;13220:76;13291:4;13282:6;13220:76;:::i;:::-;13212:84;;12896:407;;;;;:::o;13309:313::-;13422:4;13460:2;13449:9;13445:18;13437:26;;13509:9;13503:4;13499:20;13495:1;13484:9;13480:17;13473:47;13537:78;13610:4;13601:6;13537:78;:::i;:::-;13529:86;;13309:313;;;;:::o;13628:419::-;13794:4;13832:2;13821:9;13817:18;13809:26;;13881:9;13875:4;13871:20;13867:1;13856:9;13852:17;13845:47;13909:131;14035:4;13909:131;:::i;:::-;13901:139;;13628:419;;;:::o;14053:::-;14219:4;14257:2;14246:9;14242:18;14234:26;;14306:9;14300:4;14296:20;14292:1;14281:9;14277:17;14270:47;14334:131;14460:4;14334:131;:::i;:::-;14326:139;;14053:419;;;:::o;14478:::-;14644:4;14682:2;14671:9;14667:18;14659:26;;14731:9;14725:4;14721:20;14717:1;14706:9;14702:17;14695:47;14759:131;14885:4;14759:131;:::i;:::-;14751:139;;14478:419;;;:::o;14903:::-;15069:4;15107:2;15096:9;15092:18;15084:26;;15156:9;15150:4;15146:20;15142:1;15131:9;15127:17;15120:47;15184:131;15310:4;15184:131;:::i;:::-;15176:139;;14903:419;;;:::o;15328:::-;15494:4;15532:2;15521:9;15517:18;15509:26;;15581:9;15575:4;15571:20;15567:1;15556:9;15552:17;15545:47;15609:131;15735:4;15609:131;:::i;:::-;15601:139;;15328:419;;;:::o;15753:::-;15919:4;15957:2;15946:9;15942:18;15934:26;;16006:9;16000:4;15996:20;15992:1;15981:9;15977:17;15970:47;16034:131;16160:4;16034:131;:::i;:::-;16026:139;;15753:419;;;:::o;16178:::-;16344:4;16382:2;16371:9;16367:18;16359:26;;16431:9;16425:4;16421:20;16417:1;16406:9;16402:17;16395:47;16459:131;16585:4;16459:131;:::i;:::-;16451:139;;16178:419;;;:::o;16603:::-;16769:4;16807:2;16796:9;16792:18;16784:26;;16856:9;16850:4;16846:20;16842:1;16831:9;16827:17;16820:47;16884:131;17010:4;16884:131;:::i;:::-;16876:139;;16603:419;;;:::o;17028:222::-;17121:4;17159:2;17148:9;17144:18;17136:26;;17172:71;17240:1;17229:9;17225:17;17216:6;17172:71;:::i;:::-;17028:222;;;;:::o;17256:214::-;17345:4;17383:2;17372:9;17368:18;17360:26;;17396:67;17460:1;17449:9;17445:17;17436:6;17396:67;:::i;:::-;17256:214;;;;:::o;17476:129::-;17510:6;17537:20;;:::i;:::-;17527:30;;17566:33;17594:4;17586:6;17566:33;:::i;:::-;17476:129;;;:::o;17611:75::-;17644:6;17677:2;17671:9;17661:19;;17611:75;:::o;17692:311::-;17769:4;17859:18;17851:6;17848:30;17845:56;;;17881:18;;:::i;:::-;17845:56;17931:4;17923:6;17919:17;17911:25;;17991:4;17985;17981:15;17973:23;;17692:311;;;:::o;18009:307::-;18070:4;18160:18;18152:6;18149:30;18146:56;;;18182:18;;:::i;:::-;18146:56;18220:29;18242:6;18220:29;:::i;:::-;18212:37;;18304:4;18298;18294:15;18286:23;;18009:307;;;:::o;18322:98::-;18373:6;18407:5;18401:12;18391:22;;18322:98;;;:::o;18426:99::-;18478:6;18512:5;18506:12;18496:22;;18426:99;;;:::o;18531:168::-;18614:11;18648:6;18643:3;18636:19;18688:4;18683:3;18679:14;18664:29;;18531:168;;;;:::o;18705:147::-;18806:11;18843:3;18828:18;;18705:147;;;;:::o;18858:169::-;18942:11;18976:6;18971:3;18964:19;19016:4;19011:3;19007:14;18992:29;;18858:169;;;;:::o;19033:305::-;19073:3;19092:20;19110:1;19092:20;:::i;:::-;19087:25;;19126:20;19144:1;19126:20;:::i;:::-;19121:25;;19280:1;19212:66;19208:74;19205:1;19202:81;19199:107;;;19286:18;;:::i;:::-;19199:107;19330:1;19327;19323:9;19316:16;;19033:305;;;;:::o;19344:348::-;19384:7;19407:20;19425:1;19407:20;:::i;:::-;19402:25;;19441:20;19459:1;19441:20;:::i;:::-;19436:25;;19629:1;19561:66;19557:74;19554:1;19551:81;19546:1;19539:9;19532:17;19528:105;19525:131;;;19636:18;;:::i;:::-;19525:131;19684:1;19681;19677:9;19666:20;;19344:348;;;;:::o;19698:191::-;19738:4;19758:20;19776:1;19758:20;:::i;:::-;19753:25;;19792:20;19810:1;19792:20;:::i;:::-;19787:25;;19831:1;19828;19825:8;19822:34;;;19836:18;;:::i;:::-;19822:34;19881:1;19878;19874:9;19866:17;;19698:191;;;;:::o;19895:96::-;19932:7;19961:24;19979:5;19961:24;:::i;:::-;19950:35;;19895:96;;;:::o;19997:90::-;20031:7;20074:5;20067:13;20060:21;20049:32;;19997:90;;;:::o;20093:126::-;20130:7;20170:42;20163:5;20159:54;20148:65;;20093:126;;;:::o;20225:77::-;20262:7;20291:5;20280:16;;20225:77;;;:::o;20308:86::-;20343:7;20383:4;20376:5;20372:16;20361:27;;20308:86;;;:::o;20400:154::-;20484:6;20479:3;20474;20461:30;20546:1;20537:6;20532:3;20528:16;20521:27;20400:154;;;:::o;20560:307::-;20628:1;20638:113;20652:6;20649:1;20646:13;20638:113;;;20737:1;20732:3;20728:11;20722:18;20718:1;20713:3;20709:11;20702:39;20674:2;20671:1;20667:10;20662:15;;20638:113;;;20769:6;20766:1;20763:13;20760:101;;;20849:1;20840:6;20835:3;20831:16;20824:27;20760:101;20609:258;20560:307;;;:::o;20873:320::-;20917:6;20954:1;20948:4;20944:12;20934:22;;21001:1;20995:4;20991:12;21022:18;21012:81;;21078:4;21070:6;21066:17;21056:27;;21012:81;21140:2;21132:6;21129:14;21109:18;21106:38;21103:84;;;21159:18;;:::i;:::-;21103:84;20924:269;20873:320;;;:::o;21199:281::-;21282:27;21304:4;21282:27;:::i;:::-;21274:6;21270:40;21412:6;21400:10;21397:22;21376:18;21364:10;21361:34;21358:62;21355:88;;;21423:18;;:::i;:::-;21355:88;21463:10;21459:2;21452:22;21242:238;21199:281;;:::o;21486:233::-;21525:3;21548:24;21566:5;21548:24;:::i;:::-;21539:33;;21594:66;21587:5;21584:77;21581:103;;;21664:18;;:::i;:::-;21581:103;21711:1;21704:5;21700:13;21693:20;;21486:233;;;:::o;21725:180::-;21773:77;21770:1;21763:88;21870:4;21867:1;21860:15;21894:4;21891:1;21884:15;21911:180;21959:77;21956:1;21949:88;22056:4;22053:1;22046:15;22080:4;22077:1;22070:15;22097:180;22145:77;22142:1;22135:88;22242:4;22239:1;22232:15;22266:4;22263:1;22256:15;22283:180;22331:77;22328:1;22321:88;22428:4;22425:1;22418:15;22452:4;22449:1;22442:15;22469:180;22517:77;22514:1;22507:88;22614:4;22611:1;22604:15;22638:4;22635:1;22628:15;22655:117;22764:1;22761;22754:12;22778:117;22887:1;22884;22877:12;22901:117;23010:1;23007;23000:12;23024:117;23133:1;23130;23123:12;23147:117;23256:1;23253;23246:12;23270:102;23311:6;23362:2;23358:7;23353:2;23346:5;23342:14;23338:28;23328:38;;23270:102;;;:::o;23378:222::-;23518:34;23514:1;23506:6;23502:14;23495:58;23587:5;23582:2;23574:6;23570:15;23563:30;23378:222;:::o;23606:221::-;23746:34;23742:1;23734:6;23730:14;23723:58;23815:4;23810:2;23802:6;23798:15;23791:29;23606:221;:::o;23833:225::-;23973:34;23969:1;23961:6;23957:14;23950:58;24042:8;24037:2;24029:6;24025:15;24018:33;23833:225;:::o;24064:222::-;24204:34;24200:1;24192:6;24188:14;24181:58;24273:5;24268:2;24260:6;24256:15;24249:30;24064:222;:::o;24292:227::-;24432:34;24428:1;24420:6;24416:14;24409:58;24501:10;24496:2;24488:6;24484:15;24477:35;24292:227;:::o;24525:224::-;24665:34;24661:1;24653:6;24649:14;24642:58;24734:7;24729:2;24721:6;24717:15;24710:32;24525:224;:::o;24755:114::-;;:::o;24875:223::-;25015:34;25011:1;25003:6;24999:14;24992:58;25084:6;25079:2;25071:6;25067:15;25060:31;24875:223;:::o;25104:224::-;25244:34;25240:1;25232:6;25228:14;25221:58;25313:7;25308:2;25300:6;25296:15;25289:32;25104:224;:::o;25334:122::-;25407:24;25425:5;25407:24;:::i;:::-;25400:5;25397:35;25387:63;;25446:1;25443;25436:12;25387:63;25334:122;:::o;25462:116::-;25532:21;25547:5;25532:21;:::i;:::-;25525:5;25522:32;25512:60;;25568:1;25565;25558:12;25512:60;25462:116;:::o;25584:122::-;25657:24;25675:5;25657:24;:::i;:::-;25650:5;25647:35;25637:63;;25696:1;25693;25686:12;25637:63;25584:122;:::o

Swarm Source

ipfs://1a23c8cfec893c41d5868f17931564d755addc536a3cde347de9afd185c661e8
Loading