Contract 0x3b615496c70a3272dcd35ae028f6cd1fdfa89992 3

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xdd37bbecb077b5ab6cd6dddbab935330ebb93d082360feba696b555a43ae9a41Transfer118985992022-01-19 10:57:093 secs ago0x3b23f80177124d78338e531e0501b424c8e2505f IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0x32f549e703615ba403b1a8e4528a90dde1022929092f8a75c99442fd2ba0cd97Approve118985972022-01-19 10:57:039 secs ago0x4f5844f4fe677f7ef0bb0a773bffc90758feb36c IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0001172325 2.5
0xc917989809b3b9d2383fd4e43128ebcf011e393e67daae63dd249e498e3e9521Transfer118985312022-01-19 10:53:453 mins ago0x203ba4cdef0f6cc7cbbe109661fc7f716dec1310 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0x744fb3725553ecf4bb19f08a7b6b8dca0b5e8e221fc63c0003df65475e8056e3Transfer118985252022-01-19 10:53:273 mins ago0xa650aaa1d95e8fdb0e38fea91e3f71af707749e0 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000886352.5
0xb2c141ce87d526f0e9822507875157e899258959cc48363c77c9314be4a16826Transfer118985162022-01-19 10:53:004 mins ago0x2974dbf2fb1519661a7890a13aaefbe7e7ca36f0 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0xf18ca63827d0a5924a250563da9c0a9246c540c168cb288c3ea5749f2e3fb6eeTransfer118985022022-01-19 10:52:184 mins ago0x3da10ed4830ec511789269f2cdaa0ba3db36ad98 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.00007974452.25
0xd796c0be6998b5c5da8bcf6cc57a3ec843c0cf7ae4c2a0a8ed31ad456e8266a2Transfer118985022022-01-19 10:52:184 mins ago0x7d72cfb062e09939ee8e3df68d9e2c6a89467e87 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0x67e61eeabed6d973d0aef21ed24abc1ac437d38f6e6822c05df2d62c0781dfe2Transfer118985012022-01-19 10:52:154 mins ago0x46a7998510b7abf9f5cd82cf9c1c6c89cf0ac067 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0xaba6f6b5ff35556cc45e5386c1244e63f61d0e667eb2c892fd73a426410d8070Transfer118984982022-01-19 10:52:065 mins ago0x7de9a838c5bfdf07dd42ee4cb0c087c5821512f6 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0xda1cd603b69e0addb4b2cee1e8d1cef63242daa40303cb5d2ef8cfc055f93145Transfer118984962022-01-19 10:52:005 mins ago0xa62fe33eb7e0391bd33995fcce59d887b9c204c5 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0x4eddd43f51da8809c167f7894e66e7feef558624f24c5bece59a4d0790df051cApprove118984812022-01-19 10:51:155 mins ago0x95a05103c9e3adb82b4e0c9ebc70b59e17937301 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.00011795252.5
0x725287c0ca714ee7e477dbaa39e93461d8f62a657a2b02ae9fc92aeb03a0585dTransfer118984782022-01-19 10:51:066 mins ago0x3bde287dfea78b3178c6039df522c7202e76db28 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0x2c35c6ad7bf8a45e8c2111c610ece37215f42cf2af945822c21356f859845f6bTransfer118984782022-01-19 10:51:066 mins ago0x25deb99328e24101ec3c053cdd93dfb43ede6055 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0001005752.5
0x866b10e37e91cadc15507ca0f126d09abf16f4bef107d8c3c7f70c93eb6fee7aTransfer118984702022-01-19 10:50:426 mins ago0xaf200dde1b47ab926d68d8f9e47ed5710faa8945 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000886652.5
0x65d7a7bd16cf5f43395c0544f3673ab29699890007b0994108140a32a9f2a25fTransfer118984662022-01-19 10:50:306 mins ago0xb981e9aa2903eb2d21cee8d1c87b2372d102e007 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000886352.5
0x092743fea77f269c0a8c1ecc04a63af726a6528e234c5d5100a30b4cd7b84c0fTransfer118984502022-01-19 10:49:427 mins ago0x5ddcad18891c30d678d47be544238955616d0c3e IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.00007971752.25
0xcdd305ffae8feddbf5a8001aa48967376e3e46f669505c8cad6bee05c3b21d4cTransfer118984452022-01-19 10:49:277 mins ago0x6bfc2effb4a1c5264af04673046818e5899903e9 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0xc525cdef88458bdef189d8f614e7b4de98d1f97539938948b98c73948b3142aeTransfer118984372022-01-19 10:49:038 mins ago0xb6ca16fd3e774c1b1e2adc049140d6944e72affd IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.00007971752.25
0x8658b647662fe873d745c00e528fad22ee7de77ab56f515cd0aa70172122ae35Transfer118984252022-01-19 10:48:278 mins ago0x86315d724d06729f5c2d5c62f8cf69bc02c9297f IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0001433252.5
0x5f4015335bec3749a5dae0d97325325e5fc6381be922610ca258393693349f17Transfer118984232022-01-19 10:48:218 mins ago0x0990f7e128b99132aa09f9d5365b38538ee04e12 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.00007971752.25
0x3dd0786029ac40083e484f77a7cb04588a69d3c3990932676cf41475432a6ed7Transfer118984192022-01-19 10:48:099 mins ago0xa708dbecbb8e02921433101ed08c7e0b69c08628 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885452.5
0xf4d481118870158f52b3e7bf149d6f416a4550e8b9ed0d8fcc568a890e94088eTransfer118984172022-01-19 10:48:039 mins ago0xc305393eac21ebb7019f9882b546fe28cbb33e6c IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0001005752.5
0x9af4b42dd812f9e94b7f22c7520f27290e15182edb96b6048741b96ce7ceaeeeTransfer118984112022-01-19 10:47:459 mins ago0xbd39e97bbab8ee8397b37ed20905b0a1a2b420bd IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
0x8cfdafa73485d0f8c7b8a07fe2fe7a8b455b3d3c410ae4f71f76794c03b5a4ebTransfer118984032022-01-19 10:47:219 mins ago0x47e25567b611febc3042eea52441b3d548ed2e45 IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885452.5
0xb53bf1c719df51ee79003a27aaa112fba03286813d755ac6ca09d3f7729a0fe8Transfer118984022022-01-19 10:47:189 mins ago0x39e43b124c4d6860e39974f8ce36d6559b03829d IN  0x3b615496c70a3272dcd35ae028f6cd1fdfa899920 HT0.0000885752.5
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DK

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 hecoinfo.com on 2021-10-18
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
contract Operator is Context, Ownable {
    address private _operator;
    event OperatorTransferred(address indexed previousOperator, address indexed newOperator);
    constructor() {
        _operator = _msgSender();
        emit OperatorTransferred(address(0), _operator);
    }
    function operator() public view returns (address) {
        return _operator;
    }
    modifier onlyOperator() {
        require(_operator == msg.sender, 'operator: caller is not the operator');
        _;
    }
    function isOperator() public view returns (bool) {
        return _msgSender() == _operator;
    }
    function transferOperator(address newOperator_) public onlyOwner {
        _transferOperator(newOperator_);
    }
    function _transferOperator(address newOperator_) internal {
        require(newOperator_ != address(0), 'operator: zero address given for new operator');
        emit OperatorTransferred(address(0), newOperator_);
        _operator = newOperator_;
    }
}
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);
}
library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        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) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }
    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }
    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
    }
}
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);
            }
        }
    }
}
library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;
    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }
    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }
    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }
    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}
interface IBoard {
    function allocate(uint256 amount) external;
}

contract ERC20 is IERC20, Operator {
    using SafeMath for uint256;

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _markets;
    mapping(address => bool) public _whiteList;
    address public _board;

    function setBoard(address board) public onlyOwner{
        _board = board;
    }
    
    function setMarket(address market, bool flag) public onlyOwner{
        _markets[market] = flag;
    }
    
    function setWhiteList(address whiteList, bool flag) public onlyOwner{
        _whiteList[whiteList] = flag;
    }

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

    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 _decimals;
    }

    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(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        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);
        if(!_whiteList[sender] && _markets[recipient] && _board!=address(0)) {
            _balances[sender] = _balances[sender].sub(amount.mul(95).div(100), "ERC20: transfer amount exceeds balance");
            _burn(sender, amount.mul(5).div(100));
            uint pctAmount = amount.mul(5).div(100);
            _balances[_board] = _balances[_board].add(pctAmount);
            emit Transfer(sender, _board, pctAmount);
            try IBoard(_board).allocate(pctAmount) {} catch {}
            amount = amount.mul(90).div(100);
        }else{
            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        }
        _balances[recipient] = _balances[recipient].add(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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(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);
        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(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 _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

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

contract DK is ERC20 {
    using SafeERC20 for IERC20;
    using SafeMath for uint256;

    address public _foundation = 0x11eb617778C9169eb5E328c2Bc90AEe65751C18B;
    address public _tech = 0x9E529AEa988652b1FA8dA59860e3aF872d7C5aDa;
    address public _market = 0xf993AD5aD89C6F97dB49587676f64d2d910F935a;
    address public _lp = 0xD0Aed8B4070b720a59F6CB9f9c919569B1ed1b2C;
    
    uint256 public total = 21 * 1e8 * 1e18;
    uint256 public dayTime = 1 days;
    uint256 public DURATION = dayTime.mul(500);
    uint256 public startTime = 1632499200;    //2021-09-25 00:00
    uint256 public releaseTime = DURATION.add(startTime);
    uint256 public sold;

    mapping(address => uint256) public releaseRewards;
    mapping(address => uint256) public durations;

    event ReleasePaid(address indexed user, uint256 reward);

    function changeReleaseTime(uint time) external onlyOwner {
        releaseTime = time;
    }

    constructor() ERC20('DK', 'DK') {
        _mint(address(this), total.mul(1).div(100));
         _mint(_foundation, total.mul(4).div(1000));
         _mint(_tech, total.mul(2).div(1000));
         _mint(_market, total.mul(2).div(1000));
         _mint(_lp, total.mul(2).div(1000));
        _mint(owner(), total.mul(98).div(100));
    }

    function migrate(address[] calldata addrs, uint256[] calldata amounts) public onlyOwner{
        uint amount;
        address addr;
        for(uint i=0;i<addrs.length;i++){
            amount = amounts[i];
            addr = addrs[i];
            if (amount > 0) {
                sold = sold.add(amount);
                releaseRewards[addr] = releaseRewards[addr].add(amount);
                durations[addr] = DURATION;
            }
        }
    }

    function released(address account) public view returns (uint256, uint256) {
        uint releaseReward = releaseRewards[account];
        uint duration = durations[account];
        if(releaseReward==0 || duration==0) return (0, 0);
        uint nowTime = block.timestamp;
        (, uint time) = releaseTime.trySub(nowTime);
        if(duration < time) return (0, duration);
        return (releaseRewards[account].mul(duration.sub(time)).div(duration), time);
    }

    function getReleaseReward() public {
        (uint256 reward, uint256 time) = released(msg.sender);
        if(reward>0){
            releaseRewards[msg.sender] = releaseRewards[msg.sender].sub(reward);
            durations[msg.sender] = time;
            emit ReleasePaid(msg.sender, reward);
            IERC20(this).transfer(msg.sender, reward);
        }
    }
}

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":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"ReleasePaid","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":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_board","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_foundation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_market","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_markets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tech","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_whiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"time","type":"uint256"}],"name":"changeReleaseTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dayTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"durations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReleaseReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"releaseRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"board","type":"address"}],"name":"setBoard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"whiteList","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040527311eb617778c9169eb5e328c2bc90aee65751c18b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739e529aea988652b1fa8da59860e3af872d7c5ada600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f993ad5ad89c6f97db49587676f64d2d910f935a600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d0aed8b4070b720a59f6cb9f9c919569b1ed1b2c600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b06c9144c1c690d4cb4000000600f55620151806010556200018d6101f46010546200065160201b620019c21790919060201c565b60115563614df600601255620001b6601254601154620006d560201b62001a3d1790919060201c565b601355348015620001c657600080fd5b506040518060400160405280600281526020017f444b0000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f444b0000000000000000000000000000000000000000000000000000000000008152506000620002456200073860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002f36200073860201b60201c565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a38160059080519060200190620003c89291906200097c565b508060069080519060200190620003e19291906200097c565b506012600760006101000a81548160ff021916908360ff160217905550505062000448306200043c6064620004286001600f546200065160201b620019c21790919060201c565b6200074060201b62001a9b1790919060201c565b6200079d60201b60201c565b620004b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620004a76103e8620004936004600f546200065160201b620019c21790919060201c565b6200074060201b62001a9b1790919060201c565b6200079d60201b60201c565b6200051e600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620005126103e8620004fe6002600f546200065160201b620019c21790919060201c565b6200074060201b62001a9b1790919060201c565b6200079d60201b60201c565b62000589600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200057d6103e8620005696002600f546200065160201b620019c21790919060201c565b6200074060201b62001a9b1790919060201c565b6200079d60201b60201c565b620005f4600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620005e86103e8620005d46002600f546200065160201b620019c21790919060201c565b6200074060201b62001a9b1790919060201c565b6200079d60201b60201c565b6200064b620006086200094e60201b60201c565b6200063f60646200062b6062600f546200065160201b620019c21790919060201c565b6200074060201b62001a9b1790919060201c565b6200079d60201b60201c565b62000e1c565b600080831415620006665760009050620006cf565b6000828462000676919062000c24565b905082848262000687919062000bec565b14620006ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c19062000b1d565b60405180910390fd5b809150505b92915050565b6000808284620006e6919062000b8f565b9050838110156200072e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007259062000ad9565b60405180910390fd5b8091505092915050565b600033905090565b600080821162000787576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077e9062000afb565b60405180910390fd5b818362000795919062000bec565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008079062000b3f565b60405180910390fd5b62000824600083836200097760201b60201c565b6200084081600454620006d560201b62001a3d1790919060201c565b6004819055506200089f81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620006d560201b62001a3d1790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000942919062000b61565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b8280546200098a9062000c8f565b90600052602060002090601f016020900481019282620009ae5760008555620009fa565b82601f10620009c957805160ff1916838001178555620009fa565b82800160010185558215620009fa579182015b82811115620009f9578251825591602001919060010190620009dc565b5b50905062000a09919062000a0d565b5090565b5b8082111562000a2857600081600090555060010162000a0e565b5090565b600062000a3b601b8362000b7e565b915062000a488262000d52565b602082019050919050565b600062000a62601a8362000b7e565b915062000a6f8262000d7b565b602082019050919050565b600062000a8960218362000b7e565b915062000a968262000da4565b604082019050919050565b600062000ab0601f8362000b7e565b915062000abd8262000df3565b602082019050919050565b62000ad38162000c85565b82525050565b6000602082019050818103600083015262000af48162000a2c565b9050919050565b6000602082019050818103600083015262000b168162000a53565b9050919050565b6000602082019050818103600083015262000b388162000a7a565b9050919050565b6000602082019050818103600083015262000b5a8162000aa1565b9050919050565b600060208201905062000b78600083018462000ac8565b92915050565b600082825260208201905092915050565b600062000b9c8262000c85565b915062000ba98362000c85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000be15762000be062000cc5565b5b828201905092915050565b600062000bf98262000c85565b915062000c068362000c85565b92508262000c195762000c1862000cf4565b5b828204905092915050565b600062000c318262000c85565b915062000c3e8362000c85565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c7a5762000c7962000cc5565b5b828202905092915050565b6000819050919050565b6000600282049050600182168062000ca857607f821691505b6020821081141562000cbf5762000cbe62000d23565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6135b08062000e2c6000396000f3fe608060405234801561001057600080fd5b506004361061023c5760003560e01c806370a082311161013b578063a457c2d7116100b8578063b91d40011161007c578063b91d4001146106e6578063dd62ed3e14610704578063de01e15114610734578063dfe7856f14610750578063f2fde38b1461075a5761023c565b8063a457c2d71461061a578063a75b54c41461064a578063a9059cbb14610668578063aed4ade314610698578063af6bd8ce146106b65761023c565b80638d14e127116100ff5780638d14e127146105735780638da5cb5b1461058f57806395d89b41146105ad5780639852595c146105cb578063988cf801146105fc5761023c565b806370a08231146104df578063715018a61461050f57806378e97925146105195780637ec2464f1461053757806380c0976e146105555761023c565b806323b872dd116101c9578063395093511161018d57806339509351146104135780633f14a9cd146104435780634456eda214610473578063570ca73514610491578063610edec2146104af5761023c565b806323b872dd1461036f57806329605e771461039f5780632ddbd13a146103bb5780632e0f2ce1146103d9578063313ce567146103f55761023c565b8063095ea7b311610210578063095ea7b3146102cb5780630e0d04ee146102fb57806315bcf9b71461031757806318160ddd146103335780631be05289146103515761023c565b80625a3ff11461024157806302c7e7af1461025f57806305d60ffb1461027d57806306fdde03146102ad575b600080fd5b610249610776565b6040516102569190612c52565b60405180910390f35b61026761079c565b6040516102749190612e53565b60405180910390f35b61029760048036038101906102929190612846565b6107a2565b6040516102a49190612c96565b60405180910390f35b6102b56107c2565b6040516102c29190612cb1565b60405180910390f35b6102e560048036038101906102e09190612936565b610854565b6040516102f29190612c96565b60405180910390f35b61031560048036038101906103109190612846565b61086b565b005b610331600480360381019061032c91906128fa565b61092b565b005b61033b610a02565b6040516103489190612e53565b60405180910390f35b610359610a0c565b6040516103669190612e53565b60405180910390f35b610389600480360381019061038491906128ab565b610a12565b6040516103969190612c96565b60405180910390f35b6103b960048036038101906103b49190612846565b610add565b005b6103c3610b65565b6040516103d09190612e53565b60405180910390f35b6103f360048036038101906103ee9190612a10565b610b6b565b005b6103fd610bf1565b60405161040a9190612e97565b60405180910390f35b61042d60048036038101906104289190612936565b610c08565b60405161043a9190612c96565b60405180910390f35b61045d60048036038101906104589190612846565b610cad565b60405161046a9190612c96565b60405180910390f35b61047b610ccd565b6040516104889190612c96565b60405180910390f35b610499610d2c565b6040516104a69190612c52565b60405180910390f35b6104c960048036038101906104c49190612846565b610d56565b6040516104d69190612e53565b60405180910390f35b6104f960048036038101906104f49190612846565b610d6e565b6040516105069190612e53565b60405180910390f35b610517610db7565b005b610521610ef1565b60405161052e9190612e53565b60405180910390f35b61053f610ef7565b60405161054c9190612c52565b60405180910390f35b61055d610f1d565b60405161056a9190612e53565b60405180910390f35b61058d600480360381019061058891906128fa565b610f23565b005b610597610ffa565b6040516105a49190612c52565b60405180910390f35b6105b5611023565b6040516105c29190612cb1565b60405180910390f35b6105e560048036038101906105e09190612846565b6110b5565b6040516105f3929190612e6e565b60405180910390f35b61060461121e565b6040516106119190612c52565b60405180910390f35b610634600480360381019061062f9190612936565b611244565b6040516106419190612c96565b60405180910390f35b610652611303565b60405161065f9190612c52565b60405180910390f35b610682600480360381019061067d9190612936565b611329565b60405161068f9190612c96565b60405180910390f35b6106a0611340565b6040516106ad9190612c52565b60405180910390f35b6106d060048036038101906106cb9190612846565b611366565b6040516106dd9190612e53565b60405180910390f35b6106ee61137e565b6040516106fb9190612e53565b60405180910390f35b61071e6004803603810190610719919061286f565b611384565b60405161072b9190612e53565b60405180910390f35b61074e60048036038101906107499190612972565b61140b565b005b610758611646565b005b610774600480360381019061076f9190612846565b611819565b005b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b60096020528060005260406000206000915054906101000a900460ff1681565b6060600580546107d19061306b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fd9061306b565b801561084a5780601f1061081f5761010080835404028352916020019161084a565b820191906000526020600020905b81548152906001019060200180831161082d57829003601f168201915b5050505050905090565b6000610861338484611af3565b6001905092915050565b610873611cbe565b73ffffffffffffffffffffffffffffffffffffffff16610891610ffa565b73ffffffffffffffffffffffffffffffffffffffff16146108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de90612dd3565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610933611cbe565b73ffffffffffffffffffffffffffffffffffffffff16610951610ffa565b73ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612dd3565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600454905090565b60115481565b6000610a1f848484611cc6565b610ad28433610acd8560405180606001604052806028815260200161352e60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b29092919063ffffffff16565b611af3565b600190509392505050565b610ae5611cbe565b73ffffffffffffffffffffffffffffffffffffffff16610b03610ffa565b73ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612dd3565b60405180910390fd5b610b6281612410565b50565b600f5481565b610b73611cbe565b73ffffffffffffffffffffffffffffffffffffffff16610b91610ffa565b73ffffffffffffffffffffffffffffffffffffffff1614610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90612dd3565b60405180910390fd5b8060138190555050565b6000600760009054906101000a900460ff16905090565b6000610ca33384610c9e85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3d90919063ffffffff16565b611af3565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d10611cbe565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60156020528060005260406000206000915090505481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dbf611cbe565b73ffffffffffffffffffffffffffffffffffffffff16610ddd610ffa565b73ffffffffffffffffffffffffffffffffffffffff1614610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90612dd3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b610f2b611cbe565b73ffffffffffffffffffffffffffffffffffffffff16610f49610ffa565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612dd3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546110329061306b565b80601f016020809104026020016040519081016040528092919081815260200182805461105e9061306b565b80156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905090565b6000806000601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600082148061114f5750600081145b1561116257600080935093505050611219565b6000429050600061117e8260135461251f90919063ffffffff16565b91505080831015611199576000839550955050505050611219565b61120f836112016111b3848761255090919063ffffffff16565b601560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119c290919063ffffffff16565b611a9b90919063ffffffff16565b8195509550505050505b915091565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112f933846112f48560405180606001604052806025815260200161355660259139600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b29092919063ffffffff16565b611af3565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611336338484611cc6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60166020528060005260406000206000915090505481565b60135481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611413611cbe565b73ffffffffffffffffffffffffffffffffffffffff16611431610ffa565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90612dd3565b60405180910390fd5b60008060005b8686905081101561163d578484828181106114d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201359250868682818110611513577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115289190612846565b9150600083111561162a5761154883601454611a3d90919063ffffffff16565b6014819055506115a083601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3d90919063ffffffff16565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80806116359061309d565b91505061148d565b50505050505050565b600080611652336110b5565b915091506000821115611815576116b182601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255090919063ffffffff16565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f1ebfbb10f78e32a505e8dc71f220864b8dbd51e309be99a94670ff97207ff29d8360405161177e9190612e53565b60405180910390a23073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016117c1929190612c6d565b602060405180830381600087803b1580156117db57600080fd5b505af11580156117ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181391906129e7565b505b5050565b611821611cbe565b73ffffffffffffffffffffffffffffffffffffffff1661183f610ffa565b73ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90612dd3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc90612cf3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156119d55760009050611a37565b600082846119e39190612f55565b90508284826119f29190612f24565b14611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990612db3565b60405180910390fd5b809150505b92915050565b6000808284611a4c9190612ece565b905083811015611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890612d33565b60405180910390fd5b8091505092915050565b6000808211611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690612d73565b60405180910390fd5b8183611aeb9190612f24565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a90612e33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bca90612d13565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cb19190612e53565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d90612e13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90612cd3565b60405180910390fd5b611db18383836125a9565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e545750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611eaf5750600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561220357611f46611ede6064611ed0605f856119c290919063ffffffff16565b611a9b90919063ffffffff16565b60405180606001604052806026815260200161350860269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b29092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb983611fb46064611fa66005866119c290919063ffffffff16565b611a9b90919063ffffffff16565b6125ae565b6000611fe26064611fd46005856119c290919063ffffffff16565b611a9b90919063ffffffff16565b90506120588160026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3d90919063ffffffff16565b60026000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213c9190612e53565b60405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166390ca796b826040518263ffffffff1660e01b815260040161219f9190612e53565b600060405180830381600087803b1580156121b957600080fd5b505af19250505080156121ca575060015b6121d3576121d4565b5b6121fb60646121ed605a856119c290919063ffffffff16565b611a9b90919063ffffffff16565b9150506122b3565b61226f8160405180606001604052806026815260200161350860269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b29092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61230581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3d90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a59190612e53565b60405180910390a3505050565b60008383111582906123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f19190612cb1565b60405180910390fd5b5082846124079190612faf565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247790612d93565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080838311156125365760008091509150612549565b600183856125449190612faf565b915091505b9250929050565b600082821115612595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258c90612d53565b60405180910390fd5b81836125a19190612faf565b905092915050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561261e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261590612df3565b60405180910390fd5b61262a826000836125a9565b612696816040518060600160405280602281526020016134e660229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b29092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126ee8160045461255090919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127529190612e53565b60405180910390a35050565b60008135905061276d816134a0565b92915050565b60008083601f84011261278557600080fd5b8235905067ffffffffffffffff81111561279e57600080fd5b6020830191508360208202830111156127b657600080fd5b9250929050565b60008083601f8401126127cf57600080fd5b8235905067ffffffffffffffff8111156127e857600080fd5b60208301915083602082028301111561280057600080fd5b9250929050565b600081359050612816816134b7565b92915050565b60008151905061282b816134b7565b92915050565b600081359050612840816134ce565b92915050565b60006020828403121561285857600080fd5b60006128668482850161275e565b91505092915050565b6000806040838503121561288257600080fd5b60006128908582860161275e565b92505060206128a18582860161275e565b9150509250929050565b6000806000606084860312156128c057600080fd5b60006128ce8682870161275e565b93505060206128df8682870161275e565b92505060406128f086828701612831565b9150509250925092565b6000806040838503121561290d57600080fd5b600061291b8582860161275e565b925050602061292c85828601612807565b9150509250929050565b6000806040838503121561294957600080fd5b60006129578582860161275e565b925050602061296885828601612831565b9150509250929050565b6000806000806040858703121561298857600080fd5b600085013567ffffffffffffffff8111156129a257600080fd5b6129ae87828801612773565b9450945050602085013567ffffffffffffffff8111156129cd57600080fd5b6129d9878288016127bd565b925092505092959194509250565b6000602082840312156129f957600080fd5b6000612a078482850161281c565b91505092915050565b600060208284031215612a2257600080fd5b6000612a3084828501612831565b91505092915050565b612a4281612fe3565b82525050565b612a5181612ff5565b82525050565b6000612a6282612eb2565b612a6c8185612ebd565b9350612a7c818560208601613038565b612a8581613173565b840191505092915050565b6000612a9d602383612ebd565b9150612aa882613184565b604082019050919050565b6000612ac0602683612ebd565b9150612acb826131d3565b604082019050919050565b6000612ae3602283612ebd565b9150612aee82613222565b604082019050919050565b6000612b06601b83612ebd565b9150612b1182613271565b602082019050919050565b6000612b29601e83612ebd565b9150612b348261329a565b602082019050919050565b6000612b4c601a83612ebd565b9150612b57826132c3565b602082019050919050565b6000612b6f602d83612ebd565b9150612b7a826132ec565b604082019050919050565b6000612b92602183612ebd565b9150612b9d8261333b565b604082019050919050565b6000612bb5602083612ebd565b9150612bc08261338a565b602082019050919050565b6000612bd8602183612ebd565b9150612be3826133b3565b604082019050919050565b6000612bfb602583612ebd565b9150612c0682613402565b604082019050919050565b6000612c1e602483612ebd565b9150612c2982613451565b604082019050919050565b612c3d81613021565b82525050565b612c4c8161302b565b82525050565b6000602082019050612c676000830184612a39565b92915050565b6000604082019050612c826000830185612a39565b612c8f6020830184612c34565b9392505050565b6000602082019050612cab6000830184612a48565b92915050565b60006020820190508181036000830152612ccb8184612a57565b905092915050565b60006020820190508181036000830152612cec81612a90565b9050919050565b60006020820190508181036000830152612d0c81612ab3565b9050919050565b60006020820190508181036000830152612d2c81612ad6565b9050919050565b60006020820190508181036000830152612d4c81612af9565b9050919050565b60006020820190508181036000830152612d6c81612b1c565b9050919050565b60006020820190508181036000830152612d8c81612b3f565b9050919050565b60006020820190508181036000830152612dac81612b62565b9050919050565b60006020820190508181036000830152612dcc81612b85565b9050919050565b60006020820190508181036000830152612dec81612ba8565b9050919050565b60006020820190508181036000830152612e0c81612bcb565b9050919050565b60006020820190508181036000830152612e2c81612bee565b9050919050565b60006020820190508181036000830152612e4c81612c11565b9050919050565b6000602082019050612e686000830184612c34565b92915050565b6000604082019050612e836000830185612c34565b612e906020830184612c34565b9392505050565b6000602082019050612eac6000830184612c43565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612ed982613021565b9150612ee483613021565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f1957612f186130e6565b5b828201905092915050565b6000612f2f82613021565b9150612f3a83613021565b925082612f4a57612f49613115565b5b828204905092915050565b6000612f6082613021565b9150612f6b83613021565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fa457612fa36130e6565b5b828202905092915050565b6000612fba82613021565b9150612fc583613021565b925082821015612fd857612fd76130e6565b5b828203905092915050565b6000612fee82613001565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561305657808201518184015260208101905061303b565b83811115613065576000848401525b50505050565b6000600282049050600182168061308357607f821691505b6020821081141561309757613096613144565b5b50919050565b60006130a882613021565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130db576130da6130e6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b7f6f70657261746f723a207a65726f206164647265737320676976656e20666f7260008201527f206e6577206f70657261746f7200000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6134a981612fe3565b81146134b457600080fd5b50565b6134c081612ff5565b81146134cb57600080fd5b50565b6134d781613021565b81146134e257600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220331032656fe3eec52e2883d01cc5cbda39ff075774cf955143314f87846174e164736f6c63430008040033

Deployed ByteCode Sourcemap

16226:2637:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16546:63;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16879:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11300:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11862:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12754:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11379:82;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11473:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12163:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16705:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12929:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2018:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16622:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17080:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12064:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13254:214;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11253:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1912:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1688:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16907:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12279:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;992:148;;;:::i;:::-;;16754:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11349:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16667:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11589:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;773:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11961:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18004:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;16472:67;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13476:265;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16322:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12414:173;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16400:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16963:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16820:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12595:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17531:465;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18487:373;;;:::i;:::-;;1146:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16546:63;;;;;;;;;;;;;:::o;16879:19::-;;;;:::o;11300:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;11862:91::-;11907:13;11940:5;11933:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11862:91;:::o;12754:167::-;12837:4;12854:37;12863:10;12875:7;12884:6;12854:8;:37::i;:::-;12909:4;12902:11;;12754:167;;;;:::o;11379:82::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11448:5:::1;11439:6;;:14;;;;;;;;;;;;;;;;;;11379:82:::0;:::o;11473:104::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11565:4:::1;11546:8;:16;11555:6;11546:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11473:104:::0;;:::o;12163:108::-;12224:7;12251:12;;12244:19;;12163:108;:::o;16705:42::-;;;;:::o;12929:317::-;13035:4;13052:36;13062:6;13070:9;13081:6;13052:9;:36::i;:::-;13099:117;13108:6;13116:10;13128:87;13164:6;13128:87;;;;;;;;;;;;;;;;;:11;:19;13140:6;13128:19;;;;;;;;;;;;;;;:31;13148:10;13128:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;13099:8;:117::i;:::-;13234:4;13227:11;;12929:317;;;;;:::o;2018:115::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2094:31:::1;2112:12;2094:17;:31::i;:::-;2018:115:::0;:::o;16622:38::-;;;;:::o;17080:94::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17162:4:::1;17148:11;:18;;;;17080:94:::0;:::o;12064:91::-;12113:5;12138:9;;;;;;;;;;;12131:16;;12064:91;:::o;13254:214::-;13342:4;13359:79;13368:10;13380:7;13389:48;13426:10;13389:11;:23;13401:10;13389:23;;;;;;;;;;;;;;;:32;13413:7;13389:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;13359:8;:79::i;:::-;13456:4;13449:11;;13254:214;;;;:::o;11253:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;1912:100::-;1955:4;1995:9;;;;;;;;;;;1979:25;;:12;:10;:12::i;:::-;:25;;;1972:32;;1912:100;:::o;1688:85::-;1729:7;1756:9;;;;;;;;;;;1749:16;;1688:85;:::o;16907:49::-;;;;;;;;;;;;;;;;;:::o;12279:127::-;12353:7;12380:9;:18;12390:7;12380:18;;;;;;;;;;;;;;;;12373:25;;12279:127;;;:::o;992:148::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1099:1:::1;1062:40;;1083:6;::::0;::::1;;;;;;;;1062:40;;;;;;;;;;;;1130:1;1113:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;992:148::o:0;16754:37::-;;;;:::o;11349:21::-;;;;;;;;;;;;;:::o;16667:31::-;;;;:::o;11589:115::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11692:4:::1;11668:10;:21;11679:9;11668:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11589:115:::0;;:::o;773:87::-;819:7;846:6;;;;;;;;;;;839:13;;773:87;:::o;11961:95::-;12008:13;12041:7;12034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11961:95;:::o;18004:475::-;18060:7;18069;18089:18;18110:14;:23;18125:7;18110:23;;;;;;;;;;;;;;;;18089:44;;18144:13;18160:9;:18;18170:7;18160:18;;;;;;;;;;;;;;;;18144:34;;18207:1;18192:13;:16;:31;;;;18222:1;18212:8;:11;18192:31;18189:49;;;18233:1;18236;18225:13;;;;;;;;18189:49;18249:12;18264:15;18249:30;;18293:9;18306:27;18325:7;18306:11;;:18;;:27;;;;:::i;:::-;18290:43;;;18358:4;18347:8;:15;18344:40;;;18372:1;18375:8;18364:20;;;;;;;;;;18344:40;18403:61;18455:8;18403:47;18431:18;18444:4;18431:8;:12;;:18;;;;:::i;:::-;18403:14;:23;18418:7;18403:23;;;;;;;;;;;;;;;;:27;;:47;;;;:::i;:::-;:51;;:61;;;;:::i;:::-;18466:4;18395:76;;;;;;;;18004:475;;;;:::o;16472:67::-;;;;;;;;;;;;;:::o;13476:265::-;13569:4;13586:125;13595:10;13607:7;13616:94;13653:15;13616:94;;;;;;;;;;;;;;;;;:11;:23;13628:10;13616:23;;;;;;;;;;;;;;;:32;13640:7;13616:32;;;;;;;;;;;;;;;;:36;;:94;;;;;:::i;:::-;13586:8;:125::i;:::-;13729:4;13722:11;;13476:265;;;;:::o;16322:71::-;;;;;;;;;;;;;:::o;12414:173::-;12500:4;12517:40;12527:10;12539:9;12550:6;12517:9;:40::i;:::-;12575:4;12568:11;;12414:173;;;;:::o;16400:65::-;;;;;;;;;;;;;:::o;16963:44::-;;;;;;;;;;;;;;;;;:::o;16820:52::-;;;;:::o;12595:151::-;12684:7;12711:11;:18;12723:5;12711:18;;;;;;;;;;;;;;;:27;12730:7;12711:27;;;;;;;;;;;;;;;;12704:34;;12595:151;;;;:::o;17531:465::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17629:11:::1;17651:12:::0;17678:6:::1;17674:315;17689:5;;:12;;17687:1;:14;17674:315;;;17730:7;;17738:1;17730:10;;;;;;;;;;;;;;;;;;;;;17721:19;;17762:5;;17768:1;17762:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17755:15;;17798:1;17789:6;:10;17785:193;;;17827:16;17836:6;17827:4;;:8;;:16;;;;:::i;:::-;17820:4;:23;;;;17885:32;17910:6;17885:14;:20;17900:4;17885:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17862:14;:20;17877:4;17862:20;;;;;;;;;;;;;;;:55;;;;17954:8;;17936:9;:15;17946:4;17936:15;;;;;;;;;;;;;;;:26;;;;17785:193;17702:3;;;;;:::i;:::-;;;;17674:315;;;;977:1;;17531:465:::0;;;;:::o;18487:373::-;18534:14;18550:12;18566:20;18575:10;18566:8;:20::i;:::-;18533:53;;;;18607:1;18600:6;:8;18597:256;;;18653:38;18684:6;18653:14;:26;18668:10;18653:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;18624:14;:26;18639:10;18624:26;;;;;;;;;;;;;;;:67;;;;18730:4;18706:9;:21;18716:10;18706:21;;;;;;;;;;;;;;;:28;;;;18766:10;18754:31;;;18778:6;18754:31;;;;;;:::i;:::-;;;;;;;;18807:4;18800:21;;;18822:10;18834:6;18800:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18597:256;18487:373;;:::o;1146:244::-;917:12;:10;:12::i;:::-;906:23;;:7;:5;:7::i;:::-;:23;;;898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1255:1:::1;1235:22;;:8;:22;;;;1227:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1345:8;1316:38;;1337:6;::::0;::::1;;;;;;;;1316:38;;;;;;;;;;;;1374:8;1365:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1146:244:::0;:::o;4343:220::-;4401:7;4430:1;4425;:6;4421:20;;;4440:1;4433:8;;;;4421:20;4452:9;4468:1;4464;:5;;;;:::i;:::-;4452:17;;4497:1;4492;4488;:5;;;;:::i;:::-;:10;4480:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4554:1;4547:8;;;4343:220;;;;;:::o;3994:179::-;4052:7;4072:9;4088:1;4084;:5;;;;:::i;:::-;4072:17;;4113:1;4108;:6;;4100:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4164:1;4157:8;;;3994:179;;;;:::o;4569:153::-;4627:7;4659:1;4655;:5;4647:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4713:1;4709;:5;;;;:::i;:::-;4702:12;;4569:153;;;;:::o;15669:344::-;15788:1;15771:19;;:5;:19;;;;15763:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15869:1;15850:21;;:7;:21;;;;15842:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15951:6;15921:11;:18;15933:5;15921:18;;;;;;;;;;;;;;;:27;15940:7;15921:27;;;;;;;;;;;;;;;:36;;;;15989:7;15973:32;;15982:5;15973:32;;;15998:6;15973:32;;;;;;:::i;:::-;;;;;;;;15669:344;;;:::o;91:115::-;144:15;187:10;172:26;;91:115;:::o;13749:1108::-;13873:1;13855:20;;:6;:20;;;;13847:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13957:1;13936:23;;:9;:23;;;;13928:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14010:47;14031:6;14039:9;14050:6;14010:20;:47::i;:::-;14072:10;:18;14083:6;14072:18;;;;;;;;;;;;;;;;;;;;;;;;;14071:19;:42;;;;;14094:8;:19;14103:9;14094:19;;;;;;;;;;;;;;;;;;;;;;;;;14071:42;:64;;;;;14133:1;14117:18;;:6;;;;;;;;;;;:18;;;;14071:64;14068:665;;;14172:88;14194:23;14213:3;14194:14;14205:2;14194:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;14172:88;;;;;;;;;;;;;;;;;:9;:17;14182:6;14172:17;;;;;;;;;;;;;;;;:21;;:88;;;;;:::i;:::-;14152:9;:17;14162:6;14152:17;;;;;;;;;;;;;;;:108;;;;14275:37;14281:6;14289:22;14307:3;14289:13;14300:1;14289:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;14275:5;:37::i;:::-;14327:14;14344:22;14362:3;14344:13;14355:1;14344:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;14327:39;;14401:32;14423:9;14401;:17;14411:6;;;;;;;;;;;14401:17;;;;;;;;;;;;;;;;:21;;:32;;;;:::i;:::-;14381:9;:17;14391:6;;;;;;;;;;;14381:17;;;;;;;;;;;;;;;:52;;;;14470:6;;;;;;;;;;;14453:35;;14462:6;14453:35;;;14478:9;14453:35;;;;;;:::i;:::-;;;;;;;;14514:6;;;;;;;;;;;14507:23;;;14531:9;14507:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14503:50;;;;;;14576:23;14595:3;14576:14;14587:2;14576:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;14567:32;;14068:665;;;;14650:71;14672:6;14650:71;;;;;;;;;;;;;;;;;:9;:17;14660:6;14650:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;14630:9;:17;14640:6;14630:17;;;;;;;;;;;;;;;:91;;;;14068:665;14766:32;14791:6;14766:9;:20;14776:9;14766:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14743:9;:20;14753:9;14743:20;;;;;;;;;;;;;;;:55;;;;14831:9;14814:35;;14823:6;14814:35;;;14842:6;14814:35;;;;;;:::i;:::-;;;;;;;;13749:1108;;;:::o;4885:166::-;4971:7;5004:1;4999;:6;;5007:12;4991:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5042:1;5038;:5;;;;:::i;:::-;5031:12;;4885:166;;;;;:::o;2139:257::-;2240:1;2216:26;;:12;:26;;;;2208:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;2340:12;2308:45;;2336:1;2308:45;;;;;;;;;;;;2376:12;2364:9;;:24;;;;;;;;;;;;;;;;;;2139:257;:::o;3284:154::-;3345:4;3351:7;3379:1;3375;:5;3371:28;;;3390:5;3397:1;3382:17;;;;;;3371:28;3418:4;3428:1;3424;:5;;;;:::i;:::-;3410:20;;;;3284:154;;;;;;:::o;4179:158::-;4237:7;4270:1;4265;:6;;4257:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;4328:1;4324;:5;;;;:::i;:::-;4317:12;;4179:158;;;;:::o;16127:92::-;;;;:::o;15247:414::-;15350:1;15331:21;;:7;:21;;;;15323:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15401:49;15422:7;15439:1;15443:6;15401:20;:49::i;:::-;15482:68;15505:6;15482:68;;;;;;;;;;;;;;;;;:9;:18;15492:7;15482:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;15461:9;:18;15471:7;15461:18;;;;;;;;;;;;;;;:89;;;;15576:24;15593:6;15576:12;;:16;;:24;;;;:::i;:::-;15561:12;:39;;;;15642:1;15616:37;;15625:7;15616:37;;;15646:6;15616:37;;;;;;:::i;:::-;;;;;;;;15247:414;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;559:367::-;632:8;642:6;692:3;685:4;677:6;673:17;669:27;659:2;;710:1;707;700:12;659:2;746:6;733:20;723:30;;776:18;768:6;765:30;762:2;;;808:1;805;798:12;762:2;845:4;837:6;833:17;821:29;;899:3;891:4;883:6;879:17;869:8;865:32;862:41;859:2;;;916:1;913;906:12;859:2;649:277;;;;;:::o;932:133::-;975:5;1013:6;1000:20;991:29;;1029:30;1053:5;1029:30;:::i;:::-;981:84;;;;:::o;1071:137::-;1125:5;1156:6;1150:13;1141:22;;1172:30;1196:5;1172:30;:::i;:::-;1131:77;;;;:::o;1214:139::-;1260:5;1298:6;1285:20;1276:29;;1314:33;1341:5;1314:33;:::i;:::-;1266:87;;;;:::o;1359:262::-;1418:6;1467:2;1455:9;1446:7;1442:23;1438:32;1435:2;;;1483:1;1480;1473:12;1435:2;1526:1;1551:53;1596:7;1587:6;1576:9;1572:22;1551:53;:::i;:::-;1541:63;;1497:117;1425:196;;;;:::o;1627:407::-;1695:6;1703;1752:2;1740:9;1731:7;1727:23;1723:32;1720:2;;;1768:1;1765;1758:12;1720:2;1811:1;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1782:117;1938:2;1964:53;2009:7;2000:6;1989:9;1985:22;1964:53;:::i;:::-;1954:63;;1909:118;1710:324;;;;;:::o;2040:552::-;2117:6;2125;2133;2182:2;2170:9;2161:7;2157:23;2153:32;2150:2;;;2198:1;2195;2188:12;2150:2;2241:1;2266:53;2311:7;2302:6;2291:9;2287:22;2266:53;:::i;:::-;2256:63;;2212:117;2368:2;2394:53;2439:7;2430:6;2419:9;2415:22;2394:53;:::i;:::-;2384:63;;2339:118;2496:2;2522:53;2567:7;2558:6;2547:9;2543:22;2522:53;:::i;:::-;2512:63;;2467:118;2140:452;;;;;:::o;2598:401::-;2663:6;2671;2720:2;2708:9;2699:7;2695:23;2691:32;2688:2;;;2736:1;2733;2726:12;2688:2;2779:1;2804:53;2849:7;2840:6;2829:9;2825:22;2804:53;:::i;:::-;2794:63;;2750:117;2906:2;2932:50;2974:7;2965:6;2954:9;2950:22;2932:50;:::i;:::-;2922:60;;2877:115;2678:321;;;;;:::o;3005:407::-;3073:6;3081;3130:2;3118:9;3109:7;3105:23;3101:32;3098:2;;;3146:1;3143;3136:12;3098:2;3189:1;3214:53;3259:7;3250:6;3239:9;3235:22;3214:53;:::i;:::-;3204:63;;3160:117;3316:2;3342:53;3387:7;3378:6;3367:9;3363:22;3342:53;:::i;:::-;3332:63;;3287:118;3088:324;;;;;:::o;3418:733::-;3540:6;3548;3556;3564;3613:2;3601:9;3592:7;3588:23;3584:32;3581:2;;;3629:1;3626;3619:12;3581:2;3700:1;3689:9;3685:17;3672:31;3730:18;3722:6;3719:30;3716:2;;;3762:1;3759;3752:12;3716:2;3798:80;3870:7;3861:6;3850:9;3846:22;3798:80;:::i;:::-;3780:98;;;;3643:245;3955:2;3944:9;3940:18;3927:32;3986:18;3978:6;3975:30;3972:2;;;4018:1;4015;4008:12;3972:2;4054:80;4126:7;4117:6;4106:9;4102:22;4054:80;:::i;:::-;4036:98;;;;3898:246;3571:580;;;;;;;:::o;4157:278::-;4224:6;4273:2;4261:9;4252:7;4248:23;4244:32;4241:2;;;4289:1;4286;4279:12;4241:2;4332:1;4357:61;4410:7;4401:6;4390:9;4386:22;4357:61;:::i;:::-;4347:71;;4303:125;4231:204;;;;:::o;4441:262::-;4500:6;4549:2;4537:9;4528:7;4524:23;4520:32;4517:2;;;4565:1;4562;4555:12;4517:2;4608:1;4633:53;4678:7;4669:6;4658:9;4654:22;4633:53;:::i;:::-;4623:63;;4579:117;4507:196;;;;:::o;4709:118::-;4796:24;4814:5;4796:24;:::i;:::-;4791:3;4784:37;4774:53;;:::o;4833:109::-;4914:21;4929:5;4914:21;:::i;:::-;4909:3;4902:34;4892:50;;:::o;4948:364::-;5036:3;5064:39;5097:5;5064:39;:::i;:::-;5119:71;5183:6;5178:3;5119:71;:::i;:::-;5112:78;;5199:52;5244:6;5239:3;5232:4;5225:5;5221:16;5199:52;:::i;:::-;5276:29;5298:6;5276:29;:::i;:::-;5271:3;5267:39;5260:46;;5040:272;;;;;:::o;5318:366::-;5460:3;5481:67;5545:2;5540:3;5481:67;:::i;:::-;5474:74;;5557:93;5646:3;5557:93;:::i;:::-;5675:2;5670:3;5666:12;5659:19;;5464:220;;;:::o;5690:366::-;5832:3;5853:67;5917:2;5912:3;5853:67;:::i;:::-;5846:74;;5929:93;6018:3;5929:93;:::i;:::-;6047:2;6042:3;6038:12;6031:19;;5836:220;;;:::o;6062:366::-;6204:3;6225:67;6289:2;6284:3;6225:67;:::i;:::-;6218:74;;6301:93;6390:3;6301:93;:::i;:::-;6419:2;6414:3;6410:12;6403:19;;6208:220;;;:::o;6434:366::-;6576:3;6597:67;6661:2;6656:3;6597:67;:::i;:::-;6590:74;;6673:93;6762:3;6673:93;:::i;:::-;6791:2;6786:3;6782:12;6775:19;;6580:220;;;:::o;6806:366::-;6948:3;6969:67;7033:2;7028:3;6969:67;:::i;:::-;6962:74;;7045:93;7134:3;7045:93;:::i;:::-;7163:2;7158:3;7154:12;7147:19;;6952:220;;;:::o;7178:366::-;7320:3;7341:67;7405:2;7400:3;7341:67;:::i;:::-;7334:74;;7417:93;7506:3;7417:93;:::i;:::-;7535:2;7530:3;7526:12;7519:19;;7324:220;;;:::o;7550:366::-;7692:3;7713:67;7777:2;7772:3;7713:67;:::i;:::-;7706:74;;7789:93;7878:3;7789:93;:::i;:::-;7907:2;7902:3;7898:12;7891:19;;7696:220;;;:::o;7922:366::-;8064:3;8085:67;8149:2;8144:3;8085:67;:::i;:::-;8078:74;;8161:93;8250:3;8161:93;:::i;:::-;8279:2;8274:3;8270:12;8263:19;;8068:220;;;:::o;8294:366::-;8436:3;8457:67;8521:2;8516:3;8457:67;:::i;:::-;8450:74;;8533:93;8622:3;8533:93;:::i;:::-;8651:2;8646:3;8642:12;8635:19;;8440:220;;;:::o;8666:366::-;8808:3;8829:67;8893:2;8888:3;8829:67;:::i;:::-;8822:74;;8905:93;8994:3;8905:93;:::i;:::-;9023:2;9018:3;9014:12;9007:19;;8812:220;;;:::o;9038:366::-;9180:3;9201:67;9265:2;9260:3;9201:67;:::i;:::-;9194:74;;9277:93;9366:3;9277:93;:::i;:::-;9395:2;9390:3;9386:12;9379:19;;9184:220;;;:::o;9410:366::-;9552:3;9573:67;9637:2;9632:3;9573:67;:::i;:::-;9566:74;;9649:93;9738:3;9649:93;:::i;:::-;9767:2;9762:3;9758:12;9751:19;;9556:220;;;:::o;9782:118::-;9869:24;9887:5;9869:24;:::i;:::-;9864:3;9857:37;9847:53;;:::o;9906:112::-;9989:22;10005:5;9989:22;:::i;:::-;9984:3;9977:35;9967:51;;:::o;10024:222::-;10117:4;10155:2;10144:9;10140:18;10132:26;;10168:71;10236:1;10225:9;10221:17;10212:6;10168:71;:::i;:::-;10122:124;;;;:::o;10252:332::-;10373:4;10411:2;10400:9;10396:18;10388:26;;10424:71;10492:1;10481:9;10477:17;10468:6;10424:71;:::i;:::-;10505:72;10573:2;10562:9;10558:18;10549:6;10505:72;:::i;:::-;10378:206;;;;;:::o;10590:210::-;10677:4;10715:2;10704:9;10700:18;10692:26;;10728:65;10790:1;10779:9;10775:17;10766:6;10728:65;:::i;:::-;10682:118;;;;:::o;10806:313::-;10919:4;10957:2;10946:9;10942:18;10934:26;;11006:9;11000:4;10996:20;10992:1;10981:9;10977:17;10970:47;11034:78;11107:4;11098:6;11034:78;:::i;:::-;11026:86;;10924:195;;;;:::o;11125:419::-;11291:4;11329:2;11318:9;11314:18;11306:26;;11378:9;11372:4;11368:20;11364:1;11353:9;11349:17;11342:47;11406:131;11532:4;11406:131;:::i;:::-;11398:139;;11296:248;;;:::o;11550:419::-;11716:4;11754:2;11743:9;11739:18;11731:26;;11803:9;11797:4;11793:20;11789:1;11778:9;11774:17;11767:47;11831:131;11957:4;11831:131;:::i;:::-;11823:139;;11721:248;;;:::o;11975:419::-;12141:4;12179:2;12168:9;12164:18;12156:26;;12228:9;12222:4;12218:20;12214:1;12203:9;12199:17;12192:47;12256:131;12382:4;12256:131;:::i;:::-;12248:139;;12146:248;;;:::o;12400:419::-;12566:4;12604:2;12593:9;12589:18;12581:26;;12653:9;12647:4;12643:20;12639:1;12628:9;12624:17;12617:47;12681:131;12807:4;12681:131;:::i;:::-;12673:139;;12571:248;;;:::o;12825:419::-;12991:4;13029:2;13018:9;13014:18;13006:26;;13078:9;13072:4;13068:20;13064:1;13053:9;13049:17;13042:47;13106:131;13232:4;13106:131;:::i;:::-;13098:139;;12996:248;;;:::o;13250:419::-;13416:4;13454:2;13443:9;13439:18;13431:26;;13503:9;13497:4;13493:20;13489:1;13478:9;13474:17;13467:47;13531:131;13657:4;13531:131;:::i;:::-;13523:139;;13421:248;;;:::o;13675:419::-;13841:4;13879:2;13868:9;13864:18;13856:26;;13928:9;13922:4;13918:20;13914:1;13903:9;13899:17;13892:47;13956:131;14082:4;13956:131;:::i;:::-;13948:139;;13846:248;;;:::o;14100:419::-;14266:4;14304:2;14293:9;14289:18;14281:26;;14353:9;14347:4;14343:20;14339:1;14328:9;14324:17;14317:47;14381:131;14507:4;14381:131;:::i;:::-;14373:139;;14271:248;;;:::o;14525:419::-;14691:4;14729:2;14718:9;14714:18;14706:26;;14778:9;14772:4;14768:20;14764:1;14753:9;14749:17;14742:47;14806:131;14932:4;14806:131;:::i;:::-;14798:139;;14696:248;;;:::o;14950:419::-;15116:4;15154:2;15143:9;15139:18;15131:26;;15203:9;15197:4;15193:20;15189:1;15178:9;15174:17;15167:47;15231:131;15357:4;15231:131;:::i;:::-;15223:139;;15121:248;;;:::o;15375:419::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15628:9;15622:4;15618:20;15614:1;15603:9;15599:17;15592:47;15656:131;15782:4;15656:131;:::i;:::-;15648:139;;15546:248;;;:::o;15800:419::-;15966:4;16004:2;15993:9;15989:18;15981:26;;16053:9;16047:4;16043:20;16039:1;16028:9;16024:17;16017:47;16081:131;16207:4;16081:131;:::i;:::-;16073:139;;15971:248;;;:::o;16225:222::-;16318:4;16356:2;16345:9;16341:18;16333:26;;16369:71;16437:1;16426:9;16422:17;16413:6;16369:71;:::i;:::-;16323:124;;;;:::o;16453:332::-;16574:4;16612:2;16601:9;16597:18;16589:26;;16625:71;16693:1;16682:9;16678:17;16669:6;16625:71;:::i;:::-;16706:72;16774:2;16763:9;16759:18;16750:6;16706:72;:::i;:::-;16579:206;;;;;:::o;16791:214::-;16880:4;16918:2;16907:9;16903:18;16895:26;;16931:67;16995:1;16984:9;16980:17;16971:6;16931:67;:::i;:::-;16885:120;;;;:::o;17011:99::-;17063:6;17097:5;17091:12;17081:22;;17070:40;;;:::o;17116:169::-;17200:11;17234:6;17229:3;17222:19;17274:4;17269:3;17265:14;17250:29;;17212:73;;;;:::o;17291:305::-;17331:3;17350:20;17368:1;17350:20;:::i;:::-;17345:25;;17384:20;17402:1;17384:20;:::i;:::-;17379:25;;17538:1;17470:66;17466:74;17463:1;17460:81;17457:2;;;17544:18;;:::i;:::-;17457:2;17588:1;17585;17581:9;17574:16;;17335:261;;;;:::o;17602:185::-;17642:1;17659:20;17677:1;17659:20;:::i;:::-;17654:25;;17693:20;17711:1;17693:20;:::i;:::-;17688:25;;17732:1;17722:2;;17737:18;;:::i;:::-;17722:2;17779:1;17776;17772:9;17767:14;;17644:143;;;;:::o;17793:348::-;17833:7;17856:20;17874:1;17856:20;:::i;:::-;17851:25;;17890:20;17908:1;17890:20;:::i;:::-;17885:25;;18078:1;18010:66;18006:74;18003:1;18000:81;17995:1;17988:9;17981:17;17977:105;17974:2;;;18085:18;;:::i;:::-;17974:2;18133:1;18130;18126:9;18115:20;;17841:300;;;;:::o;18147:191::-;18187:4;18207:20;18225:1;18207:20;:::i;:::-;18202:25;;18241:20;18259:1;18241:20;:::i;:::-;18236:25;;18280:1;18277;18274:8;18271:2;;;18285:18;;:::i;:::-;18271:2;18330:1;18327;18323:9;18315:17;;18192:146;;;;:::o;18344:96::-;18381:7;18410:24;18428:5;18410:24;:::i;:::-;18399:35;;18389:51;;;:::o;18446:90::-;18480:7;18523:5;18516:13;18509:21;18498:32;;18488:48;;;:::o;18542:126::-;18579:7;18619:42;18612:5;18608:54;18597:65;;18587:81;;;:::o;18674:77::-;18711:7;18740:5;18729:16;;18719:32;;;:::o;18757:86::-;18792:7;18832:4;18825:5;18821:16;18810:27;;18800:43;;;:::o;18849:307::-;18917:1;18927:113;18941:6;18938:1;18935:13;18927:113;;;19026:1;19021:3;19017:11;19011:18;19007:1;19002:3;18998:11;18991:39;18963:2;18960:1;18956:10;18951:15;;18927:113;;;19058:6;19055:1;19052:13;19049:2;;;19138:1;19129:6;19124:3;19120:16;19113:27;19049:2;18898:258;;;;:::o;19162:320::-;19206:6;19243:1;19237:4;19233:12;19223:22;;19290:1;19284:4;19280:12;19311:18;19301:2;;19367:4;19359:6;19355:17;19345:27;;19301:2;19429;19421:6;19418:14;19398:18;19395:38;19392:2;;;19448:18;;:::i;:::-;19392:2;19213:269;;;;:::o;19488:233::-;19527:3;19550:24;19568:5;19550:24;:::i;:::-;19541:33;;19596:66;19589:5;19586:77;19583:2;;;19666:18;;:::i;:::-;19583:2;19713:1;19706:5;19702:13;19695:20;;19531:190;;;:::o;19727:180::-;19775:77;19772:1;19765:88;19872:4;19869:1;19862:15;19896:4;19893:1;19886:15;19913:180;19961:77;19958:1;19951:88;20058:4;20055:1;20048:15;20082:4;20079:1;20072:15;20099:180;20147:77;20144:1;20137:88;20244:4;20241:1;20234:15;20268:4;20265:1;20258:15;20285:102;20326:6;20377:2;20373:7;20368:2;20361:5;20357:14;20353:28;20343:38;;20333:54;;;:::o;20393:222::-;20533:34;20529:1;20521:6;20517:14;20510:58;20602:5;20597:2;20589:6;20585:15;20578:30;20499:116;:::o;20621:225::-;20761:34;20757:1;20749:6;20745:14;20738:58;20830:8;20825:2;20817:6;20813:15;20806:33;20727:119;:::o;20852:221::-;20992:34;20988:1;20980:6;20976:14;20969:58;21061:4;21056:2;21048:6;21044:15;21037:29;20958:115;:::o;21079:177::-;21219:29;21215:1;21207:6;21203:14;21196:53;21185:71;:::o;21262:180::-;21402:32;21398:1;21390:6;21386:14;21379:56;21368:74;:::o;21448:176::-;21588:28;21584:1;21576:6;21572:14;21565:52;21554:70;:::o;21630:232::-;21770:34;21766:1;21758:6;21754:14;21747:58;21839:15;21834:2;21826:6;21822:15;21815:40;21736:126;:::o;21868:220::-;22008:34;22004:1;21996:6;21992:14;21985:58;22077:3;22072:2;22064:6;22060:15;22053:28;21974:114;:::o;22094:182::-;22234:34;22230:1;22222:6;22218:14;22211:58;22200:76;:::o;22282:220::-;22422:34;22418:1;22410:6;22406:14;22399:58;22491:3;22486:2;22478:6;22474:15;22467:28;22388:114;:::o;22508:224::-;22648:34;22644:1;22636:6;22632:14;22625:58;22717:7;22712:2;22704:6;22700:15;22693:32;22614:118;:::o;22738:223::-;22878:34;22874:1;22866:6;22862:14;22855:58;22947:6;22942:2;22934:6;22930:15;22923:31;22844:117;:::o;22967:122::-;23040:24;23058:5;23040:24;:::i;:::-;23033:5;23030:35;23020:2;;23079:1;23076;23069:12;23020:2;23010:79;:::o;23095:116::-;23165:21;23180:5;23165:21;:::i;:::-;23158:5;23155:32;23145:2;;23201:1;23198;23191:12;23145:2;23135:76;:::o;23217:122::-;23290:24;23308:5;23290:24;:::i;:::-;23283:5;23280:35;23270:2;;23329:1;23326;23319:12;23270:2;23260:79;:::o

Swarm Source

ipfs://331032656fe3eec52e2883d01cc5cbda39ff075774cf955143314f87846174e1
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading