ETH Price: $2,014.54 (+1.34%)

Contract

0x3e58fC79D1EF7C79c0e1B0DA1C8FB7C2F09A08f3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Admin Withdraw99441552020-04-25 21:50:052163 days ago1587851405IN
0x3e58fC79...2F09A08f3
0 ETH0.000059471.2
Close Syndicate99372972020-04-24 20:12:192164 days ago1587759139IN
0x3e58fC79...2F09A08f3
0 ETH0.000132442
User Withdraw99246592020-04-22 21:23:542166 days ago1587590634IN
0x3e58fC79...2F09A08f3
0 ETH0.000207372
User Withdraw99246192020-04-22 21:14:532166 days ago1587590093IN
0x3e58fC79...2F09A08f3
0 ETH0.000147372
Display Results99245992020-04-22 21:09:352166 days ago1587589775IN
0x3e58fC79...2F09A08f3
0 ETH0.000301292
Display Results99245992020-04-22 21:09:352166 days ago1587589775IN
0x3e58fC79...2F09A08f3
0 ETH0.000301292
Announce Closure99176352020-04-21 19:11:072167 days ago1587496267IN
0x3e58fC79...2F09A08f3
0 ETH0.000086482
Set New Agreemen...97583442020-03-28 6:30:172191 days ago1585377017IN
0x3e58fC79...2F09A08f3
0 ETH0.00009672
Set New Agreemen...97583442020-03-28 6:30:172191 days ago1585377017IN
0x3e58fC79...2F09A08f3
0 ETH0.00009672
Display Results97520132020-03-27 7:06:162192 days ago1585292776IN
0x3e58fC79...2F09A08f3
0 ETH0.000150641
Display Results97520132020-03-27 7:06:162192 days ago1585292776IN
0x3e58fC79...2F09A08f3
0 ETH0.000150641
Set New Agreemen...97518762020-03-27 6:36:402192 days ago1585291000IN
0x3e58fC79...2F09A08f3
0 ETH0.00009672
Set New Agreemen...97518762020-03-27 6:36:402192 days ago1585291000IN
0x3e58fC79...2F09A08f3
0 ETH0.00010512
Display Results96487582020-03-11 7:04:002208 days ago1583910240IN
0x3e58fC79...2F09A08f3
0 ETH0.000150641
Display Results96487582020-03-11 7:04:002208 days ago1583910240IN
0x3e58fC79...2F09A08f3
0 ETH0.000150641
Set New Agreemen...96486092020-03-11 6:30:192208 days ago1583908219IN
0x3e58fC79...2F09A08f3
0 ETH0.00010512
Set New Agreemen...96486092020-03-11 6:30:192208 days ago1583908219IN
0x3e58fC79...2F09A08f3
0 ETH0.00014352
Display Results96424042020-03-10 7:29:512209 days ago1583825391IN
0x3e58fC79...2F09A08f3
0 ETH0.000301292
Display Results96424042020-03-10 7:29:512209 days ago1583825391IN
0x3e58fC79...2F09A08f3
0 ETH0.000378182
Set New Agreemen...96424042020-03-10 7:29:512209 days ago1583825391IN
0x3e58fC79...2F09A08f3
0 ETH0.000056751
Set New Agreemen...96424042020-03-10 7:29:512209 days ago1583825391IN
0x3e58fC79...2F09A08f3
0 ETH0.000052551
Display Results96358032020-03-09 7:03:402210 days ago1583737420IN
0x3e58fC79...2F09A08f3
0 ETH0.000945465
Display Results96358032020-03-09 7:03:402210 days ago1583737420IN
0x3e58fC79...2F09A08f3
0 ETH0.000753225
Set New Agreemen...96356682020-03-09 6:31:192210 days ago1583735479IN
0x3e58fC79...2F09A08f3
0 ETH0.0005675210
Set New Agreemen...96356682020-03-09 6:31:192210 days ago1583735479IN
0x3e58fC79...2F09A08f3
0 ETH0.0007175210
View all transactions

View more zero value Internal Transactions in Advanced View mode

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Syndicate

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

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

pragma solidity 0.5.11;

//Safe math libarry.
library SafeMath {
	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
}

//EURS stablecoin interface
contract EURSToken {
    function transferFrom(address, address, uint256) public returns(bool);
    function transfer(address, uint256) public returns(bool);
}

//BGBP stablecoin interface
contract BGBPToken {
    function transferFrom(address, address, uint256) public returns(bool);
    function transfer(address, uint256) public returns(bool);
}

//USDT stablecoin interface
contract USDTToken {
    function transferFrom(address, address, uint256) public returns(bool);
    function transfer(address, uint256) public returns(bool);
}

//Main contract.
contract Syndicate {

	//Math data.
	using SafeMath for uint;   //decrlare safe math library usage

	//Stablecoin referrence data.
	address public eursAddress = 0xdB25f211AB05b1c97D595516F45794528a807ad8;   //EURS stablecoin for EUR currency
	address public bgbpAddress = 0xC9a2C4868F0f96fAaa739b59934Dc9cB304112ec;   //BGBP stablecoin for GBP currency
	address public usdtAddress = 0xdAC17F958D2ee523a2206206994597C13D831ec7;   //USDT stablecoin for USD currency
	uint256 public decimalCorrection;   //additional decimals (beyond cents/pennies) used in stablecoin, options = 1 (EURS), 1000000 (BGBP), 10000 (USDT)

    //Admin data.
    address public admin;   //admin's address
    uint256 public adminShare = 40;   //admin's share percent from profit generated by syndicate
    uint256 public adminProfit = 0;   //total net profit which belongs to admin
    
    //Angel data.
    address public angel;   //angel's (syndicate owner's) address
    uint256 public angelInvestment = 0;   //total amount of money angel has invested
    uint256 public angelProfit = 0;   //total net profit which belongs to angel

    //Syndicate data.
    uint256 public pendingSyndicateBalance = 0;   //syndicate's new balance after settling latest bets (not enforced by contract yet)
    int256 public pendingSyndicateProfit = 0;   //syndicate's new profit after settling latest bets (not enforced by contract yet)
    uint256 public syndicateBalance = 0;   //syndicate's current, contract enforced balance
    int256 public syndicateProfit = 0;   //syndicate's current, contract enforced profit
    uint256 public distributionWaitTime;   //time (30 days) which needs to pass before monthly earnings are distributed among angel and admin
    uint256 public closureWaitTime;   //time (47h) which angel needs to wait before he/she can close syndicate after closure announcement
    
    //User data.
    struct Agreement {
        uint256 lsBalance;   //user's current, contract enforced LoopSyndicate balance
        uint256 lsInplay;   //user's current, contract enforced LoopSyndicate inplay balance
        uint256 bookieBalance;   //user's bookmakers current, contract enforced total balance
        uint256 bookieInplay;   //user's bookmakers current, contract enforced total inplay balance
        uint256 userBankroll;   //user's current, contract enforced total capital
        uint256 userProfit;   //total guaranteed profit user generated from placing bets and enforced by contract
    }
    mapping(address => Agreement) public userAgreements;
    
    //Betting data.
    struct Betting {
        uint256 lsBalance;   //user's LoopSyndicate new balance after settling latest bets placed by user (not enforced by contract yet)
        uint256 lsInplay;   //user's LoopSyndicate new inplay balance after settling latest bets placed by user (not enforced by contract yet)
        uint256 bookieBalance;   //user's bookmakers new total balance after settling latest bets placed by user (not enforced by contract yet)
        uint256 bookieInplay;   //user's bookmakers new total inplay balance after settling latest bets placed by user (not enforced by contract yet)
        uint256 userBankroll;   //user's new total capital after settling latest bets placed by user (not enforced by contract yet)
        uint256 userProfit;   //user's new guaranteed profit after settling latest bets placed by user (not enforced by contract yet)
        uint256 pubTime;   //publishing time of latest betting data
    }
    mapping(address => Betting) public bettingResults;

    /*!new betting result's won't take actual effect, i.e. being set in "Agreement" data, if either user or angel 
    rejects this new betting result's data proposed by admin by breaking contract!*/
    
    //Contract agreements status data.
    bool public syndicateActive = true;   //angel's consent to "buy" users' value bets and in exchange provide guaranteed profit to them
    mapping(address => bool) public brokenAgreements;   //list of users who broke contract agreement from their side
    
    //Set admin and angel addresses as well as currency choice on smart contract deployment.
    constructor(address _angel, uint256 _currency) public {
        //Admin and angel addresses.
        admin = msg.sender;
        angel = _angel;
        //EUR
        if (_currency == 1) {
            decimalCorrection = 1;
        }
        //GBP
        else if (_currency == 2) {
            decimalCorrection = 1000000;
        }
        //USD
        else if (_currency == 3) {
            decimalCorrection = 10000;
        }
    }

    //Create admin modifier to ensure that only admin can call certain functions.
    modifier onlyAdmin() {
        require(msg.sender == admin, "only admin allowed to call this function");
        _;
    }

    //Event which is being emitted when user or angel breaks contract agreement.
    event AgreementBreak (
        address _from
    );

    //Event which is being emitted when angel announces his/her syndicate closure.
    event ClosureAnnouncement (
        address _from
    );

    //Call EURS smart contract transferFrom function.
    function eursTransferFrom(address _from, address _to, uint256 _coins) internal {
    	EURSToken stablecoin = EURSToken(eursAddress);
    	require(stablecoin.transferFrom(_from, _to, _coins), "error at EURS stablecoin transferFrom function");
    }

    //Call BGBP smart contract transferFrom function.
    function bgbpTransferFrom(address _from, address _to, uint256 _coins) internal {
    	BGBPToken stablecoin = BGBPToken(bgbpAddress);
    	require(stablecoin.transferFrom(_from, _to, _coins), "error at BGBP stablecoin transferFrom function");
    }

    //Call USDT smart contract transferFrom function.
    function usdtTransferFrom(address _from, address _to, uint256 _coins) internal {
    	USDTToken stablecoin = USDTToken(usdtAddress);
    	require(stablecoin.transferFrom(_from, _to, _coins), "error at USDT stablecoin transferFrom function");
    }

    //Call EURS smart contract transfer function.
    function eursTransfer(address _to, uint256 _coins) internal {
    	EURSToken stablecoin = EURSToken(eursAddress);
    	require(stablecoin.transfer(_to, _coins), "error at EURS stablecoin transfer function");
    }

    //Call BGBP smart contract transfer function.
    function bgbpTransfer(address _to, uint256 _coins) internal {
    	BGBPToken stablecoin = BGBPToken(bgbpAddress);
    	require(stablecoin.transfer(_to, _coins), "error at BGBP stablecoin transfer function");
    }

    //Call USDT smart contract transfer function.
    function usdtTransfer(address _to, uint256 _coins) internal {
    	USDTToken stablecoin = USDTToken(usdtAddress);
    	require(stablecoin.transfer(_to, _coins), "error at USDT stablecoin transfer function");
    }
    
    //Allow angel to deposit into syndicate.
    function angelDeposit(address _from, uint256 _value) public {
        //Make sure angel's deposit value is at least 100 units (cents/pennies).
        require(_value >= 100, "deposit value less than minimum (100 cents/pennies)");
        //Make sure angel address matches.
        require(_from == angel, "from address does not match angel address");
        //Convert cents/pennies into coins.
        uint256 _coins = decimalCorrection.mul(_value);
        //Make transfer from angel's private wallet into Syndicate contract and make sure transfer was successful.
        address _to = address(this);
        if (decimalCorrection == 1) {
        	eursTransferFrom(_from, _to, _coins);
        }
        else if (decimalCorrection == 1000000) {
        	bgbpTransferFrom(_from, _to, _coins);
        }
        else if (decimalCorrection == 10000) {
        	usdtTransferFrom(_from, _to, _coins);
        }
        //Update syndicate's balance value.
        syndicateBalance += _value;
        pendingSyndicateBalance += _value;
        //Update angel's investment value.
        angelInvestment += _value;
    }
    
    //Allow user to make deposit.
    function userDeposit(address _from, uint256 _value) public {
        //Make sure syndicate is still active.
        require(syndicateActive, "angel has closed this syndicate");
        //Make sure user's deposit value is at least 100 units (cents/pennies).
        require(_value >= 100, "deposit value must be minimum 100 cents/pennies");
        //Convert cents/pennies into coins.
        uint256 _coins = decimalCorrection.mul(_value);
        //Make deposit and make sure it was successful.
        address _to = address(this);
        if (decimalCorrection == 1) {
        	eursTransferFrom(_from, _to, _coins);
        }
        else if (decimalCorrection == 1000000) {
        	bgbpTransferFrom(_from, _to, _coins);
        }
        else if (decimalCorrection == 10000) {
        	usdtTransferFrom(_from, _to, _coins);
        }
        //Update user's balance.
        Agreement memory _agreement = userAgreements[_from];
        _agreement.lsBalance = _agreement.lsBalance + _value;
        userAgreements[_from] = _agreement;
        //Update user's betting results because of new deposit.
        Betting memory _result = bettingResults[_from];
        _result.lsBalance = _result.lsBalance + _value;
        bettingResults[_from] = _result;
    }
    
    //Display user's latest betting results.
    function displayResults(address _user, uint256 _lsBalance, uint256 _lsInplay, uint256 _bookieBalance, uint256 _bookieInplay, uint256 _userBankroll, uint256 _userProfit) public onlyAdmin {
        //Make sure syndicate is still active.
        require(syndicateActive, "angel has closed this syndicate");
        //Make sure user has active contract agreement.
        require(!(brokenAgreements[_user]), "user has broken agreement");
        //Make sure user has balance (if user does not have balance then betting was not possible).
        Agreement memory _agreement = userAgreements[_user];
        require(_agreement.lsBalance > 0 || _agreement.lsInplay > 0, "user does not have balance");
        //Make sure previous betting results were applied.
        Betting memory _result = bettingResults[_user];
        require(_result.pubTime == 0, "previous betting results were not applied");
        //Calculate syndicate's pending profit or loss based on new betting results.
       	uint256 _prevTotalLoopBalance = _result.lsBalance + _result.lsInplay;
       	uint256 _newTotalLoopBalance = _lsBalance + _lsInplay;
        int256 _profit = int(_prevTotalLoopBalance) - int(_newTotalLoopBalance);
        //Update syndicate's pending balance and profit.
        pendingSyndicateBalance += uint(_profit);
        pendingSyndicateProfit += _profit;
        //Set new betting results data.
        _result.lsBalance = _lsBalance;
        _result.lsInplay = _lsInplay;
        _result.bookieBalance = _bookieBalance;
        _result.bookieInplay = _bookieInplay;
        _result.userBankroll = _userBankroll;
        _result.userProfit = _userProfit;
        _result.pubTime = block.timestamp;
        bettingResults[_user] = _result;
    }

    //Allow angel to break his/her syndicate's contract in case of disagreement.
    function breakSyndicate() public {
        //Make sure angel is calling this function.
        require(msg.sender == angel, "msg sender address does not match angel address");
        /*By breaking contract agreement angel rejects any changes to be made to syndicate's balance value but in exchange all 
        profit angel generated will be wiped out as a punishment and 10000 cents/pennies will be payed by angel as 
        a fine. Admin's profit share is also wiped out.*/
        syndicateActive = false;
        //Apply 10000 cents/pennies fine to angel.
        if (syndicateBalance >= 10000) {
            syndicateBalance -= 10000;
            syndicateProfit -= 10000;
        }
        else {
            syndicateBalance = 0;
            syndicateProfit = 0;
        }
        //Wipe out all profit if such exists.
        if (syndicateProfit > 0) {
            syndicateBalance -= uint(syndicateProfit);
            syndicateProfit = 0;
        }
        //Emit signal when angel breaks agreement.
        emit AgreementBreak(msg.sender);
    }
    
    //Allow user to break contract agreement.
    function breakAgreement() public {
        /*By setting broken agreements to true user rejects any changes to be made to his/her current Agreement 
        data and agrees to stop receiving guaranteed profit service.*/
        brokenAgreements[msg.sender] = true;
        //Emit signal when user breaks agreement.
        emit AgreementBreak(msg.sender);
    }
    
    //Confirm latest user betting results as new contract agreement.
    function setNewAgreement(address _user) public onlyAdmin returns(bool) {
        //Make sure syndicate is still active.
        require(syndicateActive, "angel has closed this syndicate");
        //Make sure user has active contract agreement.
        require(!(brokenAgreements[_user]), "user has broken agreement");
        //Make sure user has balance (if user does not have balance then betting was not possible).
        Agreement memory _agreement = userAgreements[_user];
        require(_agreement.lsBalance > 0 || _agreement.lsInplay > 0, "user does not have balance");
        /*Make sure 23h passed since betting results were displayed where user had enough time to reject betting 
        results and break agreement.*/
        Betting memory _result = bettingResults[_user];
        uint256 _waitLimit = _result.pubTime + 82800;   //there are 82,800 seconds in 23h
        if (_result.pubTime == 0 || block.timestamp < _waitLimit) {
            return false;
        }
        //Calculate syndicate's profit or loss based on new betting results.
       	uint256 _prevTotalLoopBalance = _agreement.lsBalance + _agreement.lsInplay;
       	uint256 _newTotalLoopBalance = _result.lsBalance + _result.lsInplay;
        int256 _profit = int(_prevTotalLoopBalance) - int(_newTotalLoopBalance);
        //Update syndicate's balance and profit.
        syndicateBalance += uint(_profit);
        syndicateProfit += _profit;
        //Set user's new accepted agreement data.
        _agreement.lsBalance = _result.lsBalance;
        _agreement.lsInplay = _result.lsInplay;
        _agreement.bookieBalance = _result.bookieBalance;
        _agreement.bookieInplay = _result.bookieInplay;
        _agreement.userBankroll = _result.userBankroll;
        _agreement.userProfit = _result.userProfit;
        userAgreements[_user] = _agreement;
        //Reset user's latest betting results.
        bettingResults[_user] = Betting(0, 0, 0, 0, 0, 0, 0);
        return true;
    }
    
    //Allow user to withdraw his/her balance.
    function userWithdraw(uint256 _value) public {
        Agreement memory _agreement = userAgreements[msg.sender];
        Betting memory _result = bettingResults[msg.sender];
        /*If user broke contract agreement then void all active bets and allow him/her to withdraw balance as 
        recorded in last valid agreement.*/
        if (brokenAgreements[msg.sender]) {
            _value = _agreement.lsBalance + _agreement.lsInplay;
            _agreement.lsBalance = _agreement.lsBalance + _agreement.lsInplay;
            _agreement.lsInplay = 0;
        }
        //Otherwise validate withdrawal request.
        else {
        	//Make sure user's accepted agreement balance matches user's pending agreement balance.
        	require(_agreement.lsBalance == _result.lsBalance);
        	require(_agreement.lsInplay == _result.lsInplay);
            //Make sure user has enough balance.
            require(_agreement.lsBalance >= _value, "user balance is less than withdrawal value");
        }
        //Convert cents/pennies into coins.
        uint256 _coins = decimalCorrection.mul(_value);
        //Make transfer from contract into user's private wallet and make sure it was successful.
        if (decimalCorrection == 1) {
        	eursTransfer(msg.sender, _coins);
        }
        else if (decimalCorrection == 1000000) {
        	bgbpTransfer(msg.sender, _coins);
        }
        else if (decimalCorrection == 10000) {
        	usdtTransfer(msg.sender, _coins);
        }
        //Update user's balance.
        _agreement.lsBalance = _agreement.lsBalance - _value;
        userAgreements[msg.sender] = _agreement;
        //Set user's latest betting result's data same as agreement data because of new withdrawal.
        _result.lsBalance = _agreement.lsBalance;
        bettingResults[msg.sender] = _result;
    }
    
    //Distribute monthly earnings.
    function distributeEarnings() public returns(bool) {
        //Make sure 30 days passed since last earnings distribution time.
        require(block.timestamp > distributionWaitTime, "month did not pass since last earnings distribution");
        //Make sure profit is at least 100 cents/pennies, otherwise don't bother to distribute earnings.
        if (syndicateProfit < 100) {
            return false;
        }
        //Let admin receive his share.
        uint256 _share = uint(syndicateProfit) * adminShare / 100;
        adminProfit += _share;
        syndicateBalance -= _share;
        pendingSyndicateBalance -= _share;
        syndicateProfit -= int(_share);
        //Let angel to receive the rest.
        angelProfit += uint(syndicateProfit);
        syndicateBalance -= uint(syndicateProfit);
        pendingSyndicateBalance -= uint(syndicateProfit);
        syndicateProfit = 0;
        //Reset distribution wait time.
        distributionWaitTime = block.timestamp + 2592000;   //there are 2,592,000 seconds in 30 days
        return true;
    }
    
    //Allow angel to withdraw profit.
    function angelWithdraw() public {
        //Make sure angel is making withdrawal.
        require(msg.sender == angel, "msg sender address does not match angel address");
        //Make sure angel has profit.
        require(angelProfit > 0, "angel does not have profit to withdraw");
        //Convert cents/pennies into coins.
        uint256 _coins = decimalCorrection * angelProfit;
        //Make transfer.
        if (decimalCorrection == 1) {
        	eursTransfer(msg.sender, _coins);
        }
        else if (decimalCorrection == 1000000) {
        	bgbpTransfer(msg.sender, _coins);
        }
        else if (decimalCorrection == 10000) {
        	usdtTransfer(msg.sender, _coins);
        }
        //Update angel's profit value.
        angelProfit = 0;
    }
    
    //Allow angel to reinvest profit back into syndicate.
    function angelReinvest() public {
        //Make sure angel is reinvesting profit.
        require(msg.sender == angel, "msg sender address does not match angel address");
        //Make sure angel has profit.
        require(angelProfit > 0, "angel does not have profit to reinvest");
        //Update syndicate balance value.
        syndicateBalance += angelProfit;
        pendingSyndicateBalance += angelProfit;
        //Set angel profit to zero.
        angelProfit = 0;
    }
    
    //Allow admin to withdraw profit.
    function adminWithdraw(address _to) public onlyAdmin {
        //Make sure admin has profit.
        require(adminProfit > 0, "admin does not have profit share");
        //Convert cents/pennies into coins.
        uint256 _coins = decimalCorrection * adminProfit;
        //Make transfe.
        if (decimalCorrection == 1) {
        	eursTransfer(_to, _coins);
        }
        else if (decimalCorrection == 1000000) {
        	bgbpTransfer(_to, _coins);
        }
        else if (decimalCorrection == 10000) {
        	usdtTransfer(_to, _coins);
        }
        //Update admin's profit value.
        adminProfit = 0;
    }

    //Announce syndicate's closure.
    function announceClosure() public {
        //Make sure angel is making announcement.
        require(msg.sender == angel, "msg sender address does not match angel address");
        //Allow closure after 47 hours from current time.
        closureWaitTime = block.timestamp + 169200;   //there are 169,200 seconds in 47 hours
        //Emit signal when angel announces sydicate's closure.
        emit ClosureAnnouncement(msg.sender);
    }

    //Close angel's syndicate.
    function closeSyndicate() public {
        //Make sure 2 days passed since closure announcement.
        require(block.timestamp > closureWaitTime && closureWaitTime != 0, "2 days did not pass since closure announcement");
        //Subtract admin share from profit, if such exists.
        if (syndicateProfit >= 100) {
            uint256 _share = uint(syndicateProfit) * adminShare / 100;
            adminProfit += _share;
            syndicateBalance -= _share;
            pendingSyndicateBalance -= _share;
            syndicateProfit = 0;
        }
        //Convert cents/pennies into coins.
        uint256 _coins = decimalCorrection * syndicateBalance;
        //Make transfer.
        if (decimalCorrection == 1) {
        	eursTransfer(angel, _coins);
        }
        else if (decimalCorrection == 1000000) {
        	bgbpTransfer(angel, _coins);
        }
        else if (decimalCorrection == 10000) {
        	usdtTransfer(angel, _coins);
        }
        //Update syndicate's balance value.
        syndicateBalance = 0;
        pendingSyndicateBalance = 0;
        //Reset angel investment value and disable syndicate.
        angelInvestment = 0;
        syndicateActive = false;
        //Reset closure wait time.
        closureWaitTime = 0;
    }
    
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"pendingSyndicateProfit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"distributionWaitTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"breakAgreement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"angelDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"userWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"angel","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"syndicateActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimalCorrection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bgbpAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"distributeEarnings","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"closeSyndicate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingSyndicateBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userAgreements","outputs":[{"internalType":"uint256","name":"lsBalance","type":"uint256"},{"internalType":"uint256","name":"lsInplay","type":"uint256"},{"internalType":"uint256","name":"bookieBalance","type":"uint256"},{"internalType":"uint256","name":"bookieInplay","type":"uint256"},{"internalType":"uint256","name":"userBankroll","type":"uint256"},{"internalType":"uint256","name":"userProfit","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"syndicateBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"breakSyndicate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"closureWaitTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bettingResults","outputs":[{"internalType":"uint256","name":"lsBalance","type":"uint256"},{"internalType":"uint256","name":"lsInplay","type":"uint256"},{"internalType":"uint256","name":"bookieBalance","type":"uint256"},{"internalType":"uint256","name":"bookieInplay","type":"uint256"},{"internalType":"uint256","name":"userBankroll","type":"uint256"},{"internalType":"uint256","name":"userProfit","type":"uint256"},{"internalType":"uint256","name":"pubTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"adminWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"setNewAgreement","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"angelProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"syndicateProfit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"userDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"brokenAgreements","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"eursAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"angelWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"angelInvestment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"announceClosure","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"angelReinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_lsBalance","type":"uint256"},{"internalType":"uint256","name":"_lsInplay","type":"uint256"},{"internalType":"uint256","name":"_bookieBalance","type":"uint256"},{"internalType":"uint256","name":"_bookieInplay","type":"uint256"},{"internalType":"uint256","name":"_userBankroll","type":"uint256"},{"internalType":"uint256","name":"_userProfit","type":"uint256"}],"name":"displayResults","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_angel","type":"address"},{"internalType":"uint256","name":"_currency","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"}],"name":"AgreementBreak","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"}],"name":"ClosureAnnouncement","type":"event"}]

608060405273db25f211ab05b1c97d595516f45794528a807ad86000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c9a2c4868f0f96faaa739b59934dc9cb304112ec600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060286005556000600655600060085560006009556000600a556000600b556000600c556000600d556001601260006101000a81548160ff0219169083151502179055503480156200015257600080fd5b506040516200373938038062003739833981810160405260408110156200017857600080fd5b81019080805190602001909291908051906020019092919050505033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018114156200022d5760016003819055506200025d565b60028114156200024757620f42406003819055506200025c565b60038114156200025b576127106003819055505b5b5b50506134ca806200026f6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063990378341161011a578063b52d7343116100ad578063e6bb0d671161007c578063e6bb0d6714610783578063e81de86e146107a1578063f597ec21146107ab578063f851a440146107b5578063fcdddbd9146107ff576101fb565b8063b52d734314610685578063bba4e61b146106d3578063c1518e4d1461072f578063c8fa213914610779576101fb565b8063a28835b6116100e9578063a28835b6146105a9578063a34086f1146105ed578063a8c0602414610649578063a9e7ae1c14610667576101fb565b806399037834146104b557806399062613146104bf5780639ab4a445146104dd5780639c78a73414610527576101fb565b806359da66f011610192578063828af1c011610161578063828af1c0146103e057806383f03bf61461045b5780638564f47c1461047957806396087a9f14610497576101fb565b806359da66f01461034c57806376577eae146103965780637af0e44e146103b857806380e84b33146103c2576101fb565b80633b9056bf116101ce5780633b9056bf14610294578063420a9cdf146102c257806348110ea71461030c57806358a68b081461032e576101fb565b80632332b39514610200578063325212f41461021e57806336a034271461023c5780633765a18c14610246575b600080fd5b61020861087f565b6040518082815260200191505060405180910390f35b610226610885565b6040518082815260200191505060405180910390f35b61024461088b565b005b6102926004803603604081101561025c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610948565b005b6102c0600480360360208110156102aa57600080fd5b8101908080359060200190929190505050610aee565b005b6102ca610eb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610314610edb565b604051808215151515815260200191505060405180910390f35b610336610eee565b6040518082815260200191505060405180910390f35b610354610ef4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039e610f1a565b604051808215151515815260200191505060405180910390f35b6103c0611032565b005b6103ca6111f2565b6040518082815260200191505060405180910390f35b610422600480360360208110156103f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f8565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b610463611234565b6040518082815260200191505060405180910390f35b61048161123a565b6040518082815260200191505060405180910390f35b61049f611240565b6040518082815260200191505060405180910390f35b6104bd611246565b005b6104c76113d7565b6040518082815260200191505060405180910390f35b6104e56113dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105696004803603602081101561053d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611403565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b6105eb600480360360208110156105bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611445565b005b61062f6004803603602081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c9565b604051808215151515815260200191505060405180910390f35b610651611b81565b6040518082815260200191505060405180910390f35b61066f611b87565b6040518082815260200191505060405180910390f35b6106d16004803603604081101561069b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b8d565b005b610715600480360360208110156106e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f33565b604051808215151515815260200191505060405180910390f35b610737611f53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610781611f78565b005b61078b6120de565b6040518082815260200191505060405180910390f35b6107a96120e4565b005b6107b36121fb565b005b6107bd61232a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61087d600480360360e081101561081557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612350565b005b600b5481565b600e5481565b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f5e84ea9ce47c92f20bcf5876e0ab1577e4389b0ce73efeca5000139ebb92f6df33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60648110156109a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806134636033913960400191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133e16029913960400191505060405180910390fd5b6000610a5f8260035461286290919063ffffffff16565b9050600030905060016003541415610a8157610a7c8482846128e8565b610ab8565b620f42406003541415610a9e57610a99848284612a5f565b610ab7565b6127106003541415610ab657610ab5848284612bd7565b5b5b5b82600c6000828254019250508190555082600a600082825401925050819055508260086000828254019250508190555050505050565b610af6613117565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509050610b8661314d565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815250509050601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c9b578160200151826000015101925081602001518260000151018260000181815250506000826020018181525050610d21565b8060000151826000015114610caf57600080fd5b8060200151826020015114610cc357600080fd5b8282600001511015610d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613316602a913960400191505060405180910390fd5b5b6000610d388460035461286290919063ffffffff16565b905060016003541415610d5457610d4f3382612d4f565b610d89565b620f42406003541415610d7057610d6b3382612e91565b610d88565b6127106003541415610d8757610d863382612fd4565b5b5b5b8383600001510383600001818152505082601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050155905050826000015182600001818152505081601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015590505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900460ff1681565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600e544211610f76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806132126033913960400191505060405180910390fd5b6064600d541215610f8a576000905061102f565b60006064600554600d540281610f9c57fe5b0490508060066000828254019250508190555080600c6000828254039250508190555080600a6000828254039250508190555080600d60008282540392505081905550600d54600960008282540192505081905550600d54600c60008282540392505081905550600d54600a600082825403925050819055506000600d8190555062278d004201600e8190555060019150505b90565b600f544211801561104657506000600f5414155b61109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806131e4602e913960400191505060405180910390fd5b6064600d54126110f45760006064600554600d5402816110b757fe5b0490508060066000828254019250508190555080600c6000828254039250508190555080600a600082825403925050819055506000600d81905550505b6000600c546003540290506001600354141561113b57611136600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612d4f565b6111b4565b620f4240600354141561117957611174600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612e91565b6111b3565b61271060035414156111b2576111b1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612fd4565b5b5b5b6000600c819055506000600a8190555060006008819055506000601260006101000a81548160ff0219169083151502179055506000600f8190555050565b600a5481565b60106020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b60065481565b600c5481565b60055481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b6000601260006101000a81548160ff021916908315150217905550612710600c541061133b57612710600c60008282540392505081905550612710600d6000828254039250508190555061134c565b6000600c819055506000600d819055505b6000600d54131561137257600d54600c600082825403925050819055506000600d819055505b7f5e84ea9ce47c92f20bcf5876e0ab1577e4389b0ce73efeca5000139ebb92f6df33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600f5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806133666028913960400191505060405180910390fd5b600060065411611563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f61646d696e20646f6573206e6f7420686176652070726f66697420736861726581525060200191505060405180910390fd5b600060065460035402905060016003541415611588576115838282612d4f565b6115bd565b620f424060035414156115a45761159f8282612e91565b6115bc565b61271060035414156115bb576115ba8282612fd4565b5b5b5b60006006819055505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611671576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806133666028913960400191505060405180910390fd5b601260009054906101000a900460ff166116f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f616e67656c2068617320636c6f73656420746869732073796e6469636174650081525060200191505060405180910390fd5b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f75736572206861732062726f6b656e2061677265656d656e740000000000000081525060200191505060405180910390fd5b6117bb613117565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481525050905060008160000151118061185a575060008160200151115b6118cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7573657220646f6573206e6f7420686176652062616c616e636500000000000081525060200191505060405180910390fd5b6118d461314d565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505090506000620143708260c0015101905060008260c00151148061198657508042105b156119975760009350505050611b7c565b6000836020015184600001510190506000836020015184600001510190506000818303905080600c6000828254019250508190555080600d60008282540192505081905550846000015186600001818152505084602001518660200181815250508460400151866040018181525050846060015186606001818152505084608001518660800181815250508460a001518660a001818152505085601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015181600501559050506040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050600196505050505050505b919050565b60095481565b600d5481565b601260009054906101000a900460ff16611c0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f616e67656c2068617320636c6f73656420746869732073796e6469636174650081525060200191505060405180910390fd5b6064811015611c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806131b5602f913960400191505060405180910390fd5b6000611c808260035461286290919063ffffffff16565b9050600030905060016003541415611ca257611c9d8482846128e8565b611cd9565b620f42406003541415611cbf57611cba848284612a5f565b611cd8565b6127106003541415611cd757611cd6848284612bd7565b5b5b5b611ce1613117565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090508381600001510181600001818152505080601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050155905050611e0061314d565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505090508481600001510181600001818152505080601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050505050505050565b60136020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b600060095411612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133406026913960400191505060405180910390fd5b60006009546003540290506001600354141561209e576120993382612d4f565b6120d3565b620f424060035414156120ba576120b53382612e91565b6120d2565b61271060035414156120d1576120d03382612fd4565b5b5b5b600060098190555050565b60085481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b620294f04201600f819055507fe1967312d67885c5780d210c9657adf7e41ea1426c3b7156ada0ba157c852d5733604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b6000600954116122fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806132cf6026913960400191505060405180910390fd5b600954600c60008282540192505081905550600954600a600082825401925050819055506000600981905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806133666028913960400191505060405180910390fd5b601260009054906101000a900460ff16612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f616e67656c2068617320636c6f73656420746869732073796e6469636174650081525060200191505060405180910390fd5b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f75736572206861732062726f6b656e2061677265656d656e740000000000000081525060200191505060405180910390fd5b612540613117565b601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090506000816000015111806125df575060008160200151115b612651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7573657220646f6573206e6f7420686176652062616c616e636500000000000081525060200191505060405180910390fd5b61265961314d565b601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481525050905060008160c0015114612748576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133b86029913960400191505060405180910390fd5b6000816020015182600001510190506000888a0190506000818303905080600a6000828254019250508190555080600b600082825401925050819055508a84600001818152505089846020018181525050888460400181815250508784606001818152505086846080018181525050858460a0018181525050428460c001818152505083601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050505050505050505050505050565b60008083141561287557600090506128e2565b600082840290508284828161288657fe5b04146128dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132f56021913960400191505060405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156129c957600080fd5b505af11580156129dd573d6000803e3d6000fd5b505050506040513d60208110156129f357600080fd5b8101908080519060200190929190505050612a59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613245602e913960400191505060405180910390fd5b50505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612b4157600080fd5b505af1158015612b55573d6000803e3d6000fd5b505050506040513d6020811015612b6b57600080fd5b8101908080519060200190929190505050612bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806132a1602e913960400191505060405180910390fd5b50505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612cb957600080fd5b505af1158015612ccd573d6000803e3d6000fd5b505050506040513d6020811015612ce357600080fd5b8101908080519060200190929190505050612d49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613273602e913960400191505060405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612dfc57600080fd5b505af1158015612e10573d6000803e3d6000fd5b505050506040513d6020811015612e2657600080fd5b8101908080519060200190929190505050612e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061318b602a913960400191505060405180910390fd5b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612f3f57600080fd5b505af1158015612f53573d6000803e3d6000fd5b505050506040513d6020811015612f6957600080fd5b8101908080519060200190929190505050612fcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061338e602a913960400191505060405180910390fd5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561308257600080fd5b505af1158015613096573d6000803e3d6000fd5b505050506040513d60208110156130ac57600080fd5b8101908080519060200190929190505050613112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613439602a913960400191505060405180910390fd5b505050565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe6572726f72206174204555525320737461626c65636f696e207472616e736665722066756e6374696f6e6465706f7369742076616c7565206d757374206265206d696e696d756d203130302063656e74732f70656e6e69657332206461797320646964206e6f7420706173732073696e636520636c6f7375726520616e6e6f756e63656d656e746d6f6e746820646964206e6f7420706173732073696e6365206c617374206561726e696e677320646973747269627574696f6e6572726f72206174204555525320737461626c65636f696e207472616e7366657246726f6d2066756e6374696f6e6572726f72206174205553445420737461626c65636f696e207472616e7366657246726f6d2066756e6374696f6e6572726f72206174204247425020737461626c65636f696e207472616e7366657246726f6d2066756e6374696f6e616e67656c20646f6573206e6f7420686176652070726f66697420746f207265696e76657374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77757365722062616c616e6365206973206c657373207468616e207769746864726177616c2076616c7565616e67656c20646f6573206e6f7420686176652070726f66697420746f2077697468647261776f6e6c792061646d696e20616c6c6f77656420746f2063616c6c20746869732066756e6374696f6e6572726f72206174204247425020737461626c65636f696e207472616e736665722066756e6374696f6e70726576696f75732062657474696e6720726573756c74732077657265206e6f74206170706c69656466726f6d206164647265737320646f6573206e6f74206d6174636820616e67656c20616464726573736d73672073656e646572206164647265737320646f6573206e6f74206d6174636820616e67656c20616464726573736572726f72206174205553445420737461626c65636f696e207472616e736665722066756e6374696f6e6465706f7369742076616c7565206c657373207468616e206d696e696d756d20283130302063656e74732f70656e6e69657329a265627a7a723158207f55b1a1a5ff62f3b69aa8a38c181858d4a057e317c17dd147972d649c10cfcc64736f6c634300050b00320000000000000000000000009747271b27aca8af15e0685e6b004fb79857dd370000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063990378341161011a578063b52d7343116100ad578063e6bb0d671161007c578063e6bb0d6714610783578063e81de86e146107a1578063f597ec21146107ab578063f851a440146107b5578063fcdddbd9146107ff576101fb565b8063b52d734314610685578063bba4e61b146106d3578063c1518e4d1461072f578063c8fa213914610779576101fb565b8063a28835b6116100e9578063a28835b6146105a9578063a34086f1146105ed578063a8c0602414610649578063a9e7ae1c14610667576101fb565b806399037834146104b557806399062613146104bf5780639ab4a445146104dd5780639c78a73414610527576101fb565b806359da66f011610192578063828af1c011610161578063828af1c0146103e057806383f03bf61461045b5780638564f47c1461047957806396087a9f14610497576101fb565b806359da66f01461034c57806376577eae146103965780637af0e44e146103b857806380e84b33146103c2576101fb565b80633b9056bf116101ce5780633b9056bf14610294578063420a9cdf146102c257806348110ea71461030c57806358a68b081461032e576101fb565b80632332b39514610200578063325212f41461021e57806336a034271461023c5780633765a18c14610246575b600080fd5b61020861087f565b6040518082815260200191505060405180910390f35b610226610885565b6040518082815260200191505060405180910390f35b61024461088b565b005b6102926004803603604081101561025c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610948565b005b6102c0600480360360208110156102aa57600080fd5b8101908080359060200190929190505050610aee565b005b6102ca610eb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610314610edb565b604051808215151515815260200191505060405180910390f35b610336610eee565b6040518082815260200191505060405180910390f35b610354610ef4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61039e610f1a565b604051808215151515815260200191505060405180910390f35b6103c0611032565b005b6103ca6111f2565b6040518082815260200191505060405180910390f35b610422600480360360208110156103f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f8565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b610463611234565b6040518082815260200191505060405180910390f35b61048161123a565b6040518082815260200191505060405180910390f35b61049f611240565b6040518082815260200191505060405180910390f35b6104bd611246565b005b6104c76113d7565b6040518082815260200191505060405180910390f35b6104e56113dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105696004803603602081101561053d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611403565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b6105eb600480360360208110156105bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611445565b005b61062f6004803603602081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c9565b604051808215151515815260200191505060405180910390f35b610651611b81565b6040518082815260200191505060405180910390f35b61066f611b87565b6040518082815260200191505060405180910390f35b6106d16004803603604081101561069b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b8d565b005b610715600480360360208110156106e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f33565b604051808215151515815260200191505060405180910390f35b610737611f53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610781611f78565b005b61078b6120de565b6040518082815260200191505060405180910390f35b6107a96120e4565b005b6107b36121fb565b005b6107bd61232a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61087d600480360360e081101561081557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612350565b005b600b5481565b600e5481565b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f5e84ea9ce47c92f20bcf5876e0ab1577e4389b0ce73efeca5000139ebb92f6df33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60648110156109a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806134636033913960400191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133e16029913960400191505060405180910390fd5b6000610a5f8260035461286290919063ffffffff16565b9050600030905060016003541415610a8157610a7c8482846128e8565b610ab8565b620f42406003541415610a9e57610a99848284612a5f565b610ab7565b6127106003541415610ab657610ab5848284612bd7565b5b5b5b82600c6000828254019250508190555082600a600082825401925050819055508260086000828254019250508190555050505050565b610af6613117565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509050610b8661314d565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815250509050601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c9b578160200151826000015101925081602001518260000151018260000181815250506000826020018181525050610d21565b8060000151826000015114610caf57600080fd5b8060200151826020015114610cc357600080fd5b8282600001511015610d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613316602a913960400191505060405180910390fd5b5b6000610d388460035461286290919063ffffffff16565b905060016003541415610d5457610d4f3382612d4f565b610d89565b620f42406003541415610d7057610d6b3382612e91565b610d88565b6127106003541415610d8757610d863382612fd4565b5b5b5b8383600001510383600001818152505082601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050155905050826000015182600001818152505081601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015590505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900460ff1681565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600e544211610f76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806132126033913960400191505060405180910390fd5b6064600d541215610f8a576000905061102f565b60006064600554600d540281610f9c57fe5b0490508060066000828254019250508190555080600c6000828254039250508190555080600a6000828254039250508190555080600d60008282540392505081905550600d54600960008282540192505081905550600d54600c60008282540392505081905550600d54600a600082825403925050819055506000600d8190555062278d004201600e8190555060019150505b90565b600f544211801561104657506000600f5414155b61109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806131e4602e913960400191505060405180910390fd5b6064600d54126110f45760006064600554600d5402816110b757fe5b0490508060066000828254019250508190555080600c6000828254039250508190555080600a600082825403925050819055506000600d81905550505b6000600c546003540290506001600354141561113b57611136600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612d4f565b6111b4565b620f4240600354141561117957611174600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612e91565b6111b3565b61271060035414156111b2576111b1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612fd4565b5b5b5b6000600c819055506000600a8190555060006008819055506000601260006101000a81548160ff0219169083151502179055506000600f8190555050565b600a5481565b60106020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b60065481565b600c5481565b60055481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b6000601260006101000a81548160ff021916908315150217905550612710600c541061133b57612710600c60008282540392505081905550612710600d6000828254039250508190555061134c565b6000600c819055506000600d819055505b6000600d54131561137257600d54600c600082825403925050819055506000600d819055505b7f5e84ea9ce47c92f20bcf5876e0ab1577e4389b0ce73efeca5000139ebb92f6df33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600f5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806133666028913960400191505060405180910390fd5b600060065411611563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f61646d696e20646f6573206e6f7420686176652070726f66697420736861726581525060200191505060405180910390fd5b600060065460035402905060016003541415611588576115838282612d4f565b6115bd565b620f424060035414156115a45761159f8282612e91565b6115bc565b61271060035414156115bb576115ba8282612fd4565b5b5b5b60006006819055505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611671576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806133666028913960400191505060405180910390fd5b601260009054906101000a900460ff166116f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f616e67656c2068617320636c6f73656420746869732073796e6469636174650081525060200191505060405180910390fd5b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f75736572206861732062726f6b656e2061677265656d656e740000000000000081525060200191505060405180910390fd5b6117bb613117565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481525050905060008160000151118061185a575060008160200151115b6118cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7573657220646f6573206e6f7420686176652062616c616e636500000000000081525060200191505060405180910390fd5b6118d461314d565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505090506000620143708260c0015101905060008260c00151148061198657508042105b156119975760009350505050611b7c565b6000836020015184600001510190506000836020015184600001510190506000818303905080600c6000828254019250508190555080600d60008282540192505081905550846000015186600001818152505084602001518660200181815250508460400151866040018181525050846060015186606001818152505084608001518660800181815250508460a001518660a001818152505085601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015181600501559050506040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050600196505050505050505b919050565b60095481565b600d5481565b601260009054906101000a900460ff16611c0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f616e67656c2068617320636c6f73656420746869732073796e6469636174650081525060200191505060405180910390fd5b6064811015611c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806131b5602f913960400191505060405180910390fd5b6000611c808260035461286290919063ffffffff16565b9050600030905060016003541415611ca257611c9d8482846128e8565b611cd9565b620f42406003541415611cbf57611cba848284612a5f565b611cd8565b6127106003541415611cd757611cd6848284612bd7565b5b5b5b611ce1613117565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090508381600001510181600001818152505080601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050155905050611e0061314d565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505090508481600001510181600001818152505080601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050505050505050565b60136020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b600060095411612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806133406026913960400191505060405180910390fd5b60006009546003540290506001600354141561209e576120993382612d4f565b6120d3565b620f424060035414156120ba576120b53382612e91565b6120d2565b61271060035414156120d1576120d03382612fd4565b5b5b5b600060098190555050565b60085481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b620294f04201600f819055507fe1967312d67885c5780d210c9657adf7e41ea1426c3b7156ada0ba157c852d5733604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061340a602f913960400191505060405180910390fd5b6000600954116122fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806132cf6026913960400191505060405180910390fd5b600954600c60008282540192505081905550600954600a600082825401925050819055506000600981905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806133666028913960400191505060405180910390fd5b601260009054906101000a900460ff16612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f616e67656c2068617320636c6f73656420746869732073796e6469636174650081525060200191505060405180910390fd5b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f75736572206861732062726f6b656e2061677265656d656e740000000000000081525060200191505060405180910390fd5b612540613117565b601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505090506000816000015111806125df575060008160200151115b612651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7573657220646f6573206e6f7420686176652062616c616e636500000000000081525060200191505060405180910390fd5b61265961314d565b601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481525050905060008160c0015114612748576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133b86029913960400191505060405180910390fd5b6000816020015182600001510190506000888a0190506000818303905080600a6000828254019250508190555080600b600082825401925050819055508a84600001818152505089846020018181525050888460400181815250508784606001818152505086846080018181525050858460a0018181525050428460c001818152505083601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050505050505050505050505050565b60008083141561287557600090506128e2565b600082840290508284828161288657fe5b04146128dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132f56021913960400191505060405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156129c957600080fd5b505af11580156129dd573d6000803e3d6000fd5b505050506040513d60208110156129f357600080fd5b8101908080519060200190929190505050612a59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613245602e913960400191505060405180910390fd5b50505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612b4157600080fd5b505af1158015612b55573d6000803e3d6000fd5b505050506040513d6020811015612b6b57600080fd5b8101908080519060200190929190505050612bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806132a1602e913960400191505060405180910390fd5b50505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612cb957600080fd5b505af1158015612ccd573d6000803e3d6000fd5b505050506040513d6020811015612ce357600080fd5b8101908080519060200190929190505050612d49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180613273602e913960400191505060405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612dfc57600080fd5b505af1158015612e10573d6000803e3d6000fd5b505050506040513d6020811015612e2657600080fd5b8101908080519060200190929190505050612e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061318b602a913960400191505060405180910390fd5b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612f3f57600080fd5b505af1158015612f53573d6000803e3d6000fd5b505050506040513d6020811015612f6957600080fd5b8101908080519060200190929190505050612fcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061338e602a913960400191505060405180910390fd5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561308257600080fd5b505af1158015613096573d6000803e3d6000fd5b505050506040513d60208110156130ac57600080fd5b8101908080519060200190929190505050613112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613439602a913960400191505060405180910390fd5b505050565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe6572726f72206174204555525320737461626c65636f696e207472616e736665722066756e6374696f6e6465706f7369742076616c7565206d757374206265206d696e696d756d203130302063656e74732f70656e6e69657332206461797320646964206e6f7420706173732073696e636520636c6f7375726520616e6e6f756e63656d656e746d6f6e746820646964206e6f7420706173732073696e6365206c617374206561726e696e677320646973747269627574696f6e6572726f72206174204555525320737461626c65636f696e207472616e7366657246726f6d2066756e6374696f6e6572726f72206174205553445420737461626c65636f696e207472616e7366657246726f6d2066756e6374696f6e6572726f72206174204247425020737461626c65636f696e207472616e7366657246726f6d2066756e6374696f6e616e67656c20646f6573206e6f7420686176652070726f66697420746f207265696e76657374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77757365722062616c616e6365206973206c657373207468616e207769746864726177616c2076616c7565616e67656c20646f6573206e6f7420686176652070726f66697420746f2077697468647261776f6e6c792061646d696e20616c6c6f77656420746f2063616c6c20746869732066756e6374696f6e6572726f72206174204247425020737461626c65636f696e207472616e736665722066756e6374696f6e70726576696f75732062657474696e6720726573756c74732077657265206e6f74206170706c69656466726f6d206164647265737320646f6573206e6f74206d6174636820616e67656c20616464726573736d73672073656e646572206164647265737320646f6573206e6f74206d6174636820616e67656c20616464726573736572726f72206174205553445420737461626c65636f696e207472616e736665722066756e6374696f6e6465706f7369742076616c7565206c657373207468616e206d696e696d756d20283130302063656e74732f70656e6e69657329a265627a7a723158207f55b1a1a5ff62f3b69aa8a38c181858d4a057e317c17dd147972d649c10cfcc64736f6c634300050b0032

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

0000000000000000000000009747271b27aca8af15e0685e6b004fb79857dd370000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : _angel (address): 0x9747271B27aca8AF15e0685E6b004fB79857dD37
Arg [1] : _currency (uint256): 1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009747271b27aca8af15e0685e6b004fb79857dd37
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001


Deployed Bytecode Sourcemap

926:22000:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;926:22000:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2221:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2536:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13448:366;;;:::i;:::-;;7923:1137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7923:1137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15967:1875;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15967:1875:0;;;;;;;;;;;;;;;;;:::i;:::-;;1827:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4784:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1400:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1176:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17890:1086;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21615:1302;;;:::i;:::-;;2086:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3449:51;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3449:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2353:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1623:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12308:1081;;;:::i;:::-;;2679:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1288:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4478:49;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4478:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20435:647;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20435:647:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13896:2012;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13896:2012:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1980:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2446:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9107:1286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9107:1286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4922:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4922:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1064:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19027:793;;;:::i;:::-;;1894:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21127:448;;;:::i;:::-;;19891:493;;;:::i;:::-;;1576:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10451:1767;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;10451:1767:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2221:40;;;;:::o;2536:35::-;;;;:::o;13448:366::-;13709:4;13678:16;:28;13695:10;13678:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13780:26;13795:10;13780:26;;;;;;;;;;;;;;;;;;;;;;13448:366::o;7923:1137::-;8094:3;8084:6;:13;;8076:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8225:5;;;;;;;;;;;8216:14;;:5;:14;;;8208:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8332:14;8349:29;8371:6;8349:17;;:21;;:29;;;;:::i;:::-;8332:46;;8505:11;8527:4;8505:27;;8568:1;8547:17;;:22;8543:304;;;8583:36;8600:5;8607:3;8612:6;8583:16;:36::i;:::-;8543:304;;;8671:7;8650:17;;:28;8646:201;;;8692:36;8709:5;8716:3;8721:6;8692:16;:36::i;:::-;8646:201;;;8780:5;8759:17;;:26;8755:92;;;8799:36;8816:5;8823:3;8828:6;8799:16;:36::i;:::-;8755:92;8646:201;8543:304;8922:6;8902:16;;:26;;;;;;;;;;;8966:6;8939:23;;:33;;;;;;;;;;;9046:6;9027:15;;:25;;;;;;;;;;;7923:1137;;;;:::o;15967:1875::-;16023:27;;:::i;:::-;16053:14;:26;16068:10;16053:26;;;;;;;;;;;;;;;16023:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16090:22;;:::i;:::-;16115:14;:26;16130:10;16115:26;;;;;;;;;;;;;;;16090:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16313:16;:28;16330:10;16313:28;;;;;;;;;;;;;;;;;;;;;;;;;16309:677;;;16390:10;:19;;;16367:10;:20;;;:42;16358:51;;16470:10;:19;;;16447:10;:20;;;:42;16424:10;:20;;:65;;;;;16526:1;16504:10;:19;;:23;;;;;16309:677;;;16746:7;:17;;;16722:10;:20;;;:41;16714:50;;;;;;16807:7;:16;;;16784:10;:19;;;:39;16776:48;;;;;;16921:6;16897:10;:20;;;:30;;16889:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16309:677;17041:14;17058:29;17080:6;17058:17;;:21;;:29;;;;:::i;:::-;17041:46;;17222:1;17201:17;;:22;17197:292;;;17237:32;17250:10;17262:6;17237:12;:32::i;:::-;17197:292;;;17321:7;17300:17;;:28;17296:193;;;17342:32;17355:10;17367:6;17342:12;:32::i;:::-;17296:193;;;17426:5;17405:17;;:26;17401:88;;;17445:32;17458:10;17470:6;17445:12;:32::i;:::-;17401:88;17296:193;17197:292;17579:6;17556:10;:20;;;:29;17533:10;:20;;:52;;;;;17625:10;17596:14;:26;17611:10;17596:26;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17767:10;:20;;;17747:7;:17;;:40;;;;;17827:7;17798:14;:26;17813:10;17798:26;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15967:1875;;;;:::o;1827:20::-;;;;;;;;;;;;;:::o;4784:34::-;;;;;;;;;;;;;:::o;1400:32::-;;;;:::o;1176:71::-;;;;;;;;;;;;;:::o;17890:1086::-;17935:4;18053:20;;18035:15;:38;18027:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18268:3;18250:15;;:21;18246:66;;;18295:5;18288:12;;;;18246:66;18362:14;18416:3;18403:10;;18384:15;;18379:34;:40;;;;;;18362:57;;18445:6;18430:11;;:21;;;;;;;;;;;18482:6;18462:16;;:26;;;;;;;;;;;18526:6;18499:23;;:33;;;;;;;;;;;18566:6;18543:15;;:30;;;;;;;;;;;18646:15;;18626:11;;:36;;;;;;;;;;;18698:15;;18673:16;;:41;;;;;;;;;;;18757:15;;18725:23;;:48;;;;;;;;;;;18802:1;18784:15;:19;;;;18896:7;18878:15;:25;18855:20;:48;;;;18964:4;18957:11;;;17890:1086;;:::o;21615:1302::-;21748:15;;21730;:33;:57;;;;;21786:1;21767:15;;:20;;21730:57;21722:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21933:3;21914:15;;:22;21910:271;;21953:14;22007:3;21994:10;;21975:15;;21970:34;:40;;;;;;21953:57;;22040:6;22025:11;;:21;;;;;;;;;;;22081:6;22061:16;;:26;;;;;;;;;;;22129:6;22102:23;;:33;;;;;;;;;;;22168:1;22150:15;:19;;;;21910:271;;22236:14;22273:16;;22253:17;;:36;22236:53;;22351:1;22330:17;;:22;22326:277;;;22366:27;22379:5;;;;;;;;;;;22386:6;22366:12;:27::i;:::-;22326:277;;;22445:7;22424:17;;:28;22420:183;;;22466:27;22479:5;;;;;;;;;;;22486:6;22466:12;:27::i;:::-;22420:183;;;22545:5;22524:17;;:26;22520:83;;;22564:27;22577:5;;;;;;;;;;;22584:6;22564:12;:27::i;:::-;22520:83;22420:183;22326:277;22677:1;22658:16;:20;;;;22715:1;22689:23;:27;;;;22808:1;22790:15;:19;;;;22838:5;22820:15;;:23;;;;;;;;;;;;;;;;;;22908:1;22890:15;:19;;;;21615:1302;:::o;2086:42::-;;;;:::o;3449:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1721:30::-;;;;:::o;2353:35::-;;;;:::o;1623:30::-;;;;:::o;12308:1081::-;12427:5;;;;;;;;;;;12413:19;;:10;:19;;;12405:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12818:5;12800:15;;:23;;;;;;;;;;;;;;;;;;12910:5;12890:16;;:25;12886:218;;12952:5;12932:16;;:25;;;;;;;;;;;12991:5;12972:15;;:24;;;;;;;;;;;12886:218;;;13057:1;13038:16;:20;;;;13091:1;13073:15;:19;;;;12886:218;13183:1;13165:15;;:19;13161:127;;;13226:15;;13201:16;;:41;;;;;;;;;;;13275:1;13257:15;:19;;;;13161:127;13355:26;13370:10;13355:26;;;;;;;;;;;;;;;;;;;;;;12308:1081::o;2679:30::-;;;;:::o;1288:71::-;;;;;;;;;;;;;:::o;4478:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20435:647::-;5738:5;;;;;;;;;;;5724:19;;:10;:19;;;5716:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20560:1;20546:11;;:15;20538:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20654:14;20691:11;;20671:17;;:31;20654:48;;20763:1;20742:17;;:22;20738:271;;;20778:25;20791:3;20796:6;20778:12;:25::i;:::-;20738:271;;;20855:7;20834:17;;:28;20830:179;;;20876:25;20889:3;20894:6;20876:12;:25::i;:::-;20830:179;;;20953:5;20932:17;;:26;20928:81;;;20972:25;20985:3;20990:6;20972:12;:25::i;:::-;20928:81;20830:179;20738:271;21073:1;21059:11;:15;;;;5799:1;20435:647;:::o;13896:2012::-;13961:4;5738:5;;;;;;;;;;;5724:19;;:10;:19;;;5716:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14034:15;;;;;;;;;;;14026:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14163:16;:23;14180:5;14163:23;;;;;;;;;;;;;;;;;;;;;;;;;14161:26;14153:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14329:27;;:::i;:::-;14359:14;:21;14374:5;14359:21;;;;;;;;;;;;;;;14329:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14422:1;14399:10;:20;;;:24;:51;;;;14449:1;14427:10;:19;;;:23;14399:51;14391:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14647:22;;:::i;:::-;14672:14;:21;14687:5;14672:21;;;;;;;;;;;;;;;14647:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14704:18;14743:5;14725:7;:15;;;:23;14704:44;;14818:1;14799:7;:15;;;:20;:52;;;;14841:10;14823:15;:28;14799:52;14795:97;;;14875:5;14868:12;;;;;;;14795:97;14980:29;15035:10;:19;;;15012:10;:20;;;:42;14980:74;;15065:28;15116:7;:16;;;15096:7;:17;;;:36;15065:67;;15143:14;15193:20;15164:21;15160:54;15143:71;;15300:7;15275:16;;:33;;;;;;;;;;;15338:7;15319:15;;:26;;;;;;;;;;;15430:7;:17;;;15407:10;:20;;:40;;;;;15480:7;:16;;;15458:10;:19;;:38;;;;;15534:7;:21;;;15507:10;:24;;:48;;;;;15592:7;:20;;;15566:10;:23;;:46;;;;;15649:7;:20;;;15623:10;:23;;:46;;;;;15704:7;:18;;;15680:10;:21;;:42;;;;;15757:10;15733:14;:21;15748:5;15733:21;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15850:28;;;;;;;;15858:1;15850:28;;;;15861:1;15850:28;;;;15864:1;15850:28;;;;15867:1;15850:28;;;;15870:1;15850:28;;;;15873:1;15850:28;;;;15876:1;15850:28;;;15826:14;:21;15841:5;15826:21;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15896:4;15889:11;;;;;;;;5799:1;13896:2012;;;:::o;1980:30::-;;;;:::o;2446:33::-;;;;:::o;9107:1286::-;9233:15;;;;;;;;;;;9225:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9394:3;9384:6;:13;;9376:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9505:14;9522:29;9544:6;9522:17;;:21;;:29;;;;:::i;:::-;9505:46;;9619:11;9641:4;9619:27;;9682:1;9661:17;;:22;9657:304;;;9697:36;9714:5;9721:3;9726:6;9697:16;:36::i;:::-;9657:304;;;9785:7;9764:17;;:28;9760:201;;;9806:36;9823:5;9830:3;9835:6;9806:16;:36::i;:::-;9760:201;;;9894:5;9873:17;;:26;9869:92;;;9913:36;9930:5;9937:3;9942:6;9913:16;:36::i;:::-;9869:92;9760:201;9657:304;10005:27;;:::i;:::-;10035:14;:21;10050:5;10035:21;;;;;;;;;;;;;;;10005:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10113:6;10090:10;:20;;;:29;10067:10;:20;;:52;;;;;10154:10;10130:14;:21;10145:5;10130:21;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10240:22;;:::i;:::-;10265:14;:21;10280:5;10265:21;;;;;;;;;;;;;;;10240:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10337:6;10317:7;:17;;;:26;10297:7;:17;;:46;;;;;10378:7;10354:14;:21;10369:5;10354:21;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:1286;;;;;;:::o;4922:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1064:71::-;;;;;;;;;;;;;:::o;19027:793::-;19141:5;;;;;;;;;;;19127:19;;:10;:19;;;19119:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19270:1;19256:11;;:15;19248:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19370:14;19407:11;;19387:17;;:31;19370:48;;19480:1;19459:17;;:22;19455:292;;;19495:32;19508:10;19520:6;19495:12;:32::i;:::-;19455:292;;;19579:7;19558:17;;:28;19554:193;;;19600:32;19613:10;19625:6;19600:12;:32::i;:::-;19554:193;;;19684:5;19663:17;;:26;19659:88;;;19703:32;19716:10;19728:6;19703:12;:32::i;:::-;19659:88;19554:193;19455:292;19811:1;19797:11;:15;;;;19027:793;:::o;1894:34::-;;;;:::o;21127:448::-;21245:5;;;;;;;;;;;21231:19;;:10;:19;;;21223:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21408:6;21390:15;:24;21372:15;:42;;;;21536:31;21556:10;21536:31;;;;;;;;;;;;;;;;;;;;;;21127:448::o;19891:493::-;20006:5;;;;;;;;;;;19992:19;;:10;:19;;;19984:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20135:1;20121:11;;:15;20113:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20253:11;;20233:16;;:31;;;;;;;;;;;20302:11;;20275:23;;:38;;;;;;;;;;;20375:1;20361:11;:15;;;;19891:493::o;1576:20::-;;;;;;;;;;;;;:::o;10451:1767::-;5738:5;;;;;;;;;;;5724:19;;:10;:19;;;5716:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10704:15;;;;;;;;;;;10696:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10833:16;:23;10850:5;10833:23;;;;;;;;;;;;;;;;;;;;;;;;;10831:26;10823:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10999:27;;:::i;:::-;11029:14;:21;11044:5;11029:21;;;;;;;;;;;;;;;10999:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11092:1;11069:10;:20;;;:24;:51;;;;11119:1;11097:10;:19;;;:23;11069:51;11061:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11222:22;;:::i;:::-;11247:14;:21;11262:5;11247:21;;;;;;;;;;;;;;;11222:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11306:1;11287:7;:15;;;:20;11279:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11450:29;11502:7;:16;;;11482:7;:17;;;:36;11450:68;;11529:28;11573:9;11560:10;:22;11529:53;;11593:14;11643:20;11614:21;11610:54;11593:71;;11765:7;11733:23;;:40;;;;;;;;;;;11810:7;11784:22;;:33;;;;;;;;;;;11889:10;11869:7;:17;;:30;;;;;11929:9;11910:7;:16;;:28;;;;;11973:14;11949:7;:21;;:38;;;;;12021:13;11998:7;:20;;:36;;;;;12068:13;12045:7;:20;;:36;;;;;12113:11;12092:7;:18;;:32;;;;;12153:15;12135:7;:15;;:33;;;;;12203:7;12179:14;:21;12194:5;12179:21;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5799:1;;;;;10451:1767;;;;;;;:::o;70:246::-;128:7;157:1;152;:6;148:47;;;182:1;175:8;;;;148:47;205:9;221:1;217;:5;205:17;;250:1;245;241;:5;;;;;;:10;233:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;307:1;300:8;;;70:246;;;;;:::o;6164:250::-;6251:20;6284:11;;;;;;;;;;;6251:45;;6312:10;:23;;;6336:5;6343:3;6348:6;6312:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6312:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6312:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6312:43:0;;;;;;;;;;;;;;;;6304:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6164:250;;;;:::o;6477:::-;6564:20;6597:11;;;;;;;;;;;6564:45;;6625:10;:23;;;6649:5;6656:3;6661:6;6625:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6625:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6625:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6625:43:0;;;;;;;;;;;;;;;;6617:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6477:250;;;;:::o;6790:::-;6877:20;6910:11;;;;;;;;;;;6877:45;;6938:10;:23;;;6962:5;6969:3;6974:6;6938:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6938:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6938:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6938:43:0;;;;;;;;;;;;;;;;6930:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6790:250;;;;:::o;7099:216::-;7167:20;7200:11;;;;;;;;;;;7167:45;;7228:10;:19;;;7248:3;7253:6;7228:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7228:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7228:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7228:32:0;;;;;;;;;;;;;;;;7220:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7099:216;;;:::o;7374:::-;7442:20;7475:11;;;;;;;;;;;7442:45;;7503:10;:19;;;7523:3;7528:6;7503:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7503:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7503:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7503:32:0;;;;;;;;;;;;;;;;7495:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7374:216;;;:::o;7649:::-;7717:20;7750:11;;;;;;;;;;;7717:45;;7778:10;:19;;;7798:3;7803:6;7778:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7778:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7778:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7778:32:0;;;;;;;;;;;;;;;;7770:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7649:216;;;:::o;926:22000::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://7f55b1a1a5ff62f3b69aa8a38c181858d4a057e317c17dd147972d649c10cfcc

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

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