ETH Price: $2,064.95 (+5.84%)
 

More Info

Private Name Tags

TokenTracker

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve239568612025-12-06 22:41:1161 days ago1765060871IN
0x31Bb711d...FC5c2afd3
0 ETH0.000004180.09
Approve218408322025-02-13 23:27:47357 days ago1739489267IN
0x31Bb711d...FC5c2afd3
0 ETH0.000026661.1
Approve170098022023-04-09 9:16:351034 days ago1681031795IN
0x31Bb711d...FC5c2afd3
0 ETH0.0004970120.5032367
Approve170098022023-04-09 9:16:351034 days ago1681031795IN
0x31Bb711d...FC5c2afd3
0 ETH0.0004967720.5032367
Approve170097982023-04-09 9:15:471034 days ago1681031747IN
0x31Bb711d...FC5c2afd3
0 ETH0.0005456320.79313428
Approve167723842023-03-06 22:50:471067 days ago1678143047IN
0x31Bb711d...FC5c2afd3
0 ETH0.0010144841.84992221
Approve145344532022-04-06 20:27:511401 days ago1649276871IN
0x31Bb711d...FC5c2afd3
0 ETH0.0011313746.69515249
Approve140259752022-01-17 23:14:241480 days ago1642461264IN
0x31Bb711d...FC5c2afd3
0 ETH0.00282925116.71352668
Transfer125082962021-05-26 6:11:381717 days ago1622009498IN
0x31Bb711d...FC5c2afd3
0 ETH0.0019628436.3
Approve123158782021-04-26 12:18:431747 days ago1619439523IN
0x31Bb711d...FC5c2afd3
0 ETH0.0005517938
Approve122674582021-04-19 0:56:461754 days ago1618793806IN
0x31Bb711d...FC5c2afd3
0 ETH0.00615271133
Approve122633742021-04-18 9:48:431755 days ago1618739323IN
0x31Bb711d...FC5c2afd3
0 ETH0.00897932193
Transfer121585772021-04-02 6:47:071771 days ago1617346027IN
0x31Bb711d...FC5c2afd3
0 ETH0.00810882144.64285714
Transfer116771212021-01-18 4:41:421845 days ago1610944902IN
0x31Bb711d...FC5c2afd3
0 ETH0.0033094963.8
Transfer116764982021-01-18 2:23:031845 days ago1610936583IN
0x31Bb711d...FC5c2afd3
0 ETH0.0018887758
Transfer116100772021-01-07 21:56:201855 days ago1610056580IN
0x31Bb711d...FC5c2afd3
0 ETH0.0030940379
Transfer114054032020-12-07 11:32:161887 days ago1607340736IN
0x31Bb711d...FC5c2afd3
0 ETH0.0017759225
Transfer111323552020-10-26 13:41:181929 days ago1603719678IN
0x31Bb711d...FC5c2afd3
0 ETH0.002349960
Transfer111323522020-10-26 13:40:381929 days ago1603719638IN
0x31Bb711d...FC5c2afd3
0 ETH0.0033636660
Transfer110757522020-10-17 21:05:281937 days ago1602968728IN
0x31Bb711d...FC5c2afd3
0 ETH0.0022419640
Withdraw Share110747332020-10-17 17:12:041938 days ago1602954724IN
0x31Bb711d...FC5c2afd3
0 ETH0.0008306821.1
Approve109154942020-09-23 0:21:061962 days ago1600820466IN
0x31Bb711d...FC5c2afd3
0 ETH0.0031541771
Transfer108972892020-09-20 5:27:021965 days ago1600579622IN
0x31Bb711d...FC5c2afd3
0 ETH0.00599852107
Transfer108545862020-09-13 15:54:421972 days ago1600012482IN
0x31Bb711d...FC5c2afd3
0 ETH0.00661519118
Approve108430512020-09-11 21:32:091973 days ago1599859929IN
0x31Bb711d...FC5c2afd3
0 ETH0.0036872783
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-103451722020-06-27 2:24:542050 days ago1593224694
0x31Bb711d...FC5c2afd3
0.001 ETH
-103451352020-06-27 2:17:582050 days ago1593224278
0x31Bb711d...FC5c2afd3
0.001 ETH
-103259972020-06-24 3:15:252053 days ago1592968525
0x31Bb711d...FC5c2afd3
0.025 ETH
-103223762020-06-23 13:48:152054 days ago1592920095
0x31Bb711d...FC5c2afd3
0.2 ETH
-103220682020-06-23 12:40:422054 days ago1592916042
0x31Bb711d...FC5c2afd3
1 ETH
-103205152020-06-23 6:48:162054 days ago1592894896
0x31Bb711d...FC5c2afd3
1 ETH
-103201262020-06-23 5:20:592054 days ago1592889659
0x31Bb711d...FC5c2afd3
0.15 ETH
-103195282020-06-23 3:08:272054 days ago1592881707
0x31Bb711d...FC5c2afd3
0.4596369 ETH
-103194112020-06-23 2:41:342054 days ago1592880094
0x31Bb711d...FC5c2afd3
0.27 ETH
-103189322020-06-23 0:54:242054 days ago1592873664
0x31Bb711d...FC5c2afd3
0.2 ETH
-103184142020-06-22 23:00:292054 days ago1592866829
0x31Bb711d...FC5c2afd3
0.0125 ETH
-103169862020-06-22 17:42:402055 days ago1592847760
0x31Bb711d...FC5c2afd3
0.007 ETH
-103143052020-06-22 7:51:372055 days ago1592812297
0x31Bb711d...FC5c2afd3
0.5 ETH
-103143052020-06-22 7:51:372055 days ago1592812297
0x31Bb711d...FC5c2afd3
0.5 ETH
-103142952020-06-22 7:48:592055 days ago1592812139
0x31Bb711d...FC5c2afd3
1 ETH
-103142432020-06-22 7:38:592055 days ago1592811539
0x31Bb711d...FC5c2afd3
2 ETH
-103140982020-06-22 7:04:252055 days ago1592809465
0x31Bb711d...FC5c2afd3
0.08 ETH
-103139852020-06-22 6:38:472055 days ago1592807927
0x31Bb711d...FC5c2afd3
0.02609546 ETH
-103133972020-06-22 4:28:332055 days ago1592800113
0x31Bb711d...FC5c2afd3
0.025 ETH
-103129352020-06-22 2:31:452055 days ago1592793105
0x31Bb711d...FC5c2afd3
0.015 ETH
-103112822020-06-21 20:38:252055 days ago1592771905
0x31Bb711d...FC5c2afd3
0.0017 ETH
-103103482020-06-21 17:10:292056 days ago1592759429
0x31Bb711d...FC5c2afd3
1 ETH
-103089492020-06-21 11:53:132056 days ago1592740393
0x31Bb711d...FC5c2afd3
0.3 ETH
-103028002020-06-20 13:02:082057 days ago1592658128
0x31Bb711d...FC5c2afd3
0.4 ETH
-103023682020-06-20 11:25:332057 days ago1592652333
0x31Bb711d...FC5c2afd3
0.1 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Vether

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-05-12
*/

pragma solidity 0.6.4;
//ERC20 Interface
interface ERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address, uint) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address, uint) external returns (bool);
    function transferFrom(address, address, uint) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
// Uniswap Factory Interface
interface UniswapFactory {
    function getExchange(address token) external view returns (address exchange);
    }
// Uniswap Exchange Interface
interface UniswapExchange {
    function tokenToEthTransferInput(uint tokens_sold,uint min_eth,uint deadline, address recipient) external returns (uint  eth_bought);
    }
    //======================================VETHER=========================================//
contract Vether is ERC20 {
    // ERC-20 Parameters
    string public name; string public symbol;
    uint public decimals; uint public override totalSupply;
    // ERC-20 Mappings
    mapping(address => uint) public override balanceOf;
    mapping(address => mapping(address => uint)) public override allowance;
    // Public Parameters
    uint coin; uint public emission;
    uint public currentEra; uint public currentDay;
    uint public daysPerEra; uint public secondsPerDay;
    uint public genesis; uint public nextEraTime; uint public nextDayTime;
    address payable public burnAddress;
    address public registryAddress;
    uint public totalFees; uint public totalBurnt;
    // Public Mappings
    mapping(uint=>uint) public mapEra_Emission;                                             // Era->Emission
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_Units;                              // Era,Days->Units
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_UnitsRemaining;                     // Era,Days->TotalUnits
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_Emission;                           // Era,Days->Emission
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_EmissionRemaining;                  // Era,Days->Emission
    mapping(uint=>mapping(uint=>mapping(address=>uint))) public mapEraDay_MemberUnits;      // Era,Days,Member->Units
    mapping(address=>mapping(uint=>uint[])) public mapMemberEra_Days;                       // Member,Era->Days[]
    mapping(address=>bool) public mapAddress_Excluded;                                      // Address->Excluded
    // Events
    event NewEra(uint era, uint emission, uint time);
    event NewDay(uint era, uint day, uint time);
    event Burn(address indexed payer, address indexed member, uint era, uint day, uint units);
    event Withdrawal(address indexed caller, address indexed member, uint era, uint day, uint value);

    //=====================================CREATION=========================================//
    // Constructor
    constructor() public {
        name = "Vether"; symbol = "VETH"; decimals = 18; 
        coin = 1*10**decimals; totalSupply = 1000000*coin;                                  // Set Supply
        emission = 2048*coin; currentEra = 1; currentDay = 1;                               // Set emission, Era and Day
        genesis = now; daysPerEra = 244; secondsPerDay = 84200;                             // Set genesis time
        burnAddress = 0x0111011001100001011011000111010101100101;                           // Set Burn Address
        registryAddress = 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95;                       // Set UniSwap V1 Mainnet
        
        balanceOf[address(this)] = totalSupply; 
        emit Transfer(burnAddress, address(this), totalSupply);                             // Mint the total supply to this address
        nextEraTime = genesis + (secondsPerDay * daysPerEra);                               // Set next time for coin era
        nextDayTime = genesis + secondsPerDay;                                              // Set next time for coin day
        mapAddress_Excluded[address(this)] = true;                                          // Add this address to be excluded from fees
        mapEra_Emission[currentEra] = emission;                                             // Map Starting emission
        mapEraDay_EmissionRemaining[currentEra][currentDay] = emission; 
        mapEraDay_Emission[currentEra][currentDay] = emission;
    }
    //========================================ERC20=========================================//
    // ERC20 Transfer function
    function transfer(address to, uint value) public override returns (bool success) {
        _transfer(msg.sender, to, value);
        return true;
    }
    // ERC20 Approve function
    function approve(address spender, uint value) public override returns (bool success) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }
    // ERC20 TransferFrom function
    function transferFrom(address from, address to, uint value) public override returns (bool success) {
        require(value <= allowance[from][msg.sender], 'Must not send more than allowance');
        allowance[from][msg.sender] -= value;
        _transfer(from, to, value);
        return true;
    }
    // Internal transfer function which includes the Fee
    function _transfer(address _from, address _to, uint _value) private {
        require(balanceOf[_from] >= _value, 'Must not send more than balance');
        require(balanceOf[_to] + _value >= balanceOf[_to], 'Balance overflow');
        balanceOf[_from] -= _value;
        uint _fee = _getFee(_from, _to, _value);                                            // Get fee amount
        balanceOf[_to] += (_value - _fee);                                                  // Add to receiver
        balanceOf[address(this)] += _fee;                                                   // Add fee to self
        totalFees += _fee;                                                                  // Track fees collected
        emit Transfer(_from, _to, (_value - _fee));                                         // Transfer event
        if (!mapAddress_Excluded[_from] && !mapAddress_Excluded[_to]) {
            emit Transfer(_from, address(this), _fee);                                      // Fee Transfer event
        }
    }
    // Calculate Fee amount
    function _getFee(address _from, address _to, uint _value) private view returns (uint) {
        if (mapAddress_Excluded[_from] || mapAddress_Excluded[_to]) {
           return 0;                                                                        // No fee if excluded
        } else {
            return (_value / 1000);                                                         // Fee amount = 0.1%
        }
    }
    //==================================PROOF-OF-VALUE======================================//
    // Calls when sending Ether
    receive() external payable {
        burnAddress.call.value(msg.value)("");                                              // Burn ether
        _recordBurn(msg.sender, msg.sender, currentEra, currentDay, msg.value);             // Record Burn
    }
    // Burn ether for nominated member
    function burnEtherForMember(address member) external payable {
        burnAddress.call.value(msg.value)("");                                              // Burn ether
        _recordBurn(msg.sender, member, currentEra, currentDay, msg.value);                 // Record Burn
    }
    // Burn ERC-20 Tokens
    function burnTokens(address token, uint amount) external {
        _burnTokens(token, amount, msg.sender);                                             // Record Burn
    }
    // Burn tokens for nominated member
    function burnTokensForMember(address token, uint amount, address member) external {
        _burnTokens(token, amount, member);                                                 // Record Burn
    }
    // Calls when sending Tokens
    function _burnTokens (address _token, uint _amount, address _member) private {
        uint _eth; address _ex = getExchange(_token);                                       // Get exchange
        if (_ex == address(0)) {                                                            // Handle Token without Exchange
            uint _startGas = gasleft();                                                     // Start counting gas
            ERC20(_token).transferFrom(msg.sender, address(this), _amount);                 // Must collect tokens
            ERC20(_token).transfer(burnAddress, _amount);                                   // Burn token
            uint gasPrice = tx.gasprice; uint _endGas = gasleft();                          // Stop counting gas
            uint _gasUsed = (_startGas - _endGas) + 20000;                                  // Calculate gas and add gas overhead
            _eth = _gasUsed * gasPrice;                                                     // Attribute gas burnt
        } else {
            ERC20(_token).transferFrom(msg.sender, address(this), _amount);                 // Must collect tokens
            ERC20(_token).approve(_ex, _amount);                                            // Approve Exchange contract to transfer
            _eth = UniswapExchange(_ex).tokenToEthTransferInput(
                    _amount, 1, block.timestamp + 1000, burnAddress);                       // Uniswap Exchange Transfer function
        }
        _recordBurn(msg.sender, _member, currentEra, currentDay, _eth);
    }
    // Get Token Exchange
    function getExchange(address token ) public view returns (address){
        address exchangeToReturn = address(0);
        address exchangeFound = UniswapFactory(registryAddress).getExchange(token);         // Try UniSwap V1
        if (exchangeFound != address(0)) {
            exchangeToReturn = exchangeFound;
        }
        return exchangeToReturn;
    }
    // Internal - Records burn
    function _recordBurn(address _payer, address _member, uint _era, uint _day, uint _eth) private {
        if (mapEraDay_MemberUnits[_era][_day][_member] == 0){                               // If hasn't contributed to this Day yet
            mapMemberEra_Days[_member][_era].push(_day);                                    // Add it
        }
        mapEraDay_MemberUnits[_era][_day][_member] += _eth;                                 // Add member's share
        mapEraDay_UnitsRemaining[_era][_day] += _eth;                                       // Add to total historicals
        mapEraDay_Units[_era][_day] += _eth;                                                // Add to total outstanding
        totalBurnt += _eth;                                                                 // Add to total burnt
        emit Burn(_payer, _member, _era, _day, _eth);                                       // Burn event
        _updateEmission();                                                                  // Update emission Schedule
    }
    // Allows adding an excluded address, once per Era
    function addExcluded(address excluded) external {                   
        _transfer(msg.sender, address(this), mapEra_Emission[1]/16);                        // Pay fee of 128 Vether
        mapAddress_Excluded[excluded] = true;                                               // Add desired address
    }
    //======================================WITHDRAWAL======================================//
    // Used to efficiently track participation in each era
    function getDaysContributedForEra(address member, uint era) public view returns(uint){
        return mapMemberEra_Days[member][era].length;
    }
    // Call to withdraw a claim
    function withdrawShare(uint era, uint day) external {
        _withdrawShare(era, day, msg.sender);                           
    }
    // Call to withdraw a claim for another member
    function withdrawShareForMember(uint era, uint day, address member) external {
        _withdrawShare(era, day, member);
    }
    // Internal - withdraw function
    function _withdrawShare (uint _era, uint _day, address _member) private {               // Update emission Schedule
        _updateEmission();
        if (_era < currentEra) {                                                            // Allow if in previous Era
            _processWithdrawal(_era, _day, _member);                                        // Process Withdrawal
        } else if (_era == currentEra) {                                                    // Handle if in current Era
            if (_day < currentDay) {                                                        // Allow only if in previous Day
                _processWithdrawal(_era, _day, _member);                                    // Process Withdrawal
            }
        }   
    }
    // Internal - Withdrawal function
    function _processWithdrawal (uint _era, uint _day, address _member) private {
        uint memberUnits = mapEraDay_MemberUnits[_era][_day][_member];                      // Get Member Units
        if (memberUnits == 0) {                                                             // Do nothing if 0 (prevents revert)
        } else {
            uint emissionToTransfer = getEmissionShare(_era, _day, _member);                // Get the emission Share for Member
            mapEraDay_MemberUnits[_era][_day][_member] = 0;                                 // Set to 0 since it will be withdrawn
            mapEraDay_UnitsRemaining[_era][_day] -= memberUnits;                            // Decrement Member Units
            mapEraDay_EmissionRemaining[_era][_day] -= emissionToTransfer;                  // Decrement emission
            _transfer(address(this), _member, emissionToTransfer);                          // ERC20 transfer function
            emit Withdrawal(msg.sender, _member, _era, _day, emissionToTransfer);           // Withdrawal Event
        }
    }
         // Get emission Share function
    function getEmissionShare(uint era, uint day, address member) public view returns (uint emissionShare) {
        uint memberUnits = mapEraDay_MemberUnits[era][day][member];                         // Get Member Units
        if (memberUnits == 0) {
            return 0;                                                                       // If 0, return 0
        } else {
            uint totalUnits = mapEraDay_UnitsRemaining[era][day];                           // Get Total Units
            uint emissionRemaining = mapEraDay_EmissionRemaining[era][day];                 // Get emission remaining for Day
            uint balance = balanceOf[address(this)];                                        // Find remaining balance
            if (emissionRemaining > balance) { emissionRemaining = balance; }               // In case less than required emission
            emissionShare = (emissionRemaining * memberUnits) / totalUnits;                 // Calculate share
            return  emissionShare;                            
        }
    }
    //======================================EMISSION========================================//
    // Internal - Update emission function
    function _updateEmission() private {
        uint _now = now;                                                                    // Find now()
        if (_now >= nextDayTime) {                                                          // If time passed the next Day time
            if (currentDay >= daysPerEra) {                                                 // If time passed the next Era time
                currentEra += 1; currentDay = 0;                                            // Increment Era, reset Day
                nextEraTime = _now + (secondsPerDay * daysPerEra);                          // Set next Era time
                emission = getNextEraEmission();                                            // Get correct emission
                mapEra_Emission[currentEra] = emission;                                     // Map emission to Era
                emit NewEra(currentEra, emission, nextEraTime);                             // Emit Event
            }
            currentDay += 1;                                                                // Increment Day
            nextDayTime = _now + secondsPerDay;                                             // Set next Day time
            emission = getDayEmission();                                                    // Check daily Dmission
            mapEraDay_Emission[currentEra][currentDay] = emission;                          // Map emission to Day
            mapEraDay_EmissionRemaining[currentEra][currentDay] = emission;                 // Map emission to Day
            emit NewDay(currentEra, currentDay, nextDayTime);                               // Emit Event
        }
    }
    // Calculate Era emission
    function getNextEraEmission() public view returns (uint) {
        if (emission > coin) {                                                              // Normal Emission Schedule
            return emission / 2;                                                            // Emissions: 2048 -> 1.0
        } else{                                                                             // Enters Fee Era
            return coin;                                                                    // Return 1.0 from fees
        }
    }
    // Calculate Day emission
    function getDayEmission() public view returns (uint) {
        uint balance = balanceOf[address(this)];                                            // Find remaining balance
        if (balance > emission) {                                                           // Balance is sufficient
            return emission;                                                                // Return emission
        } else {                                                                            // Balance has dropped low
            return balance;                                                                 // Return full balance
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"units","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NewDay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NewEra","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[{"internalType":"address","name":"excluded","type":"address"}],"name":"addExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"burnEtherForMember","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"burnTokensForMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daysPerEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDayEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"era","type":"uint256"}],"name":"getDaysContributedForEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"getEmissionShare","outputs":[{"internalType":"uint256","name":"emissionShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getExchange","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEraEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAddress_Excluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_Emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_EmissionRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"mapEraDay_MemberUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_Units","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_UnitsRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEra_Emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapMemberEra_Days","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextDayTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEraTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"secondsPerDay","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":"totalBurnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"}],"name":"withdrawShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"withdrawShareForMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600681526020017f5665746865720000000000000000000000000000000000000000000000000000815250600090805190602001906200005f92919062000378565b506040518060400160405280600481526020017f564554480000000000000000000000000000000000000000000000000000000081525060019080519060200190620000ad92919062000378565b506012600281905550600254600a0a600102600681905550600654620f424002600381905550600654610800026007819055506001600881905550600160098190555042600c8190555060f4600a81905550620148e8600b81905550730111011001100001011011000111010101100101600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c0a47dfe034b400b47bdad5fecda2621de6c4d95601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a3600a54600b5402600c5401600d81905550600b54600c5401600e819055506001601a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600754601360006008548152602001908152602001600020819055506007546017600060085481526020019081526020016000206000600954815260200190815260200160002081905550600754601660006008548152602001908152602001600020600060095481526020019081526020016000208190555062000427565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003bb57805160ff1916838001178555620003ec565b82800160010185558215620003ec579182015b82811115620003eb578251825591602001919060010190620003ce565b5b509050620003fb9190620003ff565b5090565b6200042491905b808211156200042057600081600090555060010162000406565b5090565b90565b612ad680620004376000396000f3fe60806040526004361061023f5760003560e01c806377217a891161012e578063a9321573116100ab578063dc3222a61161006f578063dc3222a614610e6a578063dd62ed3e14610ed9578063e82481cf14610f5e578063ed9aab5114610f89578063fee05d6214610fe0576102df565b8063a932157314610c89578063bdf7566114610cda578063c31842e114610d53578063d10d7f8c14610db8578063dac679ec14610e11576102df565b8063966ff650116100f2578063966ff65014610b3c578063973628f614610b67578063a5a1ba2114610b92578063a7f0b3de14610beb578063a9059cbb14610c16576102df565b806377217a891461098e578063827c049e14610a075780638454ed2714610a3257806389b86db514610a8157806395d89b4114610aac576102df565b8063313ce567116101bc5780635c9302c9116101805780635c9302c91461082357806360b292591461084e57806363809953146108a757806370a08231146108d257806370d5ae0514610937576102df565b8063313ce567146106705780633ac1c8631461069b5780633db9a7ec146106c65780634bc561821461073f5780634f8eddb2146107ba576102df565b806313114a9d1161020357806313114a9d146104fe57806318160ddd14610529578063227cb58c1461055457806323b872dd146105985780632a423be81461062b576102df565b806306f2bf62146102e457806306fdde0314610375578063090bbb0114610405578063095ea7b3146104305780630d1118ce146104a3576102df565b366102df57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d80600081146102c4576040519150601f19603f3d011682016040523d82523d6000602084013e6102c9565b606091505b5050506102dd33336008546009543461100b565b005b600080fd5b3480156102f057600080fd5b506103336004803603602081101561030757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611254565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038157600080fd5b5061038a61137b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041157600080fd5b5061041a611419565b6040518082815260200191505060405180910390f35b34801561043c57600080fd5b506104896004803603604081101561045357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141f565b604051808215151515815260200191505060405180910390f35b3480156104af57600080fd5b506104fc600480360360408110156104c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611511565b005b34801561050a57600080fd5b50610513611520565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b5061053e611526565b6040518082815260200191505060405180910390f35b6105966004803603602081101561056a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061152c565b005b3480156105a457600080fd5b50610611600480360360608110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c8565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b5061066e6004803603604081101561064e57600080fd5b81019080803590602001909291908035906020019092919050505061173f565b005b34801561067c57600080fd5b5061068561174e565b6040518082815260200191505060405180910390f35b3480156106a757600080fd5b506106b0611754565b6040518082815260200191505060405180910390f35b3480156106d257600080fd5b50610729600480360360608110156106e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061175a565b6040518082815260200191505060405180910390f35b34801561074b57600080fd5b506107b86004803603606081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611795565b005b3480156107c657600080fd5b50610809600480360360208110156107dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a5565b604051808215151515815260200191505060405180910390f35b34801561082f57600080fd5b506108386117c5565b6040518082815260200191505060405180910390f35b34801561085a57600080fd5b506108916004803603604081101561087157600080fd5b8101908080359060200190929190803590602001909291905050506117cb565b6040518082815260200191505060405180910390f35b3480156108b357600080fd5b506108bc6117f0565b6040518082815260200191505060405180910390f35b3480156108de57600080fd5b50610921600480360360208110156108f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f6565b6040518082815260200191505060405180910390f35b34801561094357600080fd5b5061094c61180e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099a57600080fd5b506109f1600480360360608110156109b157600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611834565b6040518082815260200191505060405180910390f35b348015610a1357600080fd5b50610a1c611866565b6040518082815260200191505060405180910390f35b348015610a3e57600080fd5b50610a6b60048036036020811015610a5557600080fd5b810190808035906020019092919050505061186c565b6040518082815260200191505060405180910390f35b348015610a8d57600080fd5b50610a96611884565b6040518082815260200191505060405180910390f35b348015610ab857600080fd5b50610ac16118af565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b01578082015181840152602081019050610ae6565b50505050905090810190601f168015610b2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b4857600080fd5b50610b5161194d565b6040518082815260200191505060405180910390f35b348015610b7357600080fd5b50610b7c611953565b6040518082815260200191505060405180910390f35b348015610b9e57600080fd5b50610bd560048036036040811015610bb557600080fd5b810190808035906020019092919080359060200190929190505050611959565b6040518082815260200191505060405180910390f35b348015610bf757600080fd5b50610c0061197e565b6040518082815260200191505060405180910390f35b348015610c2257600080fd5b50610c6f60048036036040811015610c3957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611984565b604051808215151515815260200191505060405180910390f35b348015610c9557600080fd5b50610cd860048036036020811015610cac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061199b565b005b348015610ce657600080fd5b50610d3d60048036036060811015610cfd57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a1f565b6040518082815260200191505060405180910390f35b348015610d5f57600080fd5b50610db660048036036060811015610d7657600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b58565b005b348015610dc457600080fd5b50610dfb60048036036040811015610ddb57600080fd5b810190808035906020019092919080359060200190929190505050611b68565b6040518082815260200191505060405180910390f35b348015610e1d57600080fd5b50610e5460048036036040811015610e3457600080fd5b810190808035906020019092919080359060200190929190505050611b8d565b6040518082815260200191505060405180910390f35b348015610e7657600080fd5b50610ec360048036036040811015610e8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bb2565b6040518082815260200191505060405180910390f35b348015610ee557600080fd5b50610f4860048036036040811015610efc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c10565b6040518082815260200191505060405180910390f35b348015610f6a57600080fd5b50610f73611c35565b6040518082815260200191505060405180910390f35b348015610f9557600080fd5b50610f9e611c97565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fec57600080fd5b50610ff5611cbd565b6040518082815260200191505060405180910390f35b600060186000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156110ed57601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150555b8060186000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601560008581526020019081526020016000206000848152602001908152602001600020600082825401925050819055508060146000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550806012600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f4cf25bc1d991c17529c25213d3cc0cda295eeaad5f13f361969b12ea48015f9085858560405180848152602001838152602001828152602001935050505060405180910390a361124d611cc3565b5050505050565b600080600090506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306f2bf62856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611371578091505b8192505050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114115780601f106113e657610100808354040283529160200191611411565b820191906000526020600020905b8154815290600101906020018083116113f457829003601f168201915b505050505081565b600d5481565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b61151c828233611e55565b5050565b60115481565b60035481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d80600081146115ac576040519150601f19603f3d011682016040523d82523d6000602084013e6115b1565b606091505b5050506115c533826008546009543461100b565b50565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561169f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a806021913960400191505060405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061173484848461236a565b600190509392505050565b61174a828233612799565b5050565b60025481565b600a5481565b6019602052826000526040600020602052816000526040600020818154811061177f57fe5b9060005260206000200160009250925050505481565b6117a0838383611e55565b505050565b601a6020528060005260406000206000915054906101000a900460ff1681565b60095481565b6014602052816000526040600020602052806000526040600020600091509150505481565b600b5481565b60046020528060005260406000206000915090505481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60075481565b60136020528060005260406000206000915090505481565b600060065460075411156118a65760026007548161189e57fe5b0490506118ac565b60065490505b90565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b505050505081565b60125481565b60085481565b6017602052816000526040600020602052806000526040600020600091509150505481565b600c5481565b600061199133848461236a565b6001905092915050565b6119c433306010601360006001815260200190815260200160002054816119be57fe5b0461236a565b6001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060186000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611a99576000915050611b51565b600060156000878152602001908152602001600020600086815260200190815260200160002054905060006017600088815260200190815260200160002060008781526020019081526020016000205490506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080821115611b3b578091505b8284830281611b4657fe5b049450849450505050505b9392505050565b611b63838383612799565b505050565b6016602052816000526040600020602052806000526040600020600091509150505481565b6015602052816000526040600020602052806000526040600020600091509150505481565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002080549050905092915050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600754811115611c8f57600754915050611c94565b809150505b90565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6000429050600e548110611e5257600a5460095410611d7c5760016008600082825401925050819055506000600981905550600a54600b54028101600d81905550611d0c611884565b600781905550600754601360006008548152602001908152602001600020819055507f9d472bcf372fce01fd875c3296e8e5ae0a08bfca42dedac19e202271ce8f39c5600854600754600d5460405180848152602001838152602001828152602001935050505060405180910390a15b6001600960008282540192505081905550600b548101600e81905550611da0611c35565b600781905550600754601660006008548152602001908152602001600020600060095481526020019081526020016000208190555060075460176000600854815260200190815260200160002060006009548152602001908152602001600020819055507f80fb1b49fb696967f7276660614bc3eda9d5de84b0589b1ba3c8a3997831b9bd600854600954600e5460405180848152602001838152602001828152602001935050505060405180910390a15b50565b600080611e6185611254565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561209c5760005a90508573ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f5857600080fd5b505af1158015611f6c573d6000803e3d6000fd5b505050506040513d6020811015611f8257600080fd5b8101908080519060200190929190505050508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561203d57600080fd5b505af1158015612051573d6000803e3d6000fd5b505050506040513d602081101561206757600080fd5b81019080805190602001909291905050505060003a905060005a90506000614e20828503019050828102955050505050612352565b8473ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561215757600080fd5b505af115801561216b573d6000803e3d6000fd5b505050506040513d602081101561218157600080fd5b8101908080519060200190929190505050508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b382866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561221a57600080fd5b505af115801561222e573d6000803e3d6000fd5b505050506040513d602081101561224457600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff16637237e0318560016103e84201600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050602060405180830381600087803b15801561231457600080fd5b505af1158015612328573d6000803e3d6000fd5b505050506040513d602081101561233e57600080fd5b810190808051906020019092919050505091505b61236333846008546009548661100b565b5050505050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561241f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e63650081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015612515576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f42616c616e6365206f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600061256f8484846127e2565b9050808203600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806011600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a3601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127285750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612793573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b6127a1611cc3565b6008548310156127bb576127b68383836128a9565b6127dd565b6008548314156127dc576009548210156127db576127da8383836128a9565b5b5b5b505050565b6000601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128855750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561289357600090506128a2565b6103e8828161289e57fe5b0490505b9392505050565b600060186000858152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561291d57612a79565b600061292a858585611a1f565b9050600060186000878152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601560008781526020019081526020016000206000868152602001908152602001600020600082825403925050819055508060176000878152602001908152602001600020600086815260200190815260200160002060008282540392505081905550612a0230848361236a565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0373e649c2cd6407bd569d5c66304cce4b4977c361734b811045f83c7bfe8c8b87878560405180848152602001838152602001828152602001935050505060405180910390a3505b5050505056fe4d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e6365a264697066735822122052f4476f906d989576e6d0c9b9a5d172e7ca945547353315e181b9aa535ceee164736f6c63430006040033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806377217a891161012e578063a9321573116100ab578063dc3222a61161006f578063dc3222a614610e6a578063dd62ed3e14610ed9578063e82481cf14610f5e578063ed9aab5114610f89578063fee05d6214610fe0576102df565b8063a932157314610c89578063bdf7566114610cda578063c31842e114610d53578063d10d7f8c14610db8578063dac679ec14610e11576102df565b8063966ff650116100f2578063966ff65014610b3c578063973628f614610b67578063a5a1ba2114610b92578063a7f0b3de14610beb578063a9059cbb14610c16576102df565b806377217a891461098e578063827c049e14610a075780638454ed2714610a3257806389b86db514610a8157806395d89b4114610aac576102df565b8063313ce567116101bc5780635c9302c9116101805780635c9302c91461082357806360b292591461084e57806363809953146108a757806370a08231146108d257806370d5ae0514610937576102df565b8063313ce567146106705780633ac1c8631461069b5780633db9a7ec146106c65780634bc561821461073f5780634f8eddb2146107ba576102df565b806313114a9d1161020357806313114a9d146104fe57806318160ddd14610529578063227cb58c1461055457806323b872dd146105985780632a423be81461062b576102df565b806306f2bf62146102e457806306fdde0314610375578063090bbb0114610405578063095ea7b3146104305780630d1118ce146104a3576102df565b366102df57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d80600081146102c4576040519150601f19603f3d011682016040523d82523d6000602084013e6102c9565b606091505b5050506102dd33336008546009543461100b565b005b600080fd5b3480156102f057600080fd5b506103336004803603602081101561030757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611254565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038157600080fd5b5061038a61137b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ca5780820151818401526020810190506103af565b50505050905090810190601f1680156103f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041157600080fd5b5061041a611419565b6040518082815260200191505060405180910390f35b34801561043c57600080fd5b506104896004803603604081101561045357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141f565b604051808215151515815260200191505060405180910390f35b3480156104af57600080fd5b506104fc600480360360408110156104c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611511565b005b34801561050a57600080fd5b50610513611520565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b5061053e611526565b6040518082815260200191505060405180910390f35b6105966004803603602081101561056a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061152c565b005b3480156105a457600080fd5b50610611600480360360608110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c8565b604051808215151515815260200191505060405180910390f35b34801561063757600080fd5b5061066e6004803603604081101561064e57600080fd5b81019080803590602001909291908035906020019092919050505061173f565b005b34801561067c57600080fd5b5061068561174e565b6040518082815260200191505060405180910390f35b3480156106a757600080fd5b506106b0611754565b6040518082815260200191505060405180910390f35b3480156106d257600080fd5b50610729600480360360608110156106e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061175a565b6040518082815260200191505060405180910390f35b34801561074b57600080fd5b506107b86004803603606081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611795565b005b3480156107c657600080fd5b50610809600480360360208110156107dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a5565b604051808215151515815260200191505060405180910390f35b34801561082f57600080fd5b506108386117c5565b6040518082815260200191505060405180910390f35b34801561085a57600080fd5b506108916004803603604081101561087157600080fd5b8101908080359060200190929190803590602001909291905050506117cb565b6040518082815260200191505060405180910390f35b3480156108b357600080fd5b506108bc6117f0565b6040518082815260200191505060405180910390f35b3480156108de57600080fd5b50610921600480360360208110156108f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f6565b6040518082815260200191505060405180910390f35b34801561094357600080fd5b5061094c61180e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099a57600080fd5b506109f1600480360360608110156109b157600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611834565b6040518082815260200191505060405180910390f35b348015610a1357600080fd5b50610a1c611866565b6040518082815260200191505060405180910390f35b348015610a3e57600080fd5b50610a6b60048036036020811015610a5557600080fd5b810190808035906020019092919050505061186c565b6040518082815260200191505060405180910390f35b348015610a8d57600080fd5b50610a96611884565b6040518082815260200191505060405180910390f35b348015610ab857600080fd5b50610ac16118af565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b01578082015181840152602081019050610ae6565b50505050905090810190601f168015610b2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b4857600080fd5b50610b5161194d565b6040518082815260200191505060405180910390f35b348015610b7357600080fd5b50610b7c611953565b6040518082815260200191505060405180910390f35b348015610b9e57600080fd5b50610bd560048036036040811015610bb557600080fd5b810190808035906020019092919080359060200190929190505050611959565b6040518082815260200191505060405180910390f35b348015610bf757600080fd5b50610c0061197e565b6040518082815260200191505060405180910390f35b348015610c2257600080fd5b50610c6f60048036036040811015610c3957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611984565b604051808215151515815260200191505060405180910390f35b348015610c9557600080fd5b50610cd860048036036020811015610cac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061199b565b005b348015610ce657600080fd5b50610d3d60048036036060811015610cfd57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a1f565b6040518082815260200191505060405180910390f35b348015610d5f57600080fd5b50610db660048036036060811015610d7657600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b58565b005b348015610dc457600080fd5b50610dfb60048036036040811015610ddb57600080fd5b810190808035906020019092919080359060200190929190505050611b68565b6040518082815260200191505060405180910390f35b348015610e1d57600080fd5b50610e5460048036036040811015610e3457600080fd5b810190808035906020019092919080359060200190929190505050611b8d565b6040518082815260200191505060405180910390f35b348015610e7657600080fd5b50610ec360048036036040811015610e8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bb2565b6040518082815260200191505060405180910390f35b348015610ee557600080fd5b50610f4860048036036040811015610efc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c10565b6040518082815260200191505060405180910390f35b348015610f6a57600080fd5b50610f73611c35565b6040518082815260200191505060405180910390f35b348015610f9557600080fd5b50610f9e611c97565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fec57600080fd5b50610ff5611cbd565b6040518082815260200191505060405180910390f35b600060186000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156110ed57601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150555b8060186000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601560008581526020019081526020016000206000848152602001908152602001600020600082825401925050819055508060146000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550806012600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f4cf25bc1d991c17529c25213d3cc0cda295eeaad5f13f361969b12ea48015f9085858560405180848152602001838152602001828152602001935050505060405180910390a361124d611cc3565b5050505050565b600080600090506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306f2bf62856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611371578091505b8192505050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114115780601f106113e657610100808354040283529160200191611411565b820191906000526020600020905b8154815290600101906020018083116113f457829003601f168201915b505050505081565b600d5481565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b61151c828233611e55565b5050565b60115481565b60035481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d80600081146115ac576040519150601f19603f3d011682016040523d82523d6000602084013e6115b1565b606091505b5050506115c533826008546009543461100b565b50565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561169f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a806021913960400191505060405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061173484848461236a565b600190509392505050565b61174a828233612799565b5050565b60025481565b600a5481565b6019602052826000526040600020602052816000526040600020818154811061177f57fe5b9060005260206000200160009250925050505481565b6117a0838383611e55565b505050565b601a6020528060005260406000206000915054906101000a900460ff1681565b60095481565b6014602052816000526040600020602052806000526040600020600091509150505481565b600b5481565b60046020528060005260406000206000915090505481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60075481565b60136020528060005260406000206000915090505481565b600060065460075411156118a65760026007548161189e57fe5b0490506118ac565b60065490505b90565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b505050505081565b60125481565b60085481565b6017602052816000526040600020602052806000526040600020600091509150505481565b600c5481565b600061199133848461236a565b6001905092915050565b6119c433306010601360006001815260200190815260200160002054816119be57fe5b0461236a565b6001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060186000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611a99576000915050611b51565b600060156000878152602001908152602001600020600086815260200190815260200160002054905060006017600088815260200190815260200160002060008781526020019081526020016000205490506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080821115611b3b578091505b8284830281611b4657fe5b049450849450505050505b9392505050565b611b63838383612799565b505050565b6016602052816000526040600020602052806000526040600020600091509150505481565b6015602052816000526040600020602052806000526040600020600091509150505481565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002080549050905092915050565b6005602052816000526040600020602052806000526040600020600091509150505481565b600080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600754811115611c8f57600754915050611c94565b809150505b90565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6000429050600e548110611e5257600a5460095410611d7c5760016008600082825401925050819055506000600981905550600a54600b54028101600d81905550611d0c611884565b600781905550600754601360006008548152602001908152602001600020819055507f9d472bcf372fce01fd875c3296e8e5ae0a08bfca42dedac19e202271ce8f39c5600854600754600d5460405180848152602001838152602001828152602001935050505060405180910390a15b6001600960008282540192505081905550600b548101600e81905550611da0611c35565b600781905550600754601660006008548152602001908152602001600020600060095481526020019081526020016000208190555060075460176000600854815260200190815260200160002060006009548152602001908152602001600020819055507f80fb1b49fb696967f7276660614bc3eda9d5de84b0589b1ba3c8a3997831b9bd600854600954600e5460405180848152602001838152602001828152602001935050505060405180910390a15b50565b600080611e6185611254565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561209c5760005a90508573ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f5857600080fd5b505af1158015611f6c573d6000803e3d6000fd5b505050506040513d6020811015611f8257600080fd5b8101908080519060200190929190505050508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561203d57600080fd5b505af1158015612051573d6000803e3d6000fd5b505050506040513d602081101561206757600080fd5b81019080805190602001909291905050505060003a905060005a90506000614e20828503019050828102955050505050612352565b8473ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561215757600080fd5b505af115801561216b573d6000803e3d6000fd5b505050506040513d602081101561218157600080fd5b8101908080519060200190929190505050508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b382866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561221a57600080fd5b505af115801561222e573d6000803e3d6000fd5b505050506040513d602081101561224457600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff16637237e0318560016103e84201600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050602060405180830381600087803b15801561231457600080fd5b505af1158015612328573d6000803e3d6000fd5b505050506040513d602081101561233e57600080fd5b810190808051906020019092919050505091505b61236333846008546009548661100b565b5050505050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561241f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e63650081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015612515576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f42616c616e6365206f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600061256f8484846127e2565b9050808203600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806011600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a3601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127285750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612793573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b6127a1611cc3565b6008548310156127bb576127b68383836128a9565b6127dd565b6008548314156127dc576009548210156127db576127da8383836128a9565b5b5b5b505050565b6000601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128855750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561289357600090506128a2565b6103e8828161289e57fe5b0490505b9392505050565b600060186000858152602001908152602001600020600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561291d57612a79565b600061292a858585611a1f565b9050600060186000878152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601560008781526020019081526020016000206000868152602001908152602001600020600082825403925050819055508060176000878152602001908152602001600020600086815260200190815260200160002060008282540392505081905550612a0230848361236a565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0373e649c2cd6407bd569d5c66304cce4b4977c361734b811045f83c7bfe8c8b87878560405180848152602001838152602001828152602001935050505060405180910390a3505b5050505056fe4d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e6365a264697066735822122052f4476f906d989576e6d0c9b9a5d172e7ca945547353315e181b9aa535ceee164736f6c63430006040033

Deployed Bytecode Sourcemap

1090:17503:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7288:11;;;;;;;;;;;:16;;7311:9;7288:37;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;7288:37:0;;7395:70;7407:10;7419;7431;;7443;;7455:9;7395:11;:70::i;:::-;1090:17503;;12:1:-1;9;2:12;9922:369:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9922:369:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9922:369:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1148:18;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1148:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1148:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1608:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1608:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4992:216;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4992:216:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4992:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7863:173;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7863:173:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7863:173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1741:21;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1741:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1217:32;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1217:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7546:284;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7546:284:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5250:306;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5250:306:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5250:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12100:134;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12100:134:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12100:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1195:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1195:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1531:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1531:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2505:64;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2505:64:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2505:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8083:198;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8083:198:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8083:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2620:49;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2620:49:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2620:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1502:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1502:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1927:57;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1927:57:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1927:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1555:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1555:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1280:50;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1280:50:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1280:50:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1663:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1663:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2386:81;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2386:81:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2386:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1451:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1451:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1817:42;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1817:42:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1817:42:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17352:544;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17352:544:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1168:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1168:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1168:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1764:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1478;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1478:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2271:69;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2271:69:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2271:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1587:19;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1587:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4801:154;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4801:154:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4801:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11442:309;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11442:309:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11442:309:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14417:1063;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14417:1063:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14417:1063:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12292:128;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12292:128:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12292:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2156:60;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2156:60:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2156:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2039:66;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2039:66:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2039:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11913:148;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11913:148:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11913:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1337:70;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1337:70:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1337:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17933:657;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17933:657:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1704:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1704:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1633:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1633:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10329:1051;10485:1;10439:21;:27;10461:4;10439:27;;;;;;;;;;;:33;10467:4;10439:33;;;;;;;;;;;:42;10473:7;10439:42;;;;;;;;;;;;;;;;:47;10435:238;;;10573:17;:26;10591:7;10573:26;;;;;;;;;;;;;;;:32;10600:4;10573:32;;;;;;;;;;;10611:4;10573:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10573:43:0;;;;;;;;;;;;;;;;;;;10435:238;10729:4;10683:21;:27;10705:4;10683:27;;;;;;;;;;;:33;10711:4;10683:33;;;;;;;;;;;:42;10717:7;10683:42;;;;;;;;;;;;;;;;:50;;;;;;;;;;;10838:4;10798:24;:30;10823:4;10798:30;;;;;;;;;;;:36;10829:4;10798:36;;;;;;;;;;;;:44;;;;;;;;;;;10950:4;10919:15;:21;10935:4;10919:21;;;;;;;;;;;:27;10941:4;10919:27;;;;;;;;;;;;:35;;;;;;;;;;;11054:4;11040:10;;:18;;;;;;;;;;;11173:7;11160:39;;11165:6;11160:39;;;11182:4;11188;11194;11160:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11262:17;:15;:17::i;:::-;10329:1051;;;;;:::o;9922:369::-;9980:7;9999:24;10034:1;9999:37;;10047:21;10086:15;;;;;;;;;;;10071:43;;;10115:5;10071:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10071:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10071:50:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10071:50:0;;;;;;;;;;;;;;;;10047:74;;10187:1;10162:27;;:13;:27;;;10158:92;;10225:13;10206:32;;10158:92;10267:16;10260:23;;;;9922:369;;;:::o;1148:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1608:23::-;;;;:::o;4992:216::-;5063:12;5121:5;5088:9;:21;5098:10;5088:21;;;;;;;;;;;;;;;:30;5110:7;5088:30;;;;;;;;;;;;;;;:38;;;;5163:7;5142:36;;5151:10;5142:36;;;5172:5;5142:36;;;;;;;;;;;;;;;;;;5196:4;5189:11;;4992:216;;;;:::o;7863:173::-;7931:38;7943:5;7950:6;7958:10;7931:11;:38::i;:::-;7863:173;;:::o;1741:21::-;;;;:::o;1217:32::-;;;;:::o;7546:284::-;7618:11;;;;;;;;;;;:16;;7641:9;7618:37;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;7618:37:0;;7725:66;7737:10;7749:6;7757:10;;7769;;7781:9;7725:11;:66::i;:::-;7546:284;:::o;5250:306::-;5335:12;5377:9;:15;5387:4;5377:15;;;;;;;;;;;;;;;:27;5393:10;5377:27;;;;;;;;;;;;;;;;5368:5;:36;;5360:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:5;5453:9;:15;5463:4;5453:15;;;;;;;;;;;;;;;:27;5469:10;5453:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;5500:26;5510:4;5516:2;5520:5;5500:9;:26::i;:::-;5544:4;5537:11;;5250:306;;;;;:::o;12100:134::-;12163:36;12178:3;12183;12188:10;12163:14;:36::i;:::-;12100:134;;:::o;1195:20::-;;;;:::o;1531:22::-;;;;:::o;2505:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8083:198::-;8176:34;8188:5;8195:6;8203;8176:11;:34::i;:::-;8083:198;;;:::o;2620:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;1502:22::-;;;;:::o;1927:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1555:25::-;;;;:::o;1280:50::-;;;;;;;;;;;;;;;;;:::o;1663:34::-;;;;;;;;;;;;;:::o;2386:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1451:20::-;;;;:::o;1817:42::-;;;;;;;;;;;;;;;;;:::o;17352:544::-;17403:4;17435;;17424:8;;:15;17420:469;;;17563:1;17552:8;;:12;;;;;;17545:19;;;;17420:469;17782:4;;17775:11;;17352:544;;:::o;1168:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1764:22::-;;;;:::o;1478:::-;;;;:::o;2271:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1587:19::-;;;;:::o;4801:154::-;4868:12;4893:32;4903:10;4915:2;4919:5;4893:9;:32::i;:::-;4943:4;4936:11;;4801:154;;;;:::o;11442:309::-;11520:59;11530:10;11550:4;11576:2;11557:15;:18;11573:1;11557:18;;;;;;;;;;;;:21;;;;;;11520:9;:59::i;:::-;11670:4;11638:19;:29;11658:8;11638:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;11442:309;:::o;14417:1063::-;14500:18;14531:16;14550:21;:26;14572:3;14550:26;;;;;;;;;;;:31;14577:3;14550:31;;;;;;;;;;;:39;14582:6;14550:39;;;;;;;;;;;;;;;;14531:58;;14663:1;14648:11;:16;14644:829;;;14688:1;14681:8;;;;;14644:829;14810:15;14828:24;:29;14853:3;14828:29;;;;;;;;;;;:34;14858:3;14828:34;;;;;;;;;;;;14810:52;;14922:22;14947:27;:32;14975:3;14947:32;;;;;;;;;;;:37;14980:3;14947:37;;;;;;;;;;;;14922:62;;15049:12;15064:9;:24;15082:4;15064:24;;;;;;;;;;;;;;;;15049:39;;15192:7;15172:17;:27;15168:65;;;15223:7;15203:27;;15168:65;15352:10;15337:11;15317:17;:31;15316:46;;;;;;15300:62;;15420:13;15412:21;;;;;;14417:1063;;;;;;:::o;12292:128::-;12380:32;12395:3;12400;12405:6;12380:14;:32::i;:::-;12292:128;;;:::o;2156:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2039:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11913:148::-;11993:4;12016:17;:25;12034:6;12016:25;;;;;;;;;;;;;;;:30;12042:3;12016:30;;;;;;;;;;;:37;;;;12009:44;;11913:148;;;;:::o;1337:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17933:657::-;17980:4;17997:12;18012:9;:24;18030:4;18012:24;;;;;;;;;;;;;;;;17997:39;;18130:8;;18120:7;:18;18116:467;;;18245:8;;18238:15;;;;;18116:467;18477:7;18470:14;;;17933:657;;:::o;1704:30::-;;;;;;;;;;;;;:::o;1633:23::-;;;;:::o;15626:1689::-;15672:9;15684:3;15672:15;;15791:11;;15783:4;:19;15779:1529;;15930:10;;15916;;:24;15912:705;;16059:1;16045:10;;:15;;;;;;;;;;;16075:1;16062:10;:14;;;;16204:10;;16188:13;;:26;16180:4;:35;16166:11;:49;;;;16291:20;:18;:20::i;:::-;16280:8;:31;;;;16427:8;;16397:15;:27;16413:10;;16397:27;;;;;;;;;;;:38;;;;16518:41;16525:10;;16537:8;;16547:11;;16518:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15912:705;16645:1;16631:10;;:15;;;;;;;;;;;16762:13;;16755:4;:20;16741:11;:34;;;;16866:16;:14;:16::i;:::-;16855:8;:27;;;;17017:8;;16972:18;:30;16991:10;;16972:30;;;;;;;;;;;:42;17003:10;;16972:42;;;;;;;;;;;:53;;;;17142:8;;17088:27;:39;17116:10;;17088:39;;;;;;;;;;;:51;17128:10;;17088:51;;;;;;;;;;;:62;;;;17209:43;17216:10;;17228;;17240:11;;17209:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15779:1529;15626:1689;:::o;8321:1568::-;8409:9;8420:11;8434:19;8446:6;8434:11;:19::i;:::-;8420:33;;8537:1;8522:17;;:3;:17;;;8518:1291;;;8648:14;8665:9;8648:26;;8769:6;8763:26;;;8790:10;8810:4;8817:7;8763:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8763:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8763:62:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8763:62:0;;;;;;;;;;;;;;;;;8885:6;8879:22;;;8902:11;;;;;;;;;;;8915:7;8879:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8879:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8879:44:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8879:44:0;;;;;;;;;;;;;;;;;8986:13;9002:11;8986:27;;9015:12;9030:9;9015:24;;9100:13;9140:5;9129:7;9117:9;:19;9116:29;9100:45;;9249:8;9238;:19;9231:26;;8518:1291;;;;;;;9371:6;9365:26;;;9392:10;9412:4;9419:7;9365:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9365:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9365:62:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9365:62:0;;;;;;;;;;;;;;;;;9487:6;9481:21;;;9503:3;9508:7;9481:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9481:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9481:35:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9481:35:0;;;;;;;;;;;;;;;;;9638:3;9622:44;;;9689:7;9698:1;9719:4;9701:15;:22;9725:11;;;;;;;;;;;9622:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9622:115:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9622:115:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9622:115:0;;;;;;;;;;;;;;;;9615:122;;8518:1291;9819:62;9831:10;9843:7;9852:10;;9864;;9876:4;9819:11;:62::i;:::-;8321:1568;;;;;:::o;5620:1037::-;5727:6;5707:9;:16;5717:5;5707:16;;;;;;;;;;;;;;;;:26;;5699:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5815:9;:14;5825:3;5815:14;;;;;;;;;;;;;;;;5805:6;5788:9;:14;5798:3;5788:14;;;;;;;;;;;;;;;;:23;:41;;5780:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5881:6;5861:9;:16;5871:5;5861:16;;;;;;;;;;;;;;;;:26;;;;;;;;;;;5898:9;5910:27;5918:5;5925:3;5930:6;5910:7;:27::i;:::-;5898:39;;6037:4;6028:6;:13;6009:9;:14;6019:3;6009:14;;;;;;;;;;;;;;;;:33;;;;;;;;;;;6149:4;6121:9;:24;6139:4;6121:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;6246:4;6233:9;;:17;;;;;;;;;;;6371:3;6355:37;;6364:5;6355:37;;;6386:4;6377:6;:13;6355:37;;;;;;;;;;;;;;;;;;6466:19;:26;6486:5;6466:26;;;;;;;;;;;;;;;;;;;;;;;;;6465:27;:56;;;;;6497:19;:24;6517:3;6497:24;;;;;;;;;;;;;;;;;;;;;;;;;6496:25;6465:56;6461:189;;;6567:4;6543:36;;6552:5;6543:36;;;6574:4;6543:36;;;;;;;;;;;;;;;;;;6461:189;5620:1037;;;;:::o;12463:777::-;12588:17;:15;:17::i;:::-;12627:10;;12620:4;:17;12616:614;;;12741:39;12760:4;12766;12772:7;12741:18;:39::i;:::-;12616:614;;;12871:10;;12863:4;:18;12859:371;;;12988:10;;12981:4;:17;12977:242;;;13107:39;13126:4;13132;13138:7;13107:18;:39::i;:::-;12977:242;12859:371;12616:614;12463:777;;;:::o;6692:423::-;6772:4;6793:19;:26;6813:5;6793:26;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;;6823:19;:24;6843:3;6823:24;;;;;;;;;;;;;;;;;;;;;;;;;6793:54;6789:319;;;6870:1;6863:8;;;;6789:319;7014:4;7005:6;:13;;;;;;6997:22;;6692:423;;;;;;:::o;13285:1085::-;13372:16;13391:21;:27;13413:4;13391:27;;;;;;;;;;;:33;13419:4;13391:33;;;;;;;;;;;:42;13425:7;13391:42;;;;;;;;;;;;;;;;13372:61;;13504:1;13489:11;:16;13485:878;;;;;;13637:23;13663:37;13680:4;13686;13692:7;13663:16;:37::i;:::-;13637:63;;13812:1;13767:21;:27;13789:4;13767:27;;;;;;;;;;;:33;13795:4;13767:33;;;;;;;;;;;:42;13801:7;13767:42;;;;;;;;;;;;;;;:46;;;;13939:11;13899:24;:30;13924:4;13899:30;;;;;;;;;;;:36;13930:4;13899:36;;;;;;;;;;;;:51;;;;;;;;;;;14061:18;14018:27;:33;14046:4;14018:33;;;;;;;;;;;:39;14052:4;14018:39;;;;;;;;;;;;:61;;;;;;;;;;;14133:53;14151:4;14158:7;14167:18;14133:9;:53::i;:::-;14281:7;14258:63;;14269:10;14258:63;;;14290:4;14296;14302:18;14258:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13485:878;;13285:1085;;;;:::o

Swarm Source

ipfs://52f4476f906d989576e6d0c9b9a5d172e7ca945547353315e181b9aa535ceee1

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

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