Contract 0x3Ecb96039340630c8B82E5A7732bc88b2aeadE82 1

Token Contract 
 
 
Txn Hash
Method
Block
From
To
Value
0x1b47ce1e8f9bf53fd22a50fd30c047a25035ac33b284b644a62a49712cf689bdApprove160353232022-11-23 21:19:358 days 6 hrs ago0x88f859db067c45b114897db6920f3e4a61a5ca66 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00062056 13.14944312
0x62cb13b597f512f160416d82d3221e3aac345fc11c6dbbd0f7c06c99fc134daaApprove160054752022-11-19 17:12:4712 days 11 hrs ago0xaada0f64aa9e3fa0461ef5efacd1d879d5e66848 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00058295 12.3524711
0xf94bceb521fa2763ea979839e6fee79b0c879bf6ee32a5905963ea21b7d3cc02Approve159249722022-11-08 11:19:5923 days 16 hrs ago0xf1ddee8315e66660d9cff3beaea349397190ff62 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00065814 13.94588052
0xd121811af1ea2a33d92b23b2cc341b26bc20263f2e4b9e285fc99e3a66dc0d95Approve159185212022-11-07 13:43:3524 days 14 hrs ago0xf6fba9b30a0e90eb666ce59e8900d2a47d17ff99 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00197452 41.83938221
0xf74d6c9f4a3a197cc7cbc4cdc34f2e6ccfd01e789ac57544e5d314d78c048b25Approve157611502022-10-16 14:03:3546 days 14 hrs ago0x6ffbca4259dfcec4b72bed5008704468208e7635 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00062378 13.2176788
0x29b5ec03f612c135f7eeb8c94febc28eed5ccc454d3a7b819988d283b8ddf26fApprove157409662022-10-13 18:25:1149 days 9 hrs ago0xd1a7ed463bbee05a6bfb6e2e8912677214a30d19 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00089876 19.04440104
0x021bf76a510567aec09698883b4db3b6d84564c50cac068efbe63f557b7e98e2Approve157233342022-10-11 7:19:5951 days 20 hrs agoENS Name *not🤓.eth IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00120254 25.48147185
0xeaeb6f17ee2a1f0a70b141d128bffff206cf52871f3aab285685ca48613c6efbApprove157233202022-10-11 7:17:1151 days 21 hrs agoENS Name *not🤓.eth IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00122443 25.94530356
0xd81c68b4a824e56a3cb83329123ddabe285cbf0e4004dce56f19f4eea57dc0f1Transfer155976642022-09-23 17:53:5969 days 10 hrs ago0x2fb8bd9d8d50acc377e2629d124c7dcd0388ab24 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00092587 19.40503696
0xd735aec05b00e0fb28102f73cf1d357ac7da1c15403e6488cb82a63f6400c72fApprove155853032022-09-22 0:26:3571 days 3 hrs ago0x65a8f07bd9a8598e1b5b6c0a88f4779dbc077675 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00046307 9.81242504
0xdde5a715dac1f14f1bb8a9306d9f57bb4ff94c45fe8d24ad491e206d1d28b50eApprove155195582022-09-12 7:03:4380 days 21 hrs agoENS Name madirax.eth IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00017894 7.18408523
0x572249d3bbc71188f416479eff172cf0143ba63d0dfbbab47f255296e6a2615bApprove155149742022-09-11 13:06:5181 days 15 hrs ago0xb93185651ce2340c2a962efc52358ac61282563d IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00056993 12.07677537
0x447423516f648cf8b0b924dfaaadfce15a32bfb83574fc39c29470e49c8133f6Transfer153790352022-08-20 17:53:34103 days 10 hrs ago0x33b8dbfcd046cef86806a83007a5b2f810ea4473 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00076842 25.10110218
0xcf868e5da028f5f49f5bea9f0137d414ed647eb00f64d90dc569020e9985f013Approve153648082022-08-18 11:43:47105 days 16 hrs agoENS Name misteranderson.eth IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00025242 5.34874618
0x1b76aaf0cd4f0593d715fd1d3efd01a72d44cd0fe3a710c8b3192bda027a2660Approve153164782022-08-10 20:30:38113 days 7 hrs ago0x8abc16e919c61d5863b34f920dfb4dc4a97bf036 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00126326 26.76812559
0x733f9ea817043709c7ef4c324a486a27354ffb89403dd71e85f2e9a29cc27e2aApprove152586462022-08-01 19:48:26122 days 8 hrs ago0x2e667c1f6c6beb1fde7d45185927497dd7bee181 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00056366 11.94392134
0xafa92b3c7468979de86d0af20dc562f33c2fe5f4b00fd38029c793fddf2a656fTransfer152575472022-08-01 15:42:59122 days 12 hrs ago0xa4daf8fed578ecbf4b0a507a8ac9c9deb16c5e73 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00079884 16.74280192
0xe6d91343a481b89ddb88a413499c9622bca68f4db3fc2fc80e4be4566f4964b3Approve151086942022-07-09 13:39:55145 days 14 hrs ago0x18d8032f7c11663068d36ca79954b9e28d653ca3 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.000419 8.87846513
0x6f77647c6afde03176e6c8a6eaf8591475bb55452d0d23d9991c460e587b98f8Approve151083532022-07-09 12:30:54145 days 15 hrs ago0xbaa433d9b1787579b16aba880773ebb090b96857 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00041025 8.69313593
0xb868a0ad4f9df66f6cb25f7df5fa926039ccf2ca8c0d599f70b21f8f4e49630cApprove150871062022-07-06 5:39:15148 days 22 hrs ago0x8465e1ad22e9b4c580471d9acf51356b70b465fd IN  BRING.FINANCE: BRNG tOKEN0 Ether0.0007886 16.71015359
0x2f18b5edaa4bdb582e7058f23216226ca898a8a4683e29a42ed1965dbab118d3Approve150383162022-06-28 6:17:37156 days 22 hrs ago0xa31978a297a8e78e7c8aef86eec055786d65804d IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00108653 23.02316336
0x774cb63c608ff575c6075f1f7bb9800c9391bab9f34e38ab7d8783d1d82cd2e9Approve149320942022-06-09 10:23:48175 days 17 hrs ago0x28a3c2da2bcc5c0a274627a391a5cb64d946c2e3 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00196065 41.5455237
0x6a9aabe880358f429c1c465c61ce81ae39e70bb19b6a3983f278a80018a9cdd8Approve148896742022-06-02 7:25:56182 days 20 hrs ago0x90b956d2a705f8bf79a70def26ca1eb8863fc4d0 IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00280682 59.47545157
0xb9ae91da14742f7f2e822a9238ca980d4fb32ecf35caee6bf05100232ab4dad7Approve148783592022-05-31 11:11:43184 days 17 hrs ago0xc7d23fe48f3dae21b5b91568edff2a103b1e2e6a IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00116047 24.59001923
0x5b9fd495c7bb2768a748121959d0a630b94d625b6f4779af43171c5bb6a0a4b4Approve148563512022-05-27 21:04:06188 days 7 hrs ago0xca5863f3ab71a39b0d1b1324042ec3150f249e1a IN  BRING.FINANCE: BRNG tOKEN0 Ether0.00213444 45.22796471
[ Download CSV Export 

OVERVIEW

bRing is a decentralized cross-chain platform, enabling the multiple tokens’ farming via staking of a single coin.

View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BRingToken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-01
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0;


library SafeMath {
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            
            
            
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

library Address {
    
    function isContract(address account) internal view returns (bool) {
        
        
        

        uint256 size;
        
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                

                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    
    function name() public view virtual returns (string memory) {
        return _name;
    }

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

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

    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    
    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");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

    
    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");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

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

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

    
    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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

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

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

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

contract BRingToken is ERC20 {

  using SafeMath for uint256;

  address constant public INITIAL_SUPPLY_ADDRESS = address(0xFd81dC58626a178CD3b724dc71ec17BaDC868B20); 

  constructor() ERC20("bRing Token", "BRNG") {
    uint256 initialSupply = 10000000;

    _mint(INITIAL_SUPPLY_ADDRESS, initialSupply.mul(10 ** uint256(decimals())));
  }

  function batchTransfer(address[] memory addresses, uint256[] memory amounts) public {
    for (uint256 i = 0; i < addresses.length; i++) {
      transfer(addresses[i], amounts[i]);
    }
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchTransfer","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":[{"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":[],"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600b81526020017f6252696e6720546f6b656e0000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42524e4700000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620002ab565b508060049080519060200190620000af929190620002ab565b50505060006298968090506200011973fd81dc58626a178cd3b724dc71ec17badc868b206200010d620000e76200012060201b60201c565b60ff16600a620000f891906200049b565b846200012960201b620008801790919060201c565b6200014160201b60201c565b506200070d565b60006012905090565b60008183620001399190620005d8565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ab9062000393565b60405180910390fd5b620001c860008383620002a660201b60201c565b8060026000828254620001dc9190620003e3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002339190620003e3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200029a9190620003b5565b60405180910390a35050565b505050565b828054620002b99062000643565b90600052602060002090601f016020900481019282620002dd576000855562000329565b82601f10620002f857805160ff191683800117855562000329565b8280016001018555821562000329579182015b82811115620003285782518255916020019190600101906200030b565b5b5090506200033891906200033c565b5090565b5b80821115620003575760008160009055506001016200033d565b5090565b60006200036a601f83620003d2565b91506200037782620006e4565b602082019050919050565b6200038d8162000639565b82525050565b60006020820190508181036000830152620003ae816200035b565b9050919050565b6000602082019050620003cc600083018462000382565b92915050565b600082825260208201905092915050565b6000620003f08262000639565b9150620003fd8362000639565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000435576200043462000679565b5b828201905092915050565b6000808291508390505b600185111562000492578086048111156200046a576200046962000679565b5b60018516156200047a5780820291505b80810290506200048a85620006d7565b94506200044a565b94509492505050565b6000620004a88262000639565b9150620004b58362000639565b9250620004e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004ec565b905092915050565b600082620004fe5760019050620005d1565b816200050e5760009050620005d1565b8160018114620005275760028114620005325762000568565b6001915050620005d1565b60ff84111562000547576200054662000679565b5b8360020a91508482111562000561576200056062000679565b5b50620005d1565b5060208310610133831016604e8410600b8410161715620005a25782820a9050838111156200059c576200059b62000679565b5b620005d1565b620005b1848484600162000440565b92509050818404811115620005cb57620005ca62000679565b5b81810290505b9392505050565b6000620005e58262000639565b9150620005f28362000639565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200062e576200062d62000679565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200065c57607f821691505b60208210811415620006735762000672620006a8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611853806200071d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610228578063a457c2d714610246578063a9059cbb14610276578063dd62ed3e146102a6576100cf565b806370a08231146101be57806379eca966146101ee57806388d695b21461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102d6565b6040516100e9919061113f565b60405180910390f35b61010c60048036038101906101079190610ef7565b610368565b6040516101199190611124565b60405180910390f35b61012a610386565b6040516101379190611241565b60405180910390f35b61015a60048036038101906101559190610ea8565b610390565b6040516101679190611124565b60405180910390f35b610178610491565b604051610185919061125c565b60405180910390f35b6101a860048036038101906101a39190610ef7565b61049a565b6040516101b59190611124565b60405180910390f35b6101d860048036038101906101d39190610e43565b610546565b6040516101e59190611241565b60405180910390f35b6101f661058e565b6040516102039190611109565b60405180910390f35b61022660048036038101906102219190610f33565b6105a6565b005b610230610655565b60405161023d919061113f565b60405180910390f35b610260600480360381019061025b9190610ef7565b6106e7565b60405161026d9190611124565b60405180910390f35b610290600480360381019061028b9190610ef7565b6107db565b60405161029d9190611124565b60405180910390f35b6102c060048036038101906102bb9190610e6c565b6107f9565b6040516102cd9190611241565b60405180910390f35b6060600380546102e59061147c565b80601f01602080910402602001604051908101604052809291908181526020018280546103119061147c565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b600061037c610375610896565b848461089e565b6001905092915050565b6000600254905090565b600061039d848484610a69565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103e8610896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045f906111c1565b60405180910390fd5b61048585610474610896565b858461048091906113c0565b61089e565b60019150509392505050565b60006012905090565b600061053c6104a7610896565b8484600160006104b5610896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105379190611310565b61089e565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b73fd81dc58626a178cd3b724dc71ec17badc868b2081565b60005b82518110156106505761063c8382815181106105ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015183838151811061062f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516107db565b508080610648906114df565b9150506105a9565b505050565b6060600480546106649061147c565b80601f01602080910402602001604051908101604052809291908181526020018280546106909061147c565b80156106dd5780601f106106b2576101008083540402835291602001916106dd565b820191906000526020600020905b8154815290600101906020018083116106c057829003601f168201915b5050505050905090565b600080600160006106f6610896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90611221565b60405180910390fd5b6107d06107be610896565b8585846107cb91906113c0565b61089e565b600191505092915050565b60006107ef6107e8610896565b8484610a69565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000818361088e9190611366565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090590611201565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561097e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097590611181565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a5c9190611241565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad0906111e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090611161565b60405180910390fd5b610b54838383610ce8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd1906111a1565b60405180910390fd5b8181610be691906113c0565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c769190611310565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cda9190611241565b60405180910390a350505050565b505050565b6000610d00610cfb8461129c565b611277565b90508083825260208201905082856020860282011115610d1f57600080fd5b60005b85811015610d4f5781610d358882610dc5565b845260208401935060208301925050600181019050610d22565b5050509392505050565b6000610d6c610d67846112c8565b611277565b90508083825260208201905082856020860282011115610d8b57600080fd5b60005b85811015610dbb5781610da18882610e2e565b845260208401935060208301925050600181019050610d8e565b5050509392505050565b600081359050610dd4816117ef565b92915050565b600082601f830112610deb57600080fd5b8135610dfb848260208601610ced565b91505092915050565b600082601f830112610e1557600080fd5b8135610e25848260208601610d59565b91505092915050565b600081359050610e3d81611806565b92915050565b600060208284031215610e5557600080fd5b6000610e6384828501610dc5565b91505092915050565b60008060408385031215610e7f57600080fd5b6000610e8d85828601610dc5565b9250506020610e9e85828601610dc5565b9150509250929050565b600080600060608486031215610ebd57600080fd5b6000610ecb86828701610dc5565b9350506020610edc86828701610dc5565b9250506040610eed86828701610e2e565b9150509250925092565b60008060408385031215610f0a57600080fd5b6000610f1885828601610dc5565b9250506020610f2985828601610e2e565b9150509250929050565b60008060408385031215610f4657600080fd5b600083013567ffffffffffffffff811115610f6057600080fd5b610f6c85828601610dda565b925050602083013567ffffffffffffffff811115610f8957600080fd5b610f9585828601610e04565b9150509250929050565b610fa8816113f4565b82525050565b610fb781611406565b82525050565b6000610fc8826112f4565b610fd281856112ff565b9350610fe2818560208601611449565b610feb816115b5565b840191505092915050565b60006110036023836112ff565b915061100e826115c6565b604082019050919050565b60006110266022836112ff565b915061103182611615565b604082019050919050565b60006110496026836112ff565b915061105482611664565b604082019050919050565b600061106c6028836112ff565b9150611077826116b3565b604082019050919050565b600061108f6025836112ff565b915061109a82611702565b604082019050919050565b60006110b26024836112ff565b91506110bd82611751565b604082019050919050565b60006110d56025836112ff565b91506110e0826117a0565b604082019050919050565b6110f481611432565b82525050565b6111038161143c565b82525050565b600060208201905061111e6000830184610f9f565b92915050565b60006020820190506111396000830184610fae565b92915050565b600060208201905081810360008301526111598184610fbd565b905092915050565b6000602082019050818103600083015261117a81610ff6565b9050919050565b6000602082019050818103600083015261119a81611019565b9050919050565b600060208201905081810360008301526111ba8161103c565b9050919050565b600060208201905081810360008301526111da8161105f565b9050919050565b600060208201905081810360008301526111fa81611082565b9050919050565b6000602082019050818103600083015261121a816110a5565b9050919050565b6000602082019050818103600083015261123a816110c8565b9050919050565b600060208201905061125660008301846110eb565b92915050565b600060208201905061127160008301846110fa565b92915050565b6000611281611292565b905061128d82826114ae565b919050565b6000604051905090565b600067ffffffffffffffff8211156112b7576112b6611586565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156112e3576112e2611586565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061131b82611432565b915061132683611432565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561135b5761135a611528565b5b828201905092915050565b600061137182611432565b915061137c83611432565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156113b5576113b4611528565b5b828202905092915050565b60006113cb82611432565b91506113d683611432565b9250828210156113e9576113e8611528565b5b828203905092915050565b60006113ff82611412565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561146757808201518184015260208101905061144c565b83811115611476576000848401525b50505050565b6000600282049050600182168061149457607f821691505b602082108114156114a8576114a7611557565b5b50919050565b6114b7826115b5565b810181811067ffffffffffffffff821117156114d6576114d5611586565b5b80604052505050565b60006114ea82611432565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561151d5761151c611528565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6117f8816113f4565b811461180357600080fd5b50565b61180f81611432565b811461181a57600080fd5b5056fea2646970667358221220f3a7c4e3334a28d9f1dbc38fb0f943c3f16b4a1385e0ccc6aad6c69d4655556464736f6c63430008040033

Deployed ByteCode Sourcemap

11507:554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7402:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7714:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8514:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7616:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8950:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7836:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11576:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11862:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7507:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9179:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7977:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8166:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7402:91;7447:13;7480:5;7473:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7402:91;:::o;8331:169::-;8414:4;8431:39;8440:12;:10;:12::i;:::-;8454:7;8463:6;8431:8;:39::i;:::-;8488:4;8481:11;;8331:169;;;;:::o;7714:108::-;7775:7;7802:12;;7795:19;;7714:108;:::o;8514:422::-;8620:4;8637:36;8647:6;8655:9;8666:6;8637:9;:36::i;:::-;8686:24;8713:11;:19;8725:6;8713:19;;;;;;;;;;;;;;;:33;8733:12;:10;:12::i;:::-;8713:33;;;;;;;;;;;;;;;;8686:60;;8785:6;8765:16;:26;;8757:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8847:57;8856:6;8864:12;:10;:12::i;:::-;8897:6;8878:16;:25;;;;:::i;:::-;8847:8;:57::i;:::-;8924:4;8917:11;;;8514:422;;;;;:::o;7616:84::-;7665:5;7690:2;7683:9;;7616:84;:::o;8950:215::-;9038:4;9055:80;9064:12;:10;:12::i;:::-;9078:7;9124:10;9087:11;:25;9099:12;:10;:12::i;:::-;9087:25;;;;;;;;;;;;;;;:34;9113:7;9087:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9055:8;:80::i;:::-;9153:4;9146:11;;8950:215;;;;:::o;7836:127::-;7910:7;7937:9;:18;7947:7;7937:18;;;;;;;;;;;;;;;;7930:25;;7836:127;;;:::o;11576:100::-;11633:42;11576:100;:::o;11862:194::-;11958:9;11953:98;11977:9;:16;11973:1;:20;11953:98;;;12009:34;12018:9;12028:1;12018:12;;;;;;;;;;;;;;;;;;;;;;12032:7;12040:1;12032:10;;;;;;;;;;;;;;;;;;;;;;12009:8;:34::i;:::-;;11995:3;;;;;:::i;:::-;;;;11953:98;;;;11862:194;;:::o;7507:95::-;7554:13;7587:7;7580:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7507:95;:::o;9179:377::-;9272:4;9289:24;9316:11;:25;9328:12;:10;:12::i;:::-;9316:25;;;;;;;;;;;;;;;:34;9342:7;9316:34;;;;;;;;;;;;;;;;9289:61;;9389:15;9369:16;:35;;9361:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9457:67;9466:12;:10;:12::i;:::-;9480:7;9508:15;9489:16;:34;;;;:::i;:::-;9457:8;:67::i;:::-;9544:4;9537:11;;;9179:377;;;;:::o;7977:175::-;8063:4;8080:42;8090:12;:10;:12::i;:::-;8104:9;8115:6;8080:9;:42::i;:::-;8140:4;8133:11;;7977:175;;;;:::o;8166:151::-;8255:7;8282:11;:18;8294:5;8282:18;;;;;;;;;;;;;;;:27;8301:7;8282:27;;;;;;;;;;;;;;;;8275:34;;8166:151;;;;:::o;1507:98::-;1565:7;1596:1;1592;:5;;;;:::i;:::-;1585:12;;1507:98;;;;:::o;6766:::-;6819:7;6846:10;6839:17;;6766:98;:::o;11048:346::-;11167:1;11150:19;;:5;:19;;;;11142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11248:1;11229:21;;:7;:21;;;;11221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11332:6;11302:11;:18;11314:5;11302:18;;;;;;;;;;;;;;;:27;11321:7;11302:27;;;;;;;;;;;;;;;:36;;;;11370:7;11354:32;;11363:5;11354:32;;;11379:6;11354:32;;;;;;:::i;:::-;;;;;;;;11048:346;;;:::o;9570:604::-;9694:1;9676:20;;:6;:20;;;;9668:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9778:1;9757:23;;:9;:23;;;;9749:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9833:47;9854:6;9862:9;9873:6;9833:20;:47::i;:::-;9893:21;9917:9;:17;9927:6;9917:17;;;;;;;;;;;;;;;;9893:41;;9970:6;9953:13;:23;;9945:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10066:6;10050:13;:22;;;;:::i;:::-;10030:9;:17;10040:6;10030:17;;;;;;;;;;;;;;;:42;;;;10107:6;10083:9;:20;10093:9;10083:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10148:9;10131:35;;10140:6;10131:35;;;10159:6;10131:35;;;;;;:::i;:::-;;;;;;;;9570:604;;;;:::o;11408:92::-;;;;:::o;24:655: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:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;702:655::-;798:5;823:81;839:64;896:6;839:64;:::i;:::-;823:81;:::i;:::-;814:90;;924:5;953:6;946:5;939:21;987:4;980:5;976:16;969:23;;1013:6;1063:3;1055:4;1047:6;1043:17;1038:3;1034:27;1031:36;1028:2;;;1092:1;1089;1082:12;1028:2;1128:1;1113:238;1138:6;1135:1;1132:13;1113:238;;;1206:3;1235:37;1268:3;1256:10;1235:37;:::i;:::-;1230:3;1223:50;1302:4;1297:3;1293:14;1286:21;;1336:4;1331:3;1327:14;1320:21;;1173:178;1160:1;1157;1153:9;1148:14;;1113:238;;;1117:14;804:553;;;;;;;:::o;1363:139::-;1409:5;1447:6;1434:20;1425:29;;1463:33;1490:5;1463:33;:::i;:::-;1415:87;;;;:::o;1525:303::-;1596:5;1645:3;1638:4;1630:6;1626:17;1622:27;1612:2;;1663:1;1660;1653:12;1612:2;1703:6;1690:20;1728:94;1818:3;1810:6;1803:4;1795:6;1791:17;1728:94;:::i;:::-;1719:103;;1602:226;;;;;:::o;1851:303::-;1922:5;1971:3;1964:4;1956:6;1952:17;1948:27;1938:2;;1989:1;1986;1979:12;1938:2;2029:6;2016:20;2054:94;2144:3;2136:6;2129:4;2121:6;2117:17;2054:94;:::i;:::-;2045:103;;1928:226;;;;;:::o;2160:139::-;2206:5;2244:6;2231:20;2222:29;;2260:33;2287:5;2260:33;:::i;:::-;2212:87;;;;:::o;2305:262::-;2364:6;2413:2;2401:9;2392:7;2388:23;2384:32;2381:2;;;2429:1;2426;2419:12;2381:2;2472:1;2497:53;2542:7;2533:6;2522:9;2518:22;2497:53;:::i;:::-;2487:63;;2443:117;2371:196;;;;:::o;2573:407::-;2641:6;2649;2698:2;2686:9;2677:7;2673:23;2669:32;2666:2;;;2714:1;2711;2704:12;2666:2;2757:1;2782:53;2827:7;2818:6;2807:9;2803:22;2782:53;:::i;:::-;2772:63;;2728:117;2884:2;2910:53;2955:7;2946:6;2935:9;2931:22;2910:53;:::i;:::-;2900:63;;2855:118;2656:324;;;;;:::o;2986:552::-;3063:6;3071;3079;3128:2;3116:9;3107:7;3103:23;3099:32;3096:2;;;3144:1;3141;3134:12;3096:2;3187:1;3212:53;3257:7;3248:6;3237:9;3233:22;3212:53;:::i;:::-;3202:63;;3158:117;3314:2;3340:53;3385:7;3376:6;3365:9;3361:22;3340:53;:::i;:::-;3330:63;;3285:118;3442:2;3468:53;3513:7;3504:6;3493:9;3489:22;3468:53;:::i;:::-;3458:63;;3413:118;3086:452;;;;;:::o;3544:407::-;3612:6;3620;3669:2;3657:9;3648:7;3644:23;3640:32;3637:2;;;3685:1;3682;3675:12;3637:2;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3855:2;3881:53;3926:7;3917:6;3906:9;3902:22;3881:53;:::i;:::-;3871:63;;3826:118;3627:324;;;;;:::o;3957:693::-;4075:6;4083;4132:2;4120:9;4111:7;4107:23;4103:32;4100:2;;;4148:1;4145;4138:12;4100:2;4219:1;4208:9;4204:17;4191:31;4249:18;4241:6;4238:30;4235:2;;;4281:1;4278;4271:12;4235:2;4309:78;4379:7;4370:6;4359:9;4355:22;4309:78;:::i;:::-;4299:88;;4162:235;4464:2;4453:9;4449:18;4436:32;4495:18;4487:6;4484:30;4481:2;;;4527:1;4524;4517:12;4481:2;4555:78;4625:7;4616:6;4605:9;4601:22;4555:78;:::i;:::-;4545:88;;4407:236;4090:560;;;;;:::o;4656:118::-;4743:24;4761:5;4743:24;:::i;:::-;4738:3;4731:37;4721:53;;:::o;4780:109::-;4861:21;4876:5;4861:21;:::i;:::-;4856:3;4849:34;4839:50;;:::o;4895:364::-;4983:3;5011:39;5044:5;5011:39;:::i;:::-;5066:71;5130:6;5125:3;5066:71;:::i;:::-;5059:78;;5146:52;5191:6;5186:3;5179:4;5172:5;5168:16;5146:52;:::i;:::-;5223:29;5245:6;5223:29;:::i;:::-;5218:3;5214:39;5207:46;;4987:272;;;;;:::o;5265:366::-;5407:3;5428:67;5492:2;5487:3;5428:67;:::i;:::-;5421:74;;5504:93;5593:3;5504:93;:::i;:::-;5622:2;5617:3;5613:12;5606:19;;5411:220;;;:::o;5637:366::-;5779:3;5800:67;5864:2;5859:3;5800:67;:::i;:::-;5793:74;;5876:93;5965:3;5876:93;:::i;:::-;5994:2;5989:3;5985:12;5978:19;;5783:220;;;:::o;6009:366::-;6151:3;6172:67;6236:2;6231:3;6172:67;:::i;:::-;6165:74;;6248:93;6337:3;6248:93;:::i;:::-;6366:2;6361:3;6357:12;6350:19;;6155:220;;;:::o;6381:366::-;6523:3;6544:67;6608:2;6603:3;6544:67;:::i;:::-;6537:74;;6620:93;6709:3;6620:93;:::i;:::-;6738:2;6733:3;6729:12;6722:19;;6527:220;;;:::o;6753:366::-;6895:3;6916:67;6980:2;6975:3;6916:67;:::i;:::-;6909:74;;6992:93;7081:3;6992:93;:::i;:::-;7110:2;7105:3;7101:12;7094:19;;6899:220;;;:::o;7125:366::-;7267:3;7288:67;7352:2;7347:3;7288:67;:::i;:::-;7281:74;;7364:93;7453:3;7364:93;:::i;:::-;7482:2;7477:3;7473:12;7466:19;;7271:220;;;:::o;7497:366::-;7639:3;7660:67;7724:2;7719:3;7660:67;:::i;:::-;7653:74;;7736:93;7825:3;7736:93;:::i;:::-;7854:2;7849:3;7845:12;7838:19;;7643:220;;;:::o;7869:118::-;7956:24;7974:5;7956:24;:::i;:::-;7951:3;7944:37;7934:53;;:::o;7993:112::-;8076:22;8092:5;8076:22;:::i;:::-;8071:3;8064:35;8054:51;;:::o;8111:222::-;8204:4;8242:2;8231:9;8227:18;8219:26;;8255:71;8323:1;8312:9;8308:17;8299:6;8255:71;:::i;:::-;8209:124;;;;:::o;8339:210::-;8426:4;8464:2;8453:9;8449:18;8441:26;;8477:65;8539:1;8528:9;8524:17;8515:6;8477:65;:::i;:::-;8431:118;;;;:::o;8555:313::-;8668:4;8706:2;8695:9;8691:18;8683:26;;8755:9;8749:4;8745:20;8741:1;8730:9;8726:17;8719:47;8783:78;8856:4;8847:6;8783:78;:::i;:::-;8775:86;;8673:195;;;;:::o;8874:419::-;9040:4;9078:2;9067:9;9063:18;9055:26;;9127:9;9121:4;9117:20;9113:1;9102:9;9098:17;9091:47;9155:131;9281:4;9155:131;:::i;:::-;9147:139;;9045:248;;;:::o;9299:419::-;9465:4;9503:2;9492:9;9488:18;9480:26;;9552:9;9546:4;9542:20;9538:1;9527:9;9523:17;9516:47;9580:131;9706:4;9580:131;:::i;:::-;9572:139;;9470:248;;;:::o;9724:419::-;9890:4;9928:2;9917:9;9913:18;9905:26;;9977:9;9971:4;9967:20;9963:1;9952:9;9948:17;9941:47;10005:131;10131:4;10005:131;:::i;:::-;9997:139;;9895:248;;;:::o;10149:419::-;10315:4;10353:2;10342:9;10338:18;10330:26;;10402:9;10396:4;10392:20;10388:1;10377:9;10373:17;10366:47;10430:131;10556:4;10430:131;:::i;:::-;10422:139;;10320:248;;;:::o;10574:419::-;10740:4;10778:2;10767:9;10763:18;10755:26;;10827:9;10821:4;10817:20;10813:1;10802:9;10798:17;10791:47;10855:131;10981:4;10855:131;:::i;:::-;10847:139;;10745:248;;;:::o;10999:419::-;11165:4;11203:2;11192:9;11188:18;11180:26;;11252:9;11246:4;11242:20;11238:1;11227:9;11223:17;11216:47;11280:131;11406:4;11280:131;:::i;:::-;11272:139;;11170:248;;;:::o;11424:419::-;11590:4;11628:2;11617:9;11613:18;11605:26;;11677:9;11671:4;11667:20;11663:1;11652:9;11648:17;11641:47;11705:131;11831:4;11705:131;:::i;:::-;11697:139;;11595:248;;;:::o;11849:222::-;11942:4;11980:2;11969:9;11965:18;11957:26;;11993:71;12061:1;12050:9;12046:17;12037:6;11993:71;:::i;:::-;11947:124;;;;:::o;12077:214::-;12166:4;12204:2;12193:9;12189:18;12181:26;;12217:67;12281:1;12270:9;12266:17;12257:6;12217:67;:::i;:::-;12171:120;;;;:::o;12297:129::-;12331:6;12358:20;;:::i;:::-;12348:30;;12387:33;12415:4;12407:6;12387:33;:::i;:::-;12338:88;;;:::o;12432:75::-;12465:6;12498:2;12492:9;12482:19;;12472:35;:::o;12513:311::-;12590:4;12680:18;12672:6;12669:30;12666:2;;;12702:18;;:::i;:::-;12666:2;12752:4;12744:6;12740:17;12732:25;;12812:4;12806;12802:15;12794:23;;12595:229;;;:::o;12830:311::-;12907:4;12997:18;12989:6;12986:30;12983:2;;;13019:18;;:::i;:::-;12983:2;13069:4;13061:6;13057:17;13049:25;;13129:4;13123;13119:15;13111:23;;12912:229;;;:::o;13147:99::-;13199:6;13233:5;13227:12;13217:22;;13206:40;;;:::o;13252:169::-;13336:11;13370:6;13365:3;13358:19;13410:4;13405:3;13401:14;13386:29;;13348:73;;;;:::o;13427:305::-;13467:3;13486:20;13504:1;13486:20;:::i;:::-;13481:25;;13520:20;13538:1;13520:20;:::i;:::-;13515:25;;13674:1;13606:66;13602:74;13599:1;13596:81;13593:2;;;13680:18;;:::i;:::-;13593:2;13724:1;13721;13717:9;13710:16;;13471:261;;;;:::o;13738:348::-;13778:7;13801:20;13819:1;13801:20;:::i;:::-;13796:25;;13835:20;13853:1;13835:20;:::i;:::-;13830:25;;14023:1;13955:66;13951:74;13948:1;13945:81;13940:1;13933:9;13926:17;13922:105;13919:2;;;14030:18;;:::i;:::-;13919:2;14078:1;14075;14071:9;14060:20;;13786:300;;;;:::o;14092:191::-;14132:4;14152:20;14170:1;14152:20;:::i;:::-;14147:25;;14186:20;14204:1;14186:20;:::i;:::-;14181:25;;14225:1;14222;14219:8;14216:2;;;14230:18;;:::i;:::-;14216:2;14275:1;14272;14268:9;14260:17;;14137:146;;;;:::o;14289:96::-;14326:7;14355:24;14373:5;14355:24;:::i;:::-;14344:35;;14334:51;;;:::o;14391:90::-;14425:7;14468:5;14461:13;14454:21;14443:32;;14433:48;;;:::o;14487:126::-;14524:7;14564:42;14557:5;14553:54;14542:65;;14532:81;;;:::o;14619:77::-;14656:7;14685:5;14674:16;;14664:32;;;:::o;14702:86::-;14737:7;14777:4;14770:5;14766:16;14755:27;;14745:43;;;:::o;14794:307::-;14862:1;14872:113;14886:6;14883:1;14880:13;14872:113;;;14971:1;14966:3;14962:11;14956:18;14952:1;14947:3;14943:11;14936:39;14908:2;14905:1;14901:10;14896:15;;14872:113;;;15003:6;15000:1;14997:13;14994:2;;;15083:1;15074:6;15069:3;15065:16;15058:27;14994:2;14843:258;;;;:::o;15107:320::-;15151:6;15188:1;15182:4;15178:12;15168:22;;15235:1;15229:4;15225:12;15256:18;15246:2;;15312:4;15304:6;15300:17;15290:27;;15246:2;15374;15366:6;15363:14;15343:18;15340:38;15337:2;;;15393:18;;:::i;:::-;15337:2;15158:269;;;;:::o;15433:281::-;15516:27;15538:4;15516:27;:::i;:::-;15508:6;15504:40;15646:6;15634:10;15631:22;15610:18;15598:10;15595:34;15592:62;15589:2;;;15657:18;;:::i;:::-;15589:2;15697:10;15693:2;15686:22;15476:238;;;:::o;15720:233::-;15759:3;15782:24;15800:5;15782:24;:::i;:::-;15773:33;;15828:66;15821:5;15818:77;15815:2;;;15898:18;;:::i;:::-;15815:2;15945:1;15938:5;15934:13;15927:20;;15763:190;;;:::o;15959:180::-;16007:77;16004:1;15997:88;16104:4;16101:1;16094:15;16128:4;16125:1;16118:15;16145:180;16193:77;16190:1;16183:88;16290:4;16287:1;16280:15;16314:4;16311:1;16304:15;16331:180;16379:77;16376:1;16369:88;16476:4;16473:1;16466:15;16500:4;16497:1;16490:15;16517:102;16558:6;16609:2;16605:7;16600:2;16593:5;16589:14;16585:28;16575:38;;16565:54;;;:::o;16625:222::-;16765:34;16761:1;16753:6;16749:14;16742:58;16834:5;16829:2;16821:6;16817:15;16810:30;16731:116;:::o;16853:221::-;16993:34;16989:1;16981:6;16977:14;16970:58;17062:4;17057:2;17049:6;17045:15;17038:29;16959:115;:::o;17080:225::-;17220:34;17216:1;17208:6;17204:14;17197:58;17289:8;17284:2;17276:6;17272:15;17265:33;17186:119;:::o;17311:227::-;17451:34;17447:1;17439:6;17435:14;17428:58;17520:10;17515:2;17507:6;17503:15;17496:35;17417:121;:::o;17544:224::-;17684:34;17680:1;17672:6;17668:14;17661:58;17753:7;17748:2;17740:6;17736:15;17729:32;17650:118;:::o;17774:223::-;17914:34;17910:1;17902:6;17898:14;17891:58;17983:6;17978:2;17970:6;17966:15;17959:31;17880:117;:::o;18003:224::-;18143:34;18139:1;18131:6;18127:14;18120:58;18212:7;18207:2;18199:6;18195:15;18188:32;18109:118;:::o;18233:122::-;18306:24;18324:5;18306:24;:::i;:::-;18299:5;18296:35;18286:2;;18345:1;18342;18335:12;18286:2;18276:79;:::o;18361:122::-;18434:24;18452:5;18434:24;:::i;:::-;18427:5;18424:35;18414:2;;18473:1;18470;18463:12;18414:2;18404:79;:::o

Swarm Source

ipfs://f3a7c4e3334a28d9f1dbc38fb0f943c3f16b4a1385e0ccc6aad6c69d46555564
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.