ETH Price: $2,486.37 (+0.24%)
Gas: 0.59 Gwei

Contract

0x29632C10D76bd1AeD6b1524bf5bDE4C992610670
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Do State Changes55564652018-05-04 19:40:362489 days ago1525462836IN
0x29632C10...992610670
0 ETH0.0014471310
Do State Changes55564552018-05-04 19:38:262489 days ago1525462706IN
0x29632C10...992610670
0 ETH0.0038120310
Do State Changes55564362018-05-04 19:34:502489 days ago1525462490IN
0x29632C10...992610670
0 ETH0.001805410
Do State Changes52272812018-03-10 0:25:452545 days ago1520641545IN
0x29632C10...992610670
0 ETH0.001319710
Do State Changes52272702018-03-10 0:21:462545 days ago1520641306IN
0x29632C10...992610670
0 ETH0.0013842710
Do State Changes50208562018-02-03 3:07:472580 days ago1517627267IN
0x29632C10...992610670
0 ETH0.0005841310
Do State Changes50208332018-02-03 3:01:242580 days ago1517626884IN
0x29632C10...992610670
0 ETH0.0020636110
Link To Gateway50156872018-02-02 6:10:522581 days ago1517551852IN
0x29632C10...992610670
0 ETH0.020817410
Add Asset Bounty...50156472018-02-02 5:59:062581 days ago1517551146IN
0x29632C10...992610670
0 ETH0.0009270210
Add Asset Meetin...50156412018-02-02 5:57:502581 days ago1517551070IN
0x29632C10...992610670
0 ETH0.0009217410
Add Asset Milest...50156352018-02-02 5:56:262581 days ago1517550986IN
0x29632C10...992610670
0 ETH0.000928810
Add Asset Fundin...50156312018-02-02 5:55:402581 days ago1517550940IN
0x29632C10...992610670
0 ETH0.000927910
Add Asset Fundin...50156262018-02-02 5:54:162581 days ago1517550856IN
0x29632C10...992610670
0 ETH0.0009296810
Add Asset Propos...50156182018-02-02 5:52:352581 days ago1517550755IN
0x29632C10...992610670
0 ETH0.0009237210
Add Asset Token ...50156142018-02-02 5:51:582581 days ago1517550718IN
0x29632C10...992610670
0 ETH0.0009276810
Add Asset News C...50156112018-02-02 5:51:182581 days ago1517550678IN
0x29632C10...992610670
0 ETH0.0009274610
Add Asset Listin...50155872018-02-02 5:45:452581 days ago1517550345IN
0x29632C10...992610670
0 ETH0.0009296610
Set Bylaw Uint25...50151682018-02-02 4:06:502581 days ago1517544410IN
0x29632C10...992610670
0 ETH0.0002938610
Set Bylaw Uint25...50151332018-02-02 3:57:382581 days ago1517543858IN
0x29632C10...992610670
0 ETH0.0004489810
Set Bylaw Uint25...50151172018-02-02 3:53:022581 days ago1517543582IN
0x29632C10...992610670
0 ETH0.000447710
Set Bylaw Uint25...50151062018-02-02 3:50:512581 days ago1517543451IN
0x29632C10...992610670
0 ETH0.0004496210
Set Bylaw Uint25...50151022018-02-02 3:50:172581 days ago1517543417IN
0x29632C10...992610670
0 ETH0.0004432210
Set Bylaw Uint25...50150892018-02-02 3:48:002581 days ago1517543280IN
0x29632C10...992610670
0 ETH0.0004438610
Set Bylaw Uint25...50150612018-02-02 3:40:592581 days ago1517542859IN
0x29632C10...992610670
0 ETH0.0004464210
Set Bylaw Uint25...50150472018-02-02 3:38:282581 days ago1517542708IN
0x29632C10...992610670
0 ETH0.000447710
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ApplicationEntity

Compiler Version
v0.4.17+commit.bdeb9e52

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-02-02
*/

pragma solidity ^0.4.17;

/*

 * source       https://github.com/blockbitsio/

 * @name        Application Entity Generic Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

    Used for the ABI interface when assets need to call Application Entity.

    This is required, otherwise we end up loading the assets themselves when we load the ApplicationEntity contract
    and end up in a loop
*/



contract ApplicationEntityABI {

    address public ProposalsEntity;
    address public FundingEntity;
    address public MilestonesEntity;
    address public MeetingsEntity;
    address public BountyManagerEntity;
    address public TokenManagerEntity;
    address public ListingContractEntity;
    address public FundingManagerEntity;
    address public NewsContractEntity;

    bool public _initialized = false;
    bool public _locked = false;
    uint8 public CurrentEntityState;
    uint8 public AssetCollectionNum;
    address public GatewayInterfaceAddress;
    address public deployerAddress;
    address testAddressAllowUpgradeFrom;
    mapping (bytes32 => uint8) public EntityStates;
    mapping (bytes32 => address) public AssetCollection;
    mapping (uint8 => bytes32) public AssetCollectionIdToName;
    mapping (bytes32 => uint256) public BylawsUint256;
    mapping (bytes32 => bytes32) public BylawsBytes32;

    function ApplicationEntity() public;
    function getEntityState(bytes32 name) public view returns (uint8);
    function linkToGateway( address _GatewayInterfaceAddress, bytes32 _sourceCodeUrl ) external;
    function setUpgradeState(uint8 state) public ;
    function addAssetProposals(address _assetAddresses) external;
    function addAssetFunding(address _assetAddresses) external;
    function addAssetMilestones(address _assetAddresses) external;
    function addAssetMeetings(address _assetAddresses) external;
    function addAssetBountyManager(address _assetAddresses) external;
    function addAssetTokenManager(address _assetAddresses) external;
    function addAssetFundingManager(address _assetAddresses) external;
    function addAssetListingContract(address _assetAddresses) external;
    function addAssetNewsContract(address _assetAddresses) external;
    function getAssetAddressByName(bytes32 _name) public view returns (address);
    function setBylawUint256(bytes32 name, uint256 value) public;
    function getBylawUint256(bytes32 name) public view returns (uint256);
    function setBylawBytes32(bytes32 name, bytes32 value) public;
    function getBylawBytes32(bytes32 name) public view returns (bytes32);
    function initialize() external returns (bool);
    function getParentAddress() external view returns(address);
    function createCodeUpgradeProposal( address _newAddress, bytes32 _sourceCodeUrl ) external returns (uint256);
    function acceptCodeUpgradeProposal(address _newAddress) external;
    function initializeAssetsToThisApplication() external returns (bool);
    function transferAssetsToNewApplication(address _newAddress) external returns (bool);
    function lock() external returns (bool);
    function canInitiateCodeUpgrade(address _sender) public view returns(bool);
    function doStateChanges() public;
    function hasRequiredStateChanges() public view returns (bool);
    function anyAssetHasChanges() public view returns (bool);
    function extendedAnyAssetHasChanges() internal view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8);
    function getTimestamp() view public returns (uint256);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Gateway Interface Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Used as a resolver to retrieve the latest deployed version of the Application

 ENS: gateway.main.blockbits.eth will point directly to this contract.

    ADD ENS domain ownership / transfer methods

*/





contract ABIGatewayInterface {
    address public currentApplicationEntityAddress;
    ApplicationEntityABI private currentApp;
    address public deployerAddress;

    function getApplicationAddress() external view returns (address);
    function requestCodeUpgrade( address _newAddress, bytes32 _sourceCodeUrl ) external returns (bool);
    function approveCodeUpgrade( address _newAddress ) external returns (bool);
    function link( address _newAddress ) internal returns (bool);
    function getNewsContractAddress() external view returns (address);
    function getListingContractAddress() external view returns (address);
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Application Asset Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Any contract inheriting this will be usable as an Asset in the Application Entity

*/



contract ABIApplicationAsset {

    bytes32 public assetName;
    uint8 public CurrentEntityState;
    uint8 public RecordNum;
    bool public _initialized;
    bool public _settingsApplied;
    address public owner;
    address public deployerAddress;
    mapping (bytes32 => uint8) public EntityStates;
    mapping (bytes32 => uint8) public RecordStates;

    function setInitialApplicationAddress(address _ownerAddress) public;
    function setInitialOwnerAndName(bytes32 _name) external returns (bool);
    function getRecordState(bytes32 name) public view returns (uint8);
    function getEntityState(bytes32 name) public view returns (uint8);
    function applyAndLockSettings() public returns(bool);
    function transferToNewOwner(address _newOwner) public returns (bool);
    function getApplicationAssetAddressByName(bytes32 _name) public returns(address);
    function getApplicationState() public view returns (uint8);
    function getApplicationEntityState(bytes32 name) public view returns (uint8);
    function getAppBylawUint256(bytes32 name) public view returns (uint256);
    function getAppBylawBytes32(bytes32 name) public view returns (bytes32);
    function getTimestamp() view public returns (uint256);


}

/*

 * source       https://github.com/blockbitsio/

 * @name        Proposals Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Proposals Contract code deployed and linked to the Application Entity

*/





contract ABIProposals is ABIApplicationAsset {

    address public Application;
    address public ListingContractEntity;
    address public FundingEntity;
    address public FundingManagerEntity;
    address public TokenManagerEntity;
    address public TokenEntity;
    address public MilestonesEntity;

    struct ProposalRecord {
        address creator;
        bytes32 name;
        uint8 actionType;
        uint8 state;
        bytes32 hash;                       // action name + args hash
        address addr;
        bytes32 sourceCodeUrl;
        uint256 extra;
        uint256 time_start;
        uint256 time_end;
        uint256 index;
    }

    struct VoteStruct {
        address voter;
        uint256 time;
        bool    vote;
        uint256 power;
        bool    annulled;
        uint256 index;
    }

    struct ResultRecord {
        uint256 totalAvailable;
        uint256 requiredForResult;
        uint256 totalSoFar;
        uint256 yes;
        uint256 no;
        bool    requiresCounting;
    }

    uint8 public ActiveProposalNum;
    uint256 public VoteCountPerProcess;
    bool public EmergencyFundingReleaseApproved;

    mapping (bytes32 => uint8) public ActionTypes;
    mapping (uint8 => uint256) public ActiveProposalIds;
    mapping (uint256 => bool) public ExpiredProposalIds;
    mapping (uint256 => ProposalRecord) public ProposalsById;
    mapping (bytes32 => uint256) public ProposalIdByHash;
    mapping (uint256 => mapping (uint256 => VoteStruct) ) public VotesByProposalId;
    mapping (uint256 => mapping (address => VoteStruct) ) public VotesByCaster;
    mapping (uint256 => uint256) public VotesNumByProposalId;
    mapping (uint256 => ResultRecord ) public ResultsByProposalId;
    mapping (uint256 => uint256) public lastProcessedVoteIdByProposal;
    mapping (uint256 => uint256) public ProcessedVotesByProposal;
    mapping (uint256 => uint256) public VoteCountAtProcessingStartByProposal;

    function getRecordState(bytes32 name) public view returns (uint8);
    function getActionType(bytes32 name) public view returns (uint8);
    function getProposalState(uint256 _proposalId) public view returns (uint8);
    function getBylawsProposalVotingDuration() public view returns (uint256);
    function getBylawsMilestoneMinPostponing() public view returns (uint256);
    function getBylawsMilestoneMaxPostponing() public view returns (uint256);
    function getHash(uint8 actionType, bytes32 arg1, bytes32 arg2) public pure returns ( bytes32 );
    function process() public;
    function hasRequiredStateChanges() public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8);
    function addCodeUpgradeProposal(address _addr, bytes32 _sourceCodeUrl) external returns (uint256);
    function createMilestoneAcceptanceProposal() external returns (uint256);
    function createMilestonePostponingProposal(uint256 _duration) external returns (uint256);
    function getCurrentMilestonePostponingProposalDuration() public view returns (uint256);
    function getCurrentMilestoneProposalStatusForType(uint8 _actionType ) public view returns (uint8);
    function createEmergencyFundReleaseProposal() external returns (uint256);
    function createDelistingProposal(uint256 _projectId) external returns (uint256);
    function RegisterVote(uint256 _proposalId, bool _myVote) public;
    function hasPreviousVote(uint256 _proposalId, address _voter) public view returns (bool);
    function getTotalTokenVotingPower(address _voter) public view returns ( uint256 );
    function getVotingPower(uint256 _proposalId, address _voter) public view returns ( uint256 );
    function setVoteCountPerProcess(uint256 _perProcess) external;
    function ProcessVoteTotals(uint256 _proposalId, uint256 length) public;
    function canEndVoting(uint256 _proposalId) public view returns (bool);
    function getProposalType(uint256 _proposalId) public view returns (uint8);
    function expiryChangesState(uint256 _proposalId) public view returns (bool);
    function needsProcessing(uint256 _proposalId) public view returns (bool);
    function getMyVoteForCurrentMilestoneRelease(address _voter) public view returns (bool);
    function getHasVoteForCurrentMilestoneRelease(address _voter) public view returns (bool);
    function getMyVote(uint256 _proposalId, address _voter) public view returns (bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Funding Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Funding Contract code deployed and linked to the Application Entity


    !!! Links directly to Milestones

*/





contract ABIFunding is ABIApplicationAsset {

    address public multiSigOutputAddress;
    address public DirectInput;
    address public MilestoneInput;
    address public TokenManagerEntity;
    address public FundingManagerEntity;

    struct FundingStage {
        bytes32 name;
        uint8   state;
        uint256 time_start;
        uint256 time_end;
        uint256 amount_cap_soft;            // 0 = not enforced
        uint256 amount_cap_hard;            // 0 = not enforced
        uint256 amount_raised;              // 0 = not enforced
        // funding method settings
        uint256 minimum_entry;
        uint8   methods;                    // FundingMethodIds
        // token settings
        uint256 fixed_tokens;
        uint8   price_addition_percentage;  //
        uint8   token_share_percentage;
        uint8   index;
    }

    mapping (uint8 => FundingStage) public Collection;
    uint8 public FundingStageNum;
    uint8 public currentFundingStage;
    uint256 public AmountRaised;
    uint256 public MilestoneAmountRaised;
    uint256 public GlobalAmountCapSoft;
    uint256 public GlobalAmountCapHard;
    uint8 public TokenSellPercentage;
    uint256 public Funding_Setting_funding_time_start;
    uint256 public Funding_Setting_funding_time_end;
    uint256 public Funding_Setting_cashback_time_start;
    uint256 public Funding_Setting_cashback_time_end;
    uint256 public Funding_Setting_cashback_before_start_wait_duration;
    uint256 public Funding_Setting_cashback_duration;


    function addFundingStage(
        bytes32 _name,
        uint256 _time_start,
        uint256 _time_end,
        uint256 _amount_cap_soft,
        uint256 _amount_cap_hard,   // required > 0
        uint8   _methods,
        uint256 _minimum_entry,
        uint256 _fixed_tokens,
        uint8   _price_addition_percentage,
        uint8   _token_share_percentage
    )
    public;

    function addSettings(address _outputAddress, uint256 soft_cap, uint256 hard_cap, uint8 sale_percentage, address _direct, address _milestone ) public;
    function getStageAmount(uint8 StageId) public view returns ( uint256 );
    function allowedPaymentMethod(uint8 _payment_method) public pure returns (bool);
    function receivePayment(address _sender, uint8 _payment_method) payable public returns(bool);
    function canAcceptPayment(uint256 _amount) public view returns (bool);
    function getValueOverCurrentCap(uint256 _amount) public view returns (uint256);
    function isFundingStageUpdateAllowed(uint8 _new_state ) public view returns (bool);
    function getRecordStateRequiredChanges() public view returns (uint8);
    function doStateChanges() public;
    function hasRequiredStateChanges() public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8, uint8);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Meetings Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Meetings Contract code deployed and linked to the Application Entity

*/





contract ABIMeetings is ABIApplicationAsset {
    struct Record {
        bytes32 hash;
        bytes32 name;
        uint8 state;
        uint256 time_start;                     // start at unixtimestamp
        uint256 duration;
        uint8 index;
    }
    mapping (uint8 => Record) public Collection;
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Milestones Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Milestones Contract code deployed and linked to the Application Entity

*/





contract ABIMilestones is ABIApplicationAsset {

    struct Record {
        bytes32 name;
        string description;                     // will change to hash pointer ( external storage )
        uint8 state;
        uint256 duration;
        uint256 time_start;                     // start at unixtimestamp
        uint256 last_state_change_time;         // time of last state change
        uint256 time_end;                       // estimated end time >> can be increased by proposal
        uint256 time_ended;                     // actual end time
        uint256 meeting_time;
        uint8 funding_percentage;
        uint8 index;
    }

    uint8 public currentRecord;
    uint256 public MilestoneCashBackTime = 0;
    mapping (uint8 => Record) public Collection;
    mapping (bytes32 => bool) public MilestonePostponingHash;
    mapping (bytes32 => uint256) public ProposalIdByHash;

    function getBylawsProjectDevelopmentStart() public view returns (uint256);
    function getBylawsMinTimeInTheFutureForMeetingCreation() public view returns (uint256);
    function getBylawsCashBackVoteRejectedDuration() public view returns (uint256);
    function addRecord( bytes32 _name, string _description, uint256 _duration, uint8 _perc ) public;
    function getMilestoneFundingPercentage(uint8 recordId) public view returns (uint8);
    function doStateChanges() public;
    function getRecordStateRequiredChanges() public view returns (uint8);
    function hasRequiredStateChanges() public view returns (bool);
    function afterVoteNoCashBackTime() public view returns ( bool );
    function getHash(uint8 actionType, bytes32 arg1, bytes32 arg2) public pure returns ( bytes32 );
    function getCurrentHash() public view returns ( bytes32 );
    function getCurrentProposalId() internal view returns ( uint256 );
    function setCurrentMilestoneMeetingTime(uint256 _meeting_time) public;
    function isRecordUpdateAllowed(uint8 _new_state ) public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8, uint8);
    function ApplicationIsInDevelopment() public view returns(bool);
    function MeetingTimeSetFailure() public view returns (bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Bounty Program Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

  Bounty program contract that holds and distributes tokens upon successful funding.

*/





contract ABIBountyManager is ABIApplicationAsset {
    function sendBounty( address _receiver, uint256 _amount ) public;
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Token Manager Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

*/





contract ABITokenManager is ABIApplicationAsset {

    address public TokenSCADAEntity;
    address public TokenEntity;
    address public MarketingMethodAddress;
    bool OwnerTokenBalancesReleased = false;

    function addSettings(address _scadaAddress, address _tokenAddress, address _marketing ) public;
    function getTokenSCADARequiresHardCap() public view returns (bool);
    function mint(address _to, uint256 _amount) public returns (bool);
    function finishMinting() public returns (bool);
    function mintForMarketingPool(address _to, uint256 _amount) external returns (bool);
    function ReleaseOwnersLockedTokens(address _multiSigOutputAddress) public returns (bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Funding Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the Funding Contract code deployed and linked to the Application Entity

*/





contract ABIFundingManager is ABIApplicationAsset {

    bool public fundingProcessed;
    bool FundingPoolBalancesAllocated;
    uint8 public VaultCountPerProcess;
    uint256 public lastProcessedVaultId;
    uint256 public vaultNum;
    uint256 public LockedVotingTokens;
    bytes32 public currentTask;
    mapping (bytes32 => bool) public taskByHash;
    mapping  (address => address) public vaultList;
    mapping  (uint256 => address) public vaultById;

    function receivePayment(address _sender, uint8 _payment_method, uint8 _funding_stage) payable public returns(bool);
    function getMyVaultAddress(address _sender) public view returns (address);
    function setVaultCountPerProcess(uint8 _perProcess) external;
    function getHash(bytes32 actionType, bytes32 arg1) public pure returns ( bytes32 );
    function getCurrentMilestoneProcessed() public view returns (bool);
    function processFundingFailedFinished() public view returns (bool);
    function processFundingSuccessfulFinished() public view returns (bool);
    function getCurrentMilestoneIdHash() internal view returns (bytes32);
    function processMilestoneFinished() public view returns (bool);
    function processEmergencyFundReleaseFinished() public view returns (bool);
    function getAfterTransferLockedTokenBalances(address vaultAddress, bool excludeCurrent) public view returns (uint256);
    function VaultRequestedUpdateForLockedVotingTokens(address owner) public;
    function doStateChanges() public;
    function hasRequiredStateChanges() public view returns (bool);
    function getRequiredStateChanges() public view returns (uint8, uint8);
    function ApplicationInFundingOrDevelopment() public view returns(bool);

}

/*

 * source       https://github.com/blockbitsio/

 * @name        Listing Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

*/





contract ABIListingContract is ABIApplicationAsset {

    address public managerAddress;
    // child items
    struct item {
        bytes32 name;
        address itemAddress;
        bool    status;
        uint256 index;
    }

    mapping ( uint256 => item ) public items;
    uint256 public itemNum;

    function setManagerAddress(address _manager) public;
    function addItem(bytes32 _name, address _address) public;
    function getNewsContractAddress(uint256 _childId) external view returns (address);
    function canBeDelisted(uint256 _childId) public view returns (bool);
    function getChildStatus( uint256 _childId ) public view returns (bool);
    function delistChild( uint256 _childId ) public;

}

/*

 * source       https://github.com/blockbitsio/

 * @name        News Contract ABI
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

*/





contract ABINewsContract is ABIApplicationAsset {

    struct item {
        string hash;
        uint8 itemType;
        uint256 length;
    }

    uint256 public itemNum = 0;
    mapping ( uint256 => item ) public items;

    function addInternalMessage(uint8 state) public;
    function addItem(string _hash, uint256 _length) public;
}

/*

 * source       https://github.com/blockbitsio/

 * @name        Application Entity Contract
 * @package     BlockBitsIO
 * @author      Micky Socaci <[email protected]>

 Contains the main company Entity Contract code deployed and linked to the Gateway Interface.

*/














contract ApplicationEntity {

    /* Source Code Url */
    bytes32 sourceCodeUrl;

    /* Entity initialised or not */
    bool public _initialized = false;

    /* Entity locked or not */
    bool public _locked = false;

    /* Current Entity State */
    uint8 public CurrentEntityState;

    /* Available Entity State */
    mapping (bytes32 => uint8) public EntityStates;

    /* GatewayInterface address */
    address public GatewayInterfaceAddress;

    /* Parent Entity Instance */
    ABIGatewayInterface GatewayInterfaceEntity;

    /* Asset Entities */
    ABIProposals public ProposalsEntity;
    ABIFunding public FundingEntity;
    ABIMilestones public MilestonesEntity;
    ABIMeetings public MeetingsEntity;
    ABIBountyManager public BountyManagerEntity;
    ABITokenManager public TokenManagerEntity;
    ABIListingContract public ListingContractEntity;
    ABIFundingManager public FundingManagerEntity;
    ABINewsContract public NewsContractEntity;

    /* Asset Collection */
    mapping (bytes32 => address) public AssetCollection;
    mapping (uint8 => bytes32) public AssetCollectionIdToName;
    uint8 public AssetCollectionNum = 0;

    event EventAppEntityReady ( address indexed _address );
    event EventAppEntityCodeUpgradeProposal ( address indexed _address, bytes32 indexed _sourceCodeUrl );
    event EventAppEntityInitAsset ( bytes32 indexed _name, address indexed _address );
    event EventAppEntityInitAssetsToThis ( uint8 indexed _assetNum );
    event EventAppEntityAssetsToNewApplication ( address indexed _address );
    event EventAppEntityLocked ( address indexed _address );

    address public deployerAddress;

    function ApplicationEntity() public {
        deployerAddress = msg.sender;
        setEntityStates();
        CurrentEntityState = getEntityState("NEW");
    }

    function setEntityStates() internal {

        // ApplicationEntity States
        EntityStates["__IGNORED__"]                 = 0;
        EntityStates["NEW"]                         = 1;
        EntityStates["WAITING"]                     = 2;

        EntityStates["IN_FUNDING"]                  = 3;

        EntityStates["IN_DEVELOPMENT"]              = 5;
        EntityStates["IN_CODE_UPGRADE"]             = 50;

        EntityStates["UPGRADED"]                    = 100;

        EntityStates["IN_GLOBAL_CASHBACK"]          = 150;
        EntityStates["LOCKED"]                      = 200;

        EntityStates["DEVELOPMENT_COMPLETE"]        = 250;
    }

    function getEntityState(bytes32 name) public view returns (uint8) {
        return EntityStates[name];
    }

    /*
    * Initialize Application and it's assets
    * If gateway is freshly deployed, just link
    * else, create a voting proposal that needs to be accepted for the linking
    *
    * @param        address _newAddress
    * @param        bytes32 _sourceCodeUrl
    *
    * @modifiers    requireNoParent, requireNotInitialised
    */
    function linkToGateway(
        address _GatewayInterfaceAddress,
        bytes32 _sourceCodeUrl
    )
        external
        requireNoParent
        requireNotInitialised
        onlyDeployer
    {
        GatewayInterfaceAddress = _GatewayInterfaceAddress;
        sourceCodeUrl = _sourceCodeUrl;

        // init gateway entity and set app address
        GatewayInterfaceEntity = ABIGatewayInterface(GatewayInterfaceAddress);
        GatewayInterfaceEntity.requestCodeUpgrade( address(this), sourceCodeUrl );
    }

    function setUpgradeState(uint8 state) public onlyGatewayInterface {
        CurrentEntityState = state;
    }

    /*
        For the sake of simplicity, and solidity warnings about "unknown gas usage" do this.. instead of sending
        an array of addresses
    */
    function addAssetProposals(address _assetAddresses) external requireNotInitialised onlyDeployer {
        ProposalsEntity = ABIProposals(_assetAddresses);
        assetInitialized("Proposals", _assetAddresses);
    }

    function addAssetFunding(address _assetAddresses) external requireNotInitialised onlyDeployer {
        FundingEntity = ABIFunding(_assetAddresses);
        assetInitialized("Funding", _assetAddresses);
    }

    function addAssetMilestones(address _assetAddresses) external requireNotInitialised onlyDeployer {
        MilestonesEntity = ABIMilestones(_assetAddresses);
        assetInitialized("Milestones", _assetAddresses);
    }

    function addAssetMeetings(address _assetAddresses) external requireNotInitialised onlyDeployer {
        MeetingsEntity = ABIMeetings(_assetAddresses);
        assetInitialized("Meetings", _assetAddresses);
    }

    function addAssetBountyManager(address _assetAddresses) external requireNotInitialised onlyDeployer {
        BountyManagerEntity = ABIBountyManager(_assetAddresses);
        assetInitialized("BountyManager", _assetAddresses);
    }

    function addAssetTokenManager(address _assetAddresses) external requireNotInitialised onlyDeployer {
        TokenManagerEntity = ABITokenManager(_assetAddresses);
        assetInitialized("TokenManager", _assetAddresses);
    }

    function addAssetFundingManager(address _assetAddresses) external requireNotInitialised onlyDeployer {
        FundingManagerEntity = ABIFundingManager(_assetAddresses);
        assetInitialized("FundingManager", _assetAddresses);
    }

    function addAssetListingContract(address _assetAddresses) external requireNotInitialised onlyDeployer {
        ListingContractEntity = ABIListingContract(_assetAddresses);
        assetInitialized("ListingContract", _assetAddresses);
    }

    function addAssetNewsContract(address _assetAddresses) external requireNotInitialised onlyDeployer {
        NewsContractEntity = ABINewsContract(_assetAddresses);
        assetInitialized("NewsContract", _assetAddresses);
    }

    function assetInitialized(bytes32 name, address _assetAddresses) internal {
        if(AssetCollection[name] == 0x0) {
            AssetCollectionIdToName[AssetCollectionNum] = name;
            AssetCollection[name] = _assetAddresses;
            AssetCollectionNum++;
        } else {
            // just replace
            AssetCollection[name] = _assetAddresses;
        }
        EventAppEntityInitAsset(name, _assetAddresses);
    }

    function getAssetAddressByName(bytes32 _name) public view returns (address) {
        return AssetCollection[_name];
    }

    /* Application Bylaws mapping */
    mapping (bytes32 => uint256) public BylawsUint256;
    mapping (bytes32 => bytes32) public BylawsBytes32;


    function setBylawUint256(bytes32 name, uint256 value) public requireNotInitialised onlyDeployer {
        BylawsUint256[name] = value;
    }

    function getBylawUint256(bytes32 name) public view requireInitialised returns (uint256) {
        return BylawsUint256[name];
    }

    function setBylawBytes32(bytes32 name, bytes32 value) public requireNotInitialised onlyDeployer {
        BylawsBytes32[name] = value;
    }

    function getBylawBytes32(bytes32 name) public view requireInitialised returns (bytes32) {
        return BylawsBytes32[name];
    }

    function initialize() external requireNotInitialised onlyGatewayInterface returns (bool) {
        _initialized = true;
        EventAppEntityReady( address(this) );
        return true;
    }

    function getParentAddress() external view returns(address) {
        return GatewayInterfaceAddress;
    }

    function createCodeUpgradeProposal(
        address _newAddress,
        bytes32 _sourceCodeUrl
    )
        external
        requireInitialised
        onlyGatewayInterface
        returns (uint256)
    {
        // proposals create new.. code upgrade proposal
        EventAppEntityCodeUpgradeProposal ( _newAddress, _sourceCodeUrl );

        // return true;
        return ProposalsEntity.addCodeUpgradeProposal(_newAddress, _sourceCodeUrl);
    }

    /*
    * Only a proposal can update the ApplicationEntity Contract address
    *
    * @param        address _newAddress
    * @modifiers    onlyProposalsAsset
    */
    function acceptCodeUpgradeProposal(address _newAddress) external onlyProposalsAsset  {
        GatewayInterfaceEntity.approveCodeUpgrade( _newAddress );
    }

    function initializeAssetsToThisApplication() external onlyGatewayInterface returns (bool) {

        for(uint8 i = 0; i < AssetCollectionNum; i++ ) {
            bytes32 _name = AssetCollectionIdToName[i];
            address current = AssetCollection[_name];
            if(current != address(0x0)) {
                if(!current.call(bytes4(keccak256("setInitialOwnerAndName(bytes32)")), _name) ) {
                    revert();
                }
            } else {
                revert();
            }
        }
        EventAppEntityInitAssetsToThis( AssetCollectionNum );

        return true;
    }

    function transferAssetsToNewApplication(address _newAddress) external onlyGatewayInterface returns (bool){
        for(uint8 i = 0; i < AssetCollectionNum; i++ ) {
            
            bytes32 _name = AssetCollectionIdToName[i];
            address current = AssetCollection[_name];
            if(current != address(0x0)) {
                if(!current.call(bytes4(keccak256("transferToNewOwner(address)")), _newAddress) ) {
                    revert();
                }
            } else {
                revert();
            }
        }
        EventAppEntityAssetsToNewApplication ( _newAddress );
        return true;
    }

    /*
    * Only the gateway interface can lock current app after a successful code upgrade proposal
    *
    * @modifiers    onlyGatewayInterface
    */
    function lock() external onlyGatewayInterface returns (bool) {
        _locked = true;
        CurrentEntityState = getEntityState("UPGRADED");
        EventAppEntityLocked(address(this));
        return true;
    }

    /*
        DUMMY METHOD, to be replaced in a future Code Upgrade with a check to determine if sender should be able to initiate a code upgrade
        specifically used after milestone development completes
    */
    address testAddressAllowUpgradeFrom;
    function canInitiateCodeUpgrade(address _sender) public view returns(bool) {
        // suppress warning
        if(testAddressAllowUpgradeFrom != 0x0 && testAddressAllowUpgradeFrom == _sender) {
            return true;
        }
        return false;
    }

    /*
    * Throws if called by any other entity except GatewayInterface
    */
    modifier onlyGatewayInterface() {
        require(GatewayInterfaceAddress != address(0) && msg.sender == GatewayInterfaceAddress);
        _;
    }

    /*
    * Throws if called by any other entity except Proposals Asset Contract
    */
    modifier onlyProposalsAsset() {
        require(msg.sender == address(ProposalsEntity));
        _;
    }

    modifier requireNoParent() {
        require(GatewayInterfaceAddress == address(0x0));
        _;
    }

    modifier requireNotInitialised() {
        require(_initialized == false && _locked == false);
        _;
    }

    modifier requireInitialised() {
        require(_initialized == true && _locked == false);
        _;
    }

    modifier onlyDeployer() {
        require(msg.sender == deployerAddress);
        _;
    }

    event DebugApplicationRequiredChanges( uint8 indexed _current, uint8 indexed _required );
    event EventApplicationEntityProcessor(uint8 indexed _current, uint8 indexed _required);

    /*
        We could create a generic method that iterates through all assets, and using assembly language get the return
        value of the "hasRequiredStateChanges" method on each asset. Based on return, run doStateChanges on them or not.

        Or we could be using a generic ABI contract that only defines the "hasRequiredStateChanges" and "doStateChanges"
        methods thus not requiring any assembly variable / memory management

        Problem with both cases is the fact that our application needs to change only specific asset states depending
        on it's own current state, thus making a generic call wasteful in gas usage.

        Let's stay away from that and follow the same approach as we do inside an asset.
        - view method: -> get required state changes
        - view method: -> has state changes
        - processor that does the actual changes.
        - doStateChanges recursive method that runs the processor if views require it to.

        // pretty similar to FundingManager
    */

    function doStateChanges() public {

        if(!_locked) {
            // process assets first so we can initialize them from NEW to WAITING
            AssetProcessor();

            var (returnedCurrentEntityState, EntityStateRequired) = getRequiredStateChanges();
            bool callAgain = false;

            DebugApplicationRequiredChanges( returnedCurrentEntityState, EntityStateRequired );

            if(EntityStateRequired != getEntityState("__IGNORED__") ) {
                EntityProcessor(EntityStateRequired);
                callAgain = true;
            }
        } else {
            revert();
        }
    }

    function hasRequiredStateChanges() public view returns (bool) {
        bool hasChanges = false;
        if(!_locked) {
            var (returnedCurrentEntityState, EntityStateRequired) = getRequiredStateChanges();
            // suppress unused local variable warning
            returnedCurrentEntityState = 0;
            if(EntityStateRequired != getEntityState("__IGNORED__") ) {
                hasChanges = true;
            }

            if(anyAssetHasChanges()) {
                hasChanges = true;
            }
        }
        return hasChanges;
    }

    function anyAssetHasChanges() public view returns (bool) {
        if( FundingEntity.hasRequiredStateChanges() ) {
            return true;
        }
        if( FundingManagerEntity.hasRequiredStateChanges() ) {
            return true;
        }
        if( MilestonesEntity.hasRequiredStateChanges() ) {
            return true;
        }
        if( ProposalsEntity.hasRequiredStateChanges() ) {
            return true;
        }

        return extendedAnyAssetHasChanges();
    }

    // use this when extending "has changes"
    function extendedAnyAssetHasChanges() internal view returns (bool) {
        if(_initialized) {}
        return false;
    }

    // use this when extending "asset state processor"
    function extendedAssetProcessor() internal  {
        // does not exist, but we check anyway to bypass compier warning about function state mutability
        if ( CurrentEntityState == 255 ) {
            ProposalsEntity.process();
        }
    }

    // view methods decide if changes are to be made
    // in case of tasks, we do them in the Processors.

    function AssetProcessor() internal {


        if ( CurrentEntityState == getEntityState("NEW") ) {

            // move all assets that have states to "WAITING"
            if(FundingEntity.hasRequiredStateChanges()) {
                FundingEntity.doStateChanges();
            }

            if(FundingManagerEntity.hasRequiredStateChanges()) {
                FundingManagerEntity.doStateChanges();
            }

            if( MilestonesEntity.hasRequiredStateChanges() ) {
                MilestonesEntity.doStateChanges();
            }

        } else if ( CurrentEntityState == getEntityState("WAITING") ) {

            if( FundingEntity.hasRequiredStateChanges() ) {
                FundingEntity.doStateChanges();
            }
        }
        else if ( CurrentEntityState == getEntityState("IN_FUNDING") ) {

            if( FundingEntity.hasRequiredStateChanges() ) {
                FundingEntity.doStateChanges();
            }

            if( FundingManagerEntity.hasRequiredStateChanges() ) {
                FundingManagerEntity.doStateChanges();
            }
        }
        else if ( CurrentEntityState == getEntityState("IN_DEVELOPMENT") ) {

            if( FundingManagerEntity.hasRequiredStateChanges() ) {
                FundingManagerEntity.doStateChanges();
            }

            if(MilestonesEntity.hasRequiredStateChanges()) {
                MilestonesEntity.doStateChanges();
            }

            if(ProposalsEntity.hasRequiredStateChanges()) {
                ProposalsEntity.process();
            }
        }
        else if ( CurrentEntityState == getEntityState("DEVELOPMENT_COMPLETE") ) {

            if(ProposalsEntity.hasRequiredStateChanges()) {
                ProposalsEntity.process();
            }
        }

        extendedAssetProcessor();
    }

    function EntityProcessor(uint8 EntityStateRequired) internal {

        EventApplicationEntityProcessor( CurrentEntityState, EntityStateRequired );

        // Update our Entity State
        CurrentEntityState = EntityStateRequired;

        // Do State Specific Updates

        if ( EntityStateRequired == getEntityState("IN_FUNDING") ) {
            // run Funding state changer
            // doStateChanges
        }

        // EntityStateRequired = getEntityState("IN_FUNDING");


        // Funding Failed
        /*
        if ( EntityStateRequired == getEntityState("FUNDING_FAILED_START") ) {
            // set ProcessVaultList Task
            currentTask = getHash("FUNDING_FAILED_START", "");
            CurrentEntityState = getEntityState("FUNDING_FAILED_PROGRESS");
        } else if ( EntityStateRequired == getEntityState("FUNDING_FAILED_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);

            // Funding Successful
        } else if ( EntityStateRequired == getEntityState("FUNDING_SUCCESSFUL_START") ) {

            // init SCADA variable cache.
            if(TokenSCADAEntity.initCacheForVariables()) {
                // start processing vaults
                currentTask = getHash("FUNDING_SUCCESSFUL_START", "");
                CurrentEntityState = getEntityState("FUNDING_SUCCESSFUL_PROGRESS");
            } else {
                // something went really wrong, just bail out for now
                CurrentEntityState = getEntityState("FUNDING_FAILED_START");
            }
        } else if ( EntityStateRequired == getEntityState("FUNDING_SUCCESSFUL_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);
            // Milestones
        } else if ( EntityStateRequired == getEntityState("MILESTONE_PROCESS_START") ) {
            currentTask = getHash("MILESTONE_PROCESS_START", getCurrentMilestoneId() );
            CurrentEntityState = getEntityState("MILESTONE_PROCESS_PROGRESS");
        } else if ( EntityStateRequired == getEntityState("MILESTONE_PROCESS_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);

            // Completion
        } else if ( EntityStateRequired == getEntityState("COMPLETE_PROCESS_START") ) {
            currentTask = getHash("COMPLETE_PROCESS_START", "");
            CurrentEntityState = getEntityState("COMPLETE_PROCESS_PROGRESS");
        } else if ( EntityStateRequired == getEntityState("COMPLETE_PROCESS_PROGRESS") ) {
            ProcessVaultList(VaultCountPerProcess);
        }
        */
    }

    /*
     * Method: Get Entity Required State Changes
     *
     * @access       public
     * @type         method
     *
     * @return       ( uint8 CurrentEntityState, uint8 EntityStateRequired )
     */
    function getRequiredStateChanges() public view returns (uint8, uint8) {

        uint8 EntityStateRequired = getEntityState("__IGNORED__");

        if( CurrentEntityState == getEntityState("NEW") ) {
            // general so we know we initialized
            EntityStateRequired = getEntityState("WAITING");

        } else if ( CurrentEntityState == getEntityState("WAITING") ) {

            // Funding Started
            if( FundingEntity.CurrentEntityState() == FundingEntity.getEntityState("IN_PROGRESS") ) {
                EntityStateRequired = getEntityState("IN_FUNDING");
            }

        } else if ( CurrentEntityState == getEntityState("IN_FUNDING") ) {

            if(FundingEntity.CurrentEntityState() == FundingEntity.getEntityState("SUCCESSFUL_FINAL")) {
                // SUCCESSFUL_FINAL means FUNDING was successful, and FundingManager has finished distributing tokens and ether
                EntityStateRequired = getEntityState("IN_DEVELOPMENT");

            } else if(FundingEntity.CurrentEntityState() == FundingEntity.getEntityState("FAILED_FINAL")) {
                // Funding failed..
                EntityStateRequired = getEntityState("IN_GLOBAL_CASHBACK");
            }

        } else if ( CurrentEntityState == getEntityState("IN_DEVELOPMENT") ) {

            // this is where most things happen
            // milestones get developed
            // code upgrades get initiated
            // proposals get created and voted

            /*
            if(ProposalsEntity.CurrentEntityState() == ProposalsEntity.getEntityState("CODE_UPGRADE_ACCEPTED")) {
                // check if we have an upgrade proposal that is accepted and move into said state
                EntityStateRequired = getEntityState("START_CODE_UPGRADE");
            }
            else
            */

            if(MilestonesEntity.CurrentEntityState() == MilestonesEntity.getEntityState("DEVELOPMENT_COMPLETE")) {
                // check if we finished developing all milestones .. and if so move state to complete.
                EntityStateRequired = getEntityState("DEVELOPMENT_COMPLETE");
            }

            if(MilestonesEntity.CurrentEntityState() == MilestonesEntity.getEntityState("DEADLINE_MEETING_TIME_FAILED")) {
                EntityStateRequired = getEntityState("IN_GLOBAL_CASHBACK");
            }

        } else if ( CurrentEntityState == getEntityState("START_CODE_UPGRADE") ) {

            // check stuff to move into IN_CODE_UPGRADE
            // EntityStateRequired = getEntityState("IN_CODE_UPGRADE");

        } else if ( CurrentEntityState == getEntityState("IN_CODE_UPGRADE") ) {

            // check stuff to finish
            // EntityStateRequired = getEntityState("FINISHED_CODE_UPGRADE");

        } else if ( CurrentEntityState == getEntityState("FINISHED_CODE_UPGRADE") ) {

            // move to IN_DEVELOPMENT or DEVELOPMENT_COMPLETE based on state before START_CODE_UPGRADE.
            // EntityStateRequired = getEntityState("DEVELOPMENT_COMPLETE");
            // EntityStateRequired = getEntityState("FINISHED_CODE_UPGRADE");

        }

        return (CurrentEntityState, EntityStateRequired);
    }

    function getTimestamp() view public returns (uint256) {
        return now;
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_GatewayInterfaceAddress","type":"address"},{"name":"_sourceCodeUrl","type":"bytes32"}],"name":"linkToGateway","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BountyManagerEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetMeetings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initializeAssetsToThisApplication","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_initialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MilestonesEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"transferAssetsToNewApplication","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ListingContractEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AssetCollectionNum","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"BylawsUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetProposals","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TokenManagerEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"anyAssetHasChanges","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"},{"name":"_sourceCodeUrl","type":"bytes32"}],"name":"createCodeUpgradeProposal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"canInitiateCodeUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"getAssetAddressByName","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FundingManagerEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"EntityStates","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CurrentEntityState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAddress","type":"address"}],"name":"acceptCodeUpgradeProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRequiredStateChanges","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"BylawsBytes32","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ProposalsEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getParentAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetBountyManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GatewayInterfaceAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetNewsContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetTokenManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetFunding","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"},{"name":"value","type":"uint256"}],"name":"setBylawUint256","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"FundingEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getBylawUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"AssetCollectionIdToName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MeetingsEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"state","type":"uint8"}],"name":"setUpgradeState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetMilestones","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetListingContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getEntityState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"},{"name":"value","type":"bytes32"}],"name":"setBylawBytes32","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_assetAddresses","type":"address"}],"name":"addAssetFundingManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"NewsContractEntity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"name","type":"bytes32"}],"name":"getBylawBytes32","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"deployerAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"AssetCollection","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doStateChanges","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hasRequiredStateChanges","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityReady","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":true,"name":"_sourceCodeUrl","type":"bytes32"}],"name":"EventAppEntityCodeUpgradeProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_name","type":"bytes32"},{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityInitAsset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_assetNum","type":"uint8"}],"name":"EventAppEntityInitAssetsToThis","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityAssetsToNewApplication","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"EventAppEntityLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_current","type":"uint8"},{"indexed":true,"name":"_required","type":"uint8"}],"name":"DebugApplicationRequiredChanges","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_current","type":"uint8"},{"indexed":true,"name":"_required","type":"uint8"}],"name":"EventApplicationEntityProcessor","type":"event"}]

60606040526001805461ffff191690556010805460ff1916905534156200002557600080fd5b6010805461010060a860020a03191661010033600160a060020a0316021790556200005d640100000000620000b6810262002a721704565b620000967f4e4557000000000000000000000000000000000000000000000000000000000064010000000062001d1e6200028b82021704565b600160026101000a81548160ff021916908360ff160217905550620002a0565b600260208190527f1571986cac29001408d5a805c092732b69d7a2216aa6d86673291f293368b4a9805460ff199081169091557f4367277135fbef6cf87fb14e9d47ade1482960dbbf00c01d394375f71771e0398054821660011790557f7913a6fa19726024782ef7a148e7db550dcbc51eb470d6242b931c402bba5c2f805482169092179091557f83c8fefbd7946a8864cd202d80b5778d5ba4cb2cb1fbdac017c1f6f04cef78b18054821660031790557fdae2bb7674ae32f749b72990d8a1a5e569be40c6cc43ccfc4bb3c21bc01431108054821660051790557f8d094966231befeec3e4d0db8e3587cc64b69e454adeea48d0e9db708a6eef068054821660321790557feb7b095427e081bad6c442176766b1258143508dc792040caa37d33c61addf458054821660641790557f1e7629750ed71ff73b296b8f7616be8ecba180eaef985f975be8a8a674e5088a8054821660961790557f4ae593bd57a2b32aef0e06cd62e50b8d9de58ff7fc66306c5146ad26355869798054821660c81790557f444556454c4f504d454e545f434f4d504c4554450000000000000000000000006000527f840289b0cf7cf1c971b6bfea7a0360d02581332e68ee0335db345f3c99c0fef6805490911660fa179055565b60009081526002602052604090205460ff1690565b612ca180620002b06000396000f300606060405236156102405763ffffffff60e060020a600035041663093e461c8114610245578063188ec3561461026957806319ee5bca1461028e5780631c0933c8146102bd578063223fcbc9146102dc57806322b01343146103035780633072cf601461031657806330f7589014610329578063361821271461033c578063385fbe241461035b5780634073002e1461036e5780634646b9b9146103975780634b630b93146103ad57806351fc6f59146103cc57806357945e3e146103df578063584ae175146103f25780635d13394514610414578063689216c7146104335780636ad49245146104495780636d0a11c31461045c5780637278d623146104725780638129fc1c14610485578063885acb6a1461049857806388db84bc146104b75780638f93668c146104e8578063919baade146104fe57806391fa0555146105115780639258b19514610524578063961ffc6814610543578063a079f58b14610556578063a2b09d9b14610575578063a32a626d14610594578063a871d86d146105b3578063b37edb66146105cc578063b44ce893146105df578063b5072dc9146105f5578063b8109e1a1461060e578063cf70c6c714610621578063d079db0a1461063a578063dc7a9aea14610659578063e490c51314610678578063e4deeb4f1461068e578063e55b4ed0146106a7578063e8be2e8e146106c6578063ee44da7e146106d9578063efdee94f146106ef578063f5a049e814610702578063f83d08ba14610718578063f86282da1461072b578063fa9d23521461073e575b600080fd5b341561025057600080fd5b610267600160a060020a0360043516602435610751565b005b341561027457600080fd5b61027c610859565b60405190815260200160405180910390f35b341561029957600080fd5b6102a161085e565b604051600160a060020a03909116815260200160405180910390f35b34156102c857600080fd5b610267600160a060020a036004351661086d565b34156102e757600080fd5b6102ef6108fb565b604051901515815260200160405180910390f35b341561030e57600080fd5b6102ef610909565b341561032157600080fd5b6102ef610a56565b341561033457600080fd5b6102a1610a5f565b341561034757600080fd5b6102ef600160a060020a0360043516610a6e565b341561036657600080fd5b6102a1610bc8565b341561037957600080fd5b610381610bd7565b60405160ff909116815260200160405180910390f35b34156103a257600080fd5b61027c600435610be0565b34156103b857600080fd5b610267600160a060020a0360043516610bf2565b34156103d757600080fd5b6102a1610c7d565b34156103ea57600080fd5b6102ef610c8c565b34156103fd57600080fd5b61027c600160a060020a0360043516602435610e5b565b341561041f57600080fd5b6102ef600160a060020a0360043516610f73565b341561043e57600080fd5b6102a1600435610fb3565b341561045457600080fd5b6102a1610fce565b341561046757600080fd5b610381600435610fdd565b341561047d57600080fd5b610381610ff2565b341561049057600080fd5b6102ef611001565b34156104a357600080fd5b610267600160a060020a03600435166110a5565b34156104c257600080fd5b6104ca611137565b60405160ff9283168152911660208201526040908101905180910390f35b34156104f357600080fd5b61027c600435611883565b341561050957600080fd5b6102a1611895565b341561051c57600080fd5b6102a16118a4565b341561052f57600080fd5b610267600160a060020a03600435166118b3565b341561054e57600080fd5b6102a161193e565b341561056157600080fd5b610267600160a060020a036004351661194d565b341561058057600080fd5b610267600160a060020a03600435166119d8565b341561059f57600080fd5b610267600160a060020a0360043516611a63565b34156105be57600080fd5b610267600435602435611aee565b34156105d757600080fd5b6102a1611b46565b34156105ea57600080fd5b61027c600435611b55565b341561060057600080fd5b61027c60ff60043516611b96565b341561061957600080fd5b6102a1611ba8565b341561062c57600080fd5b61026760ff60043516611bb7565b341561064557600080fd5b610267600160a060020a0360043516611c08565b341561066457600080fd5b610267600160a060020a0360043516611c93565b341561068357600080fd5b610381600435611d1e565b341561069957600080fd5b610267600435602435611d33565b34156106b257600080fd5b610267600160a060020a0360043516611d8b565b34156106d157600080fd5b6102a1611e16565b34156106e457600080fd5b61027c600435611e25565b34156106fa57600080fd5b6102a1611e66565b341561070d57600080fd5b6102a1600435611e7a565b341561072357600080fd5b6102ef611e95565b341561073657600080fd5b610267611f59565b341561074957600080fd5b6102ef612006565b600354600160a060020a03161561076757600080fd5b60015460ff161580156107825750600154610100900460ff16155b151561078d57600080fd5b60105433600160a060020a0390811661010090920416146107ad57600080fd5b60038054600160a060020a03808516600160a060020a0319928316179283905560008481556004805490931693821693909317918290551690637913c46590309084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083a57600080fd5b6102c65a03f1151561084b57600080fd5b505050604051805150505050565b425b90565b600954600160a060020a031681565b60015460ff161580156108885750600154610100900460ff16155b151561089357600080fd5b60105433600160a060020a0390811661010090920416146108b357600080fd5b60088054600160a060020a031916600160a060020a0383161790556108f87f4d656574696e677300000000000000000000000000000000000000000000000082612084565b50565b600154610100900460ff1681565b600354600090819081908190600160a060020a03161580159061093a575060035433600160a060020a039081169116145b151561094557600080fd5b600092505b60105460ff9081169084161015610a1a57505060ff81166000908152600f6020908152604080832054808452600e90925290912054600160a060020a031680156102405780600160a060020a03166040517f736574496e697469616c4f776e6572416e644e616d65286279746573333229008152601f01604051809103902060e060020a90048360405160e060020a63ffffffff8416028152600481019190915260240160006040518083038160008761646e5a03f1925050501515610a0f57600080fd5b60019092019161094a565b60105460ff167f4447098c49983e6ce7df34228d2fb3ee1e206320dafca142ce333703fd424d0660405160405180910390a26001935050505090565b60015460ff1681565b600754600160a060020a031681565b600354600090819081908190600160a060020a031615801590610a9f575060035433600160a060020a039081169116145b1515610aaa57600080fd5b600092505b60105460ff9081169084161015610b8757505060ff81166000908152600f6020908152604080832054808452600e90925290912054600160a060020a031680156102405780600160a060020a03166040517f7472616e73666572546f4e65774f776e657228616464726573732900000000008152601b01604051809103902060e060020a90048660405160e060020a63ffffffff8416028152600160a060020a03909116600482015260240160006040518083038160008761646e5a03f1925050501515610b7c57600080fd5b600190920191610aaf565b84600160a060020a03167fd29ca17da27937497e29787c151a78fc285933f2efa462df2d244adf8c70731b60405160405180910390a2506001949350505050565b600b54600160a060020a031681565b60105460ff1681565b60116020526000908152604090205481565b60015460ff16158015610c0d5750600154610100900460ff16155b1515610c1857600080fd5b60105433600160a060020a039081166101009092041614610c3857600080fd5b60058054600160a060020a031916600160a060020a0383161790556108f87f50726f706f73616c73000000000000000000000000000000000000000000000082612084565b600a54600160a060020a031681565b600654600090600160a060020a031663fa9d235282604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610cd657600080fd5b6102c65a03f11515610ce757600080fd5b5050506040518051905015610cfe5750600161085b565b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d4657600080fd5b6102c65a03f11515610d5757600080fd5b5050506040518051905015610d6e5750600161085b565b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610db657600080fd5b6102c65a03f11515610dc757600080fd5b5050506040518051905015610dde5750600161085b565b600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e2657600080fd5b6102c65a03f11515610e3757600080fd5b5050506040518051905015610e4e5750600161085b565b610e5661215d565b905090565b6001805460009160ff9091161515148015610e7e5750600154610100900460ff16155b1515610e8957600080fd5b600354600160a060020a031615801590610eb1575060035433600160a060020a039081169116145b1515610ebc57600080fd5b81600160a060020a0384167f713af27b8f37c676c63b76fd228c9ddd248ba45e410ec95807aad46d5b4b65c260405160405180910390a3600554600160a060020a03166366ea495d848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f5257600080fd5b6102c65a03f11515610f6357600080fd5b5050506040518051949350505050565b601354600090600160a060020a031615801590610f9d5750601354600160a060020a038381169116145b15610faa57506001610fae565b5060005b919050565b6000908152600e6020526040902054600160a060020a031690565b600c54600160a060020a031681565b60026020526000908152604090205460ff1681565b60015462010000900460ff1681565b60015460009060ff1615801561101f5750600154610100900460ff16155b151561102a57600080fd5b600354600160a060020a031615801590611052575060035433600160a060020a039081169116145b151561105d57600080fd5b6001805460ff191681179055600160a060020a0330167fac323ab32ca3474d93de997e67214e5e099848e5034ed2e5cbf21be4b8995cf160405160405180910390a250600190565b60055433600160a060020a039081169116146110c057600080fd5b600454600160a060020a0316630e09461d8260006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561111957600080fd5b6102c65a03f1151561112a57600080fd5b5050506040518051505050565b60008060006111657f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b90506111907f4e45570000000000000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156111d6576111cf7f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b905061186f565b6111ff7f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff9081169116141561132b57600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f494e5f50524f47524553530000000000000000000000000000000000000000006004820152602401602060405180830381600087803b151561128357600080fd5b6102c65a03f1151561129457600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156112eb57600080fd5b6102c65a03f115156112fc57600080fd5b5050506040518051905060ff161415611326576111cf600080516020612c36833981519152611d1e565b61186f565b611342600080516020612c36833981519152611d1e565b60015462010000900460ff908116911614156115a557600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f5355434345535346554c5f46494e414c000000000000000000000000000000006004820152602401602060405180830381600087803b15156113c657600080fd5b6102c65a03f115156113d757600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561142e57600080fd5b6102c65a03f1151561143f57600080fd5b5050506040518051905060ff1614156114825761147b7f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b9050611326565b600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f4641494c45445f46494e414c00000000000000000000000000000000000000006004820152602401602060405180830381600087803b15156114f057600080fd5b6102c65a03f1151561150157600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561155857600080fd5b6102c65a03f1151561156957600080fd5b5050506040518051905060ff161415611326576111cf7f494e5f474c4f42414c5f434153484241434b0000000000000000000000000000611d1e565b6115ce7f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156117bc57600754600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff8316028152600080516020612c568339815191526004820152602401602060405180830381600087803b151561164057600080fd5b6102c65a03f1151561165157600080fd5b505050604051805160075460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156116a857600080fd5b6102c65a03f115156116b957600080fd5b5050506040518051905060ff1614156116e6576116e3600080516020612c56833981519152611d1e565b90505b600754600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f444541444c494e455f4d454554494e475f54494d455f4641494c4544000000006004820152602401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b505050604051805160075460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561155857600080fd5b6117e57f53544152545f434f44455f555047524144450000000000000000000000000000611d1e565b60015462010000900460ff908116911614156118005761186f565b6118297f494e5f434f44455f555047524144450000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156118445761186f565b61186d7f46494e49534845445f434f44455f555047524144450000000000000000000000611d1e565b505b60015462010000900460ff16939092509050565b60126020526000908152604090205481565b600554600160a060020a031681565b600354600160a060020a031690565b60015460ff161580156118ce5750600154610100900460ff16155b15156118d957600080fd5b60105433600160a060020a0390811661010090920416146118f957600080fd5b60098054600160a060020a031916600160a060020a0383161790556108f87f426f756e74794d616e616765720000000000000000000000000000000000000082612084565b600354600160a060020a031681565b60015460ff161580156119685750600154610100900460ff16155b151561197357600080fd5b60105433600160a060020a03908116610100909204161461199357600080fd5b600d8054600160a060020a031916600160a060020a0383161790556108f87f4e657773436f6e7472616374000000000000000000000000000000000000000082612084565b60015460ff161580156119f35750600154610100900460ff16155b15156119fe57600080fd5b60105433600160a060020a039081166101009092041614611a1e57600080fd5b600a8054600160a060020a031916600160a060020a0383161790556108f87f546f6b656e4d616e61676572000000000000000000000000000000000000000082612084565b60015460ff16158015611a7e5750600154610100900460ff16155b1515611a8957600080fd5b60105433600160a060020a039081166101009092041614611aa957600080fd5b60068054600160a060020a031916600160a060020a0383161790556108f87f46756e64696e670000000000000000000000000000000000000000000000000082612084565b60015460ff16158015611b095750600154610100900460ff16155b1515611b1457600080fd5b60105433600160a060020a039081166101009092041614611b3457600080fd5b60009182526011602052604090912055565b600654600160a060020a031681565b6001805460009160ff9091161515148015611b785750600154610100900460ff16155b1515611b8357600080fd5b5060009081526011602052604090205490565b600f6020526000908152604090205481565b600854600160a060020a031681565b600354600160a060020a031615801590611bdf575060035433600160a060020a039081169116145b1515611bea57600080fd5b6001805460ff909216620100000262ff000019909216919091179055565b60015460ff16158015611c235750600154610100900460ff16155b1515611c2e57600080fd5b60105433600160a060020a039081166101009092041614611c4e57600080fd5b60078054600160a060020a031916600160a060020a0383161790556108f87f4d696c6573746f6e65730000000000000000000000000000000000000000000082612084565b60015460ff16158015611cae5750600154610100900460ff16155b1515611cb957600080fd5b60105433600160a060020a039081166101009092041614611cd957600080fd5b600b8054600160a060020a031916600160a060020a0383161790556108f87f4c697374696e67436f6e7472616374000000000000000000000000000000000082612084565b60009081526002602052604090205460ff1690565b60015460ff16158015611d4e5750600154610100900460ff16155b1515611d5957600080fd5b60105433600160a060020a039081166101009092041614611d7957600080fd5b60009182526012602052604090912055565b60015460ff16158015611da65750600154610100900460ff16155b1515611db157600080fd5b60105433600160a060020a039081166101009092041614611dd157600080fd5b600c8054600160a060020a031916600160a060020a0383161790556108f87f46756e64696e674d616e6167657200000000000000000000000000000000000082612084565b600d54600160a060020a031681565b6001805460009160ff9091161515148015611e485750600154610100900460ff16155b1515611e5357600080fd5b5060009081526012602052604090205490565b6010546101009004600160a060020a031681565b600e60205260009081526040902054600160a060020a031681565b600354600090600160a060020a031615801590611ec0575060035433600160a060020a039081169116145b1515611ecb57600080fd5b6001805461ff001916610100179055611f037f5550475241444544000000000000000000000000000000000000000000000000611d1e565b600160026101000a81548160ff021916908360ff16021790555030600160a060020a03167f9235fcc46e6304061bb597b82120f4254379ad41518bdabfe6a5aadf2bbd984460405160405180910390a250600190565b60008060006001809054906101000a900460ff16151561024057611f7b612162565b611f83611137565b92509250600090508160ff168360ff167f2f71aa01b3777c5ebd2c43bf8751a4ba245c9aba8350c804264cdaeed3ff0e4660405160405180910390a3611fe87f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b60ff83811691161461200157611ffd826129a1565b5060015b505050565b600154600090819081908190610100900460ff16151561207c57612028611137565b91509150600091506120597f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b60ff82811691161461206a57600192505b612072610c8c565b1561207c57600192505b509092915050565b6000828152600e6020526040902054600160a060020a031615156120fa576010805460ff9081166000908152600f60209081526040808320879055868352600e90915290208054600160a060020a031916600160a060020a038516179055815460ff198116908216600101909116179055612122565b6000828152600e602052604090208054600160a060020a031916600160a060020a0383161790555b600160a060020a038116827f9bcd2a1903ecb0fa792d8f80f3afd4b828fc813aa3713585baf4e78f8b9adcd760405160405180910390a35050565b600090565b61218b7f4e45570000000000000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156123da57600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156121e957600080fd5b6102c65a03f115156121fa57600080fd5b505050604051805190501561225d57600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561224857600080fd5b6102c65a03f1151561225957600080fd5b5050505b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156122a557600080fd5b6102c65a03f115156122b657600080fd5b505050604051805190501561231957600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561230457600080fd5b6102c65a03f1151561231557600080fd5b5050505b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561236157600080fd5b6102c65a03f1151561237257600080fd5b50505060405180519050156123d557600754600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6102c65a03f115156123d157600080fd5b5050505b612997565b6124037f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156124c057600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561246157600080fd5b6102c65a03f1151561247257600080fd5b50505060405180519050156123d557600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6124d7600080516020612c36833981519152611d1e565b60015462010000900460ff9081169116141561265057600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561253557600080fd5b6102c65a03f1151561254657600080fd5b50505060405180519050156125a957600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561259457600080fd5b6102c65a03f115156125a557600080fd5b5050505b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156125f157600080fd5b6102c65a03f1151561260257600080fd5b50505060405180519050156123d557600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6126797f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156128ae57600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156126d757600080fd5b6102c65a03f115156126e857600080fd5b505050604051805190501561274b57600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561273657600080fd5b6102c65a03f1151561274757600080fd5b5050505b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561279357600080fd5b6102c65a03f115156127a457600080fd5b505050604051805190501561280757600754600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156127f257600080fd5b6102c65a03f1151561280357600080fd5b5050505b600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561284f57600080fd5b6102c65a03f1151561286057600080fd5b50505060405180519050156123d557600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6128c5600080516020612c56833981519152611d1e565b60015462010000900460ff9081169116141561299757600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561292357600080fd5b6102c65a03f1151561293457600080fd5b505050604051805190501561299757600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561298257600080fd5b6102c65a03f1151561299357600080fd5b5050505b61299f612a0e565b565b60015460ff80831691620100009004167f5b95f0f469049848050d0240c5c05f2803667833231a58c81d6100d5a684891260405160405180910390a36001805462ff000019166201000060ff841602179055612a0a600080516020612c36833981519152611d1e565b5050565b60015460ff620100009091048116141561299f57600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515612a6157600080fd5b6102c65a03f1151561200157600080fd5b600260208190527f1571986cac29001408d5a805c092732b69d7a2216aa6d86673291f293368b4a9805460ff199081169091557f4367277135fbef6cf87fb14e9d47ade1482960dbbf00c01d394375f71771e0398054821660011790557f7913a6fa19726024782ef7a148e7db550dcbc51eb470d6242b931c402bba5c2f805482169092179091557f83c8fefbd7946a8864cd202d80b5778d5ba4cb2cb1fbdac017c1f6f04cef78b18054821660031790557fdae2bb7674ae32f749b72990d8a1a5e569be40c6cc43ccfc4bb3c21bc01431108054821660051790557f8d094966231befeec3e4d0db8e3587cc64b69e454adeea48d0e9db708a6eef068054821660321790557feb7b095427e081bad6c442176766b1258143508dc792040caa37d33c61addf458054821660641790557f1e7629750ed71ff73b296b8f7616be8ecba180eaef985f975be8a8a674e5088a8054821660961790557f4ae593bd57a2b32aef0e06cd62e50b8d9de58ff7fc66306c5146ad26355869798054821660c8179055600080516020612c568339815191526000527f840289b0cf7cf1c971b6bfea7a0360d02581332e68ee0335db345f3c99c0fef6805490911660fa1790555600494e5f46554e44494e4700000000000000000000000000000000000000000000444556454c4f504d454e545f434f4d504c455445000000000000000000000000a165627a7a723058202d817e64af6b8957e9bbd4b19125be99bd840aec25bfa2feb8291c4428f98fa60029

Deployed Bytecode

0x606060405236156102405763ffffffff60e060020a600035041663093e461c8114610245578063188ec3561461026957806319ee5bca1461028e5780631c0933c8146102bd578063223fcbc9146102dc57806322b01343146103035780633072cf601461031657806330f7589014610329578063361821271461033c578063385fbe241461035b5780634073002e1461036e5780634646b9b9146103975780634b630b93146103ad57806351fc6f59146103cc57806357945e3e146103df578063584ae175146103f25780635d13394514610414578063689216c7146104335780636ad49245146104495780636d0a11c31461045c5780637278d623146104725780638129fc1c14610485578063885acb6a1461049857806388db84bc146104b75780638f93668c146104e8578063919baade146104fe57806391fa0555146105115780639258b19514610524578063961ffc6814610543578063a079f58b14610556578063a2b09d9b14610575578063a32a626d14610594578063a871d86d146105b3578063b37edb66146105cc578063b44ce893146105df578063b5072dc9146105f5578063b8109e1a1461060e578063cf70c6c714610621578063d079db0a1461063a578063dc7a9aea14610659578063e490c51314610678578063e4deeb4f1461068e578063e55b4ed0146106a7578063e8be2e8e146106c6578063ee44da7e146106d9578063efdee94f146106ef578063f5a049e814610702578063f83d08ba14610718578063f86282da1461072b578063fa9d23521461073e575b600080fd5b341561025057600080fd5b610267600160a060020a0360043516602435610751565b005b341561027457600080fd5b61027c610859565b60405190815260200160405180910390f35b341561029957600080fd5b6102a161085e565b604051600160a060020a03909116815260200160405180910390f35b34156102c857600080fd5b610267600160a060020a036004351661086d565b34156102e757600080fd5b6102ef6108fb565b604051901515815260200160405180910390f35b341561030e57600080fd5b6102ef610909565b341561032157600080fd5b6102ef610a56565b341561033457600080fd5b6102a1610a5f565b341561034757600080fd5b6102ef600160a060020a0360043516610a6e565b341561036657600080fd5b6102a1610bc8565b341561037957600080fd5b610381610bd7565b60405160ff909116815260200160405180910390f35b34156103a257600080fd5b61027c600435610be0565b34156103b857600080fd5b610267600160a060020a0360043516610bf2565b34156103d757600080fd5b6102a1610c7d565b34156103ea57600080fd5b6102ef610c8c565b34156103fd57600080fd5b61027c600160a060020a0360043516602435610e5b565b341561041f57600080fd5b6102ef600160a060020a0360043516610f73565b341561043e57600080fd5b6102a1600435610fb3565b341561045457600080fd5b6102a1610fce565b341561046757600080fd5b610381600435610fdd565b341561047d57600080fd5b610381610ff2565b341561049057600080fd5b6102ef611001565b34156104a357600080fd5b610267600160a060020a03600435166110a5565b34156104c257600080fd5b6104ca611137565b60405160ff9283168152911660208201526040908101905180910390f35b34156104f357600080fd5b61027c600435611883565b341561050957600080fd5b6102a1611895565b341561051c57600080fd5b6102a16118a4565b341561052f57600080fd5b610267600160a060020a03600435166118b3565b341561054e57600080fd5b6102a161193e565b341561056157600080fd5b610267600160a060020a036004351661194d565b341561058057600080fd5b610267600160a060020a03600435166119d8565b341561059f57600080fd5b610267600160a060020a0360043516611a63565b34156105be57600080fd5b610267600435602435611aee565b34156105d757600080fd5b6102a1611b46565b34156105ea57600080fd5b61027c600435611b55565b341561060057600080fd5b61027c60ff60043516611b96565b341561061957600080fd5b6102a1611ba8565b341561062c57600080fd5b61026760ff60043516611bb7565b341561064557600080fd5b610267600160a060020a0360043516611c08565b341561066457600080fd5b610267600160a060020a0360043516611c93565b341561068357600080fd5b610381600435611d1e565b341561069957600080fd5b610267600435602435611d33565b34156106b257600080fd5b610267600160a060020a0360043516611d8b565b34156106d157600080fd5b6102a1611e16565b34156106e457600080fd5b61027c600435611e25565b34156106fa57600080fd5b6102a1611e66565b341561070d57600080fd5b6102a1600435611e7a565b341561072357600080fd5b6102ef611e95565b341561073657600080fd5b610267611f59565b341561074957600080fd5b6102ef612006565b600354600160a060020a03161561076757600080fd5b60015460ff161580156107825750600154610100900460ff16155b151561078d57600080fd5b60105433600160a060020a0390811661010090920416146107ad57600080fd5b60038054600160a060020a03808516600160a060020a0319928316179283905560008481556004805490931693821693909317918290551690637913c46590309084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083a57600080fd5b6102c65a03f1151561084b57600080fd5b505050604051805150505050565b425b90565b600954600160a060020a031681565b60015460ff161580156108885750600154610100900460ff16155b151561089357600080fd5b60105433600160a060020a0390811661010090920416146108b357600080fd5b60088054600160a060020a031916600160a060020a0383161790556108f87f4d656574696e677300000000000000000000000000000000000000000000000082612084565b50565b600154610100900460ff1681565b600354600090819081908190600160a060020a03161580159061093a575060035433600160a060020a039081169116145b151561094557600080fd5b600092505b60105460ff9081169084161015610a1a57505060ff81166000908152600f6020908152604080832054808452600e90925290912054600160a060020a031680156102405780600160a060020a03166040517f736574496e697469616c4f776e6572416e644e616d65286279746573333229008152601f01604051809103902060e060020a90048360405160e060020a63ffffffff8416028152600481019190915260240160006040518083038160008761646e5a03f1925050501515610a0f57600080fd5b60019092019161094a565b60105460ff167f4447098c49983e6ce7df34228d2fb3ee1e206320dafca142ce333703fd424d0660405160405180910390a26001935050505090565b60015460ff1681565b600754600160a060020a031681565b600354600090819081908190600160a060020a031615801590610a9f575060035433600160a060020a039081169116145b1515610aaa57600080fd5b600092505b60105460ff9081169084161015610b8757505060ff81166000908152600f6020908152604080832054808452600e90925290912054600160a060020a031680156102405780600160a060020a03166040517f7472616e73666572546f4e65774f776e657228616464726573732900000000008152601b01604051809103902060e060020a90048660405160e060020a63ffffffff8416028152600160a060020a03909116600482015260240160006040518083038160008761646e5a03f1925050501515610b7c57600080fd5b600190920191610aaf565b84600160a060020a03167fd29ca17da27937497e29787c151a78fc285933f2efa462df2d244adf8c70731b60405160405180910390a2506001949350505050565b600b54600160a060020a031681565b60105460ff1681565b60116020526000908152604090205481565b60015460ff16158015610c0d5750600154610100900460ff16155b1515610c1857600080fd5b60105433600160a060020a039081166101009092041614610c3857600080fd5b60058054600160a060020a031916600160a060020a0383161790556108f87f50726f706f73616c73000000000000000000000000000000000000000000000082612084565b600a54600160a060020a031681565b600654600090600160a060020a031663fa9d235282604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610cd657600080fd5b6102c65a03f11515610ce757600080fd5b5050506040518051905015610cfe5750600161085b565b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d4657600080fd5b6102c65a03f11515610d5757600080fd5b5050506040518051905015610d6e5750600161085b565b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610db657600080fd5b6102c65a03f11515610dc757600080fd5b5050506040518051905015610dde5750600161085b565b600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e2657600080fd5b6102c65a03f11515610e3757600080fd5b5050506040518051905015610e4e5750600161085b565b610e5661215d565b905090565b6001805460009160ff9091161515148015610e7e5750600154610100900460ff16155b1515610e8957600080fd5b600354600160a060020a031615801590610eb1575060035433600160a060020a039081169116145b1515610ebc57600080fd5b81600160a060020a0384167f713af27b8f37c676c63b76fd228c9ddd248ba45e410ec95807aad46d5b4b65c260405160405180910390a3600554600160a060020a03166366ea495d848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f5257600080fd5b6102c65a03f11515610f6357600080fd5b5050506040518051949350505050565b601354600090600160a060020a031615801590610f9d5750601354600160a060020a038381169116145b15610faa57506001610fae565b5060005b919050565b6000908152600e6020526040902054600160a060020a031690565b600c54600160a060020a031681565b60026020526000908152604090205460ff1681565b60015462010000900460ff1681565b60015460009060ff1615801561101f5750600154610100900460ff16155b151561102a57600080fd5b600354600160a060020a031615801590611052575060035433600160a060020a039081169116145b151561105d57600080fd5b6001805460ff191681179055600160a060020a0330167fac323ab32ca3474d93de997e67214e5e099848e5034ed2e5cbf21be4b8995cf160405160405180910390a250600190565b60055433600160a060020a039081169116146110c057600080fd5b600454600160a060020a0316630e09461d8260006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561111957600080fd5b6102c65a03f1151561112a57600080fd5b5050506040518051505050565b60008060006111657f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b90506111907f4e45570000000000000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156111d6576111cf7f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b905061186f565b6111ff7f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff9081169116141561132b57600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f494e5f50524f47524553530000000000000000000000000000000000000000006004820152602401602060405180830381600087803b151561128357600080fd5b6102c65a03f1151561129457600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156112eb57600080fd5b6102c65a03f115156112fc57600080fd5b5050506040518051905060ff161415611326576111cf600080516020612c36833981519152611d1e565b61186f565b611342600080516020612c36833981519152611d1e565b60015462010000900460ff908116911614156115a557600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f5355434345535346554c5f46494e414c000000000000000000000000000000006004820152602401602060405180830381600087803b15156113c657600080fd5b6102c65a03f115156113d757600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561142e57600080fd5b6102c65a03f1151561143f57600080fd5b5050506040518051905060ff1614156114825761147b7f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b9050611326565b600654600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f4641494c45445f46494e414c00000000000000000000000000000000000000006004820152602401602060405180830381600087803b15156114f057600080fd5b6102c65a03f1151561150157600080fd5b505050604051805160065460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561155857600080fd5b6102c65a03f1151561156957600080fd5b5050506040518051905060ff161415611326576111cf7f494e5f474c4f42414c5f434153484241434b0000000000000000000000000000611d1e565b6115ce7f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156117bc57600754600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff8316028152600080516020612c568339815191526004820152602401602060405180830381600087803b151561164057600080fd5b6102c65a03f1151561165157600080fd5b505050604051805160075460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156116a857600080fd5b6102c65a03f115156116b957600080fd5b5050506040518051905060ff1614156116e6576116e3600080516020612c56833981519152611d1e565b90505b600754600160a060020a031663e490c51360006040516020015260405160e060020a63ffffffff83160281527f444541444c494e455f4d454554494e475f54494d455f4641494c4544000000006004820152602401602060405180830381600087803b151561175457600080fd5b6102c65a03f1151561176557600080fd5b505050604051805160075460ff9091169150600160a060020a0316637278d6236000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561155857600080fd5b6117e57f53544152545f434f44455f555047524144450000000000000000000000000000611d1e565b60015462010000900460ff908116911614156118005761186f565b6118297f494e5f434f44455f555047524144450000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156118445761186f565b61186d7f46494e49534845445f434f44455f555047524144450000000000000000000000611d1e565b505b60015462010000900460ff16939092509050565b60126020526000908152604090205481565b600554600160a060020a031681565b600354600160a060020a031690565b60015460ff161580156118ce5750600154610100900460ff16155b15156118d957600080fd5b60105433600160a060020a0390811661010090920416146118f957600080fd5b60098054600160a060020a031916600160a060020a0383161790556108f87f426f756e74794d616e616765720000000000000000000000000000000000000082612084565b600354600160a060020a031681565b60015460ff161580156119685750600154610100900460ff16155b151561197357600080fd5b60105433600160a060020a03908116610100909204161461199357600080fd5b600d8054600160a060020a031916600160a060020a0383161790556108f87f4e657773436f6e7472616374000000000000000000000000000000000000000082612084565b60015460ff161580156119f35750600154610100900460ff16155b15156119fe57600080fd5b60105433600160a060020a039081166101009092041614611a1e57600080fd5b600a8054600160a060020a031916600160a060020a0383161790556108f87f546f6b656e4d616e61676572000000000000000000000000000000000000000082612084565b60015460ff16158015611a7e5750600154610100900460ff16155b1515611a8957600080fd5b60105433600160a060020a039081166101009092041614611aa957600080fd5b60068054600160a060020a031916600160a060020a0383161790556108f87f46756e64696e670000000000000000000000000000000000000000000000000082612084565b60015460ff16158015611b095750600154610100900460ff16155b1515611b1457600080fd5b60105433600160a060020a039081166101009092041614611b3457600080fd5b60009182526011602052604090912055565b600654600160a060020a031681565b6001805460009160ff9091161515148015611b785750600154610100900460ff16155b1515611b8357600080fd5b5060009081526011602052604090205490565b600f6020526000908152604090205481565b600854600160a060020a031681565b600354600160a060020a031615801590611bdf575060035433600160a060020a039081169116145b1515611bea57600080fd5b6001805460ff909216620100000262ff000019909216919091179055565b60015460ff16158015611c235750600154610100900460ff16155b1515611c2e57600080fd5b60105433600160a060020a039081166101009092041614611c4e57600080fd5b60078054600160a060020a031916600160a060020a0383161790556108f87f4d696c6573746f6e65730000000000000000000000000000000000000000000082612084565b60015460ff16158015611cae5750600154610100900460ff16155b1515611cb957600080fd5b60105433600160a060020a039081166101009092041614611cd957600080fd5b600b8054600160a060020a031916600160a060020a0383161790556108f87f4c697374696e67436f6e7472616374000000000000000000000000000000000082612084565b60009081526002602052604090205460ff1690565b60015460ff16158015611d4e5750600154610100900460ff16155b1515611d5957600080fd5b60105433600160a060020a039081166101009092041614611d7957600080fd5b60009182526012602052604090912055565b60015460ff16158015611da65750600154610100900460ff16155b1515611db157600080fd5b60105433600160a060020a039081166101009092041614611dd157600080fd5b600c8054600160a060020a031916600160a060020a0383161790556108f87f46756e64696e674d616e6167657200000000000000000000000000000000000082612084565b600d54600160a060020a031681565b6001805460009160ff9091161515148015611e485750600154610100900460ff16155b1515611e5357600080fd5b5060009081526012602052604090205490565b6010546101009004600160a060020a031681565b600e60205260009081526040902054600160a060020a031681565b600354600090600160a060020a031615801590611ec0575060035433600160a060020a039081169116145b1515611ecb57600080fd5b6001805461ff001916610100179055611f037f5550475241444544000000000000000000000000000000000000000000000000611d1e565b600160026101000a81548160ff021916908360ff16021790555030600160a060020a03167f9235fcc46e6304061bb597b82120f4254379ad41518bdabfe6a5aadf2bbd984460405160405180910390a250600190565b60008060006001809054906101000a900460ff16151561024057611f7b612162565b611f83611137565b92509250600090508160ff168360ff167f2f71aa01b3777c5ebd2c43bf8751a4ba245c9aba8350c804264cdaeed3ff0e4660405160405180910390a3611fe87f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b60ff83811691161461200157611ffd826129a1565b5060015b505050565b600154600090819081908190610100900460ff16151561207c57612028611137565b91509150600091506120597f5f5f49474e4f5245445f5f000000000000000000000000000000000000000000611d1e565b60ff82811691161461206a57600192505b612072610c8c565b1561207c57600192505b509092915050565b6000828152600e6020526040902054600160a060020a031615156120fa576010805460ff9081166000908152600f60209081526040808320879055868352600e90915290208054600160a060020a031916600160a060020a038516179055815460ff198116908216600101909116179055612122565b6000828152600e602052604090208054600160a060020a031916600160a060020a0383161790555b600160a060020a038116827f9bcd2a1903ecb0fa792d8f80f3afd4b828fc813aa3713585baf4e78f8b9adcd760405160405180910390a35050565b600090565b61218b7f4e45570000000000000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156123da57600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156121e957600080fd5b6102c65a03f115156121fa57600080fd5b505050604051805190501561225d57600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561224857600080fd5b6102c65a03f1151561225957600080fd5b5050505b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156122a557600080fd5b6102c65a03f115156122b657600080fd5b505050604051805190501561231957600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561230457600080fd5b6102c65a03f1151561231557600080fd5b5050505b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561236157600080fd5b6102c65a03f1151561237257600080fd5b50505060405180519050156123d557600754600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6102c65a03f115156123d157600080fd5b5050505b612997565b6124037f57414954494e4700000000000000000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156124c057600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561246157600080fd5b6102c65a03f1151561247257600080fd5b50505060405180519050156123d557600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6124d7600080516020612c36833981519152611d1e565b60015462010000900460ff9081169116141561265057600654600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561253557600080fd5b6102c65a03f1151561254657600080fd5b50505060405180519050156125a957600654600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561259457600080fd5b6102c65a03f115156125a557600080fd5b5050505b600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156125f157600080fd5b6102c65a03f1151561260257600080fd5b50505060405180519050156123d557600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6126797f494e5f444556454c4f504d454e54000000000000000000000000000000000000611d1e565b60015462010000900460ff908116911614156128ae57600c54600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156126d757600080fd5b6102c65a03f115156126e857600080fd5b505050604051805190501561274b57600c54600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561273657600080fd5b6102c65a03f1151561274757600080fd5b5050505b600754600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561279357600080fd5b6102c65a03f115156127a457600080fd5b505050604051805190501561280757600754600160a060020a031663f86282da6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156127f257600080fd5b6102c65a03f1151561280357600080fd5b5050505b600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561284f57600080fd5b6102c65a03f1151561286057600080fd5b50505060405180519050156123d557600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156123c057600080fd5b6128c5600080516020612c56833981519152611d1e565b60015462010000900460ff9081169116141561299757600554600160a060020a031663fa9d23526000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561292357600080fd5b6102c65a03f1151561293457600080fd5b505050604051805190501561299757600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561298257600080fd5b6102c65a03f1151561299357600080fd5b5050505b61299f612a0e565b565b60015460ff80831691620100009004167f5b95f0f469049848050d0240c5c05f2803667833231a58c81d6100d5a684891260405160405180910390a36001805462ff000019166201000060ff841602179055612a0a600080516020612c36833981519152611d1e565b5050565b60015460ff620100009091048116141561299f57600554600160a060020a031663c33fb8776040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515612a6157600080fd5b6102c65a03f1151561200157600080fd5b600260208190527f1571986cac29001408d5a805c092732b69d7a2216aa6d86673291f293368b4a9805460ff199081169091557f4367277135fbef6cf87fb14e9d47ade1482960dbbf00c01d394375f71771e0398054821660011790557f7913a6fa19726024782ef7a148e7db550dcbc51eb470d6242b931c402bba5c2f805482169092179091557f83c8fefbd7946a8864cd202d80b5778d5ba4cb2cb1fbdac017c1f6f04cef78b18054821660031790557fdae2bb7674ae32f749b72990d8a1a5e569be40c6cc43ccfc4bb3c21bc01431108054821660051790557f8d094966231befeec3e4d0db8e3587cc64b69e454adeea48d0e9db708a6eef068054821660321790557feb7b095427e081bad6c442176766b1258143508dc792040caa37d33c61addf458054821660641790557f1e7629750ed71ff73b296b8f7616be8ecba180eaef985f975be8a8a674e5088a8054821660961790557f4ae593bd57a2b32aef0e06cd62e50b8d9de58ff7fc66306c5146ad26355869798054821660c8179055600080516020612c568339815191526000527f840289b0cf7cf1c971b6bfea7a0360d02581332e68ee0335db345f3c99c0fef6805490911660fa1790555600494e5f46554e44494e4700000000000000000000000000000000000000000000444556454c4f504d454e545f434f4d504c455445000000000000000000000000a165627a7a723058202d817e64af6b8957e9bbd4b19125be99bd840aec25bfa2feb8291c4428f98fa60029

Swarm Source

bzzr://2d817e64af6b8957e9bbd4b19125be99bd840aec25bfa2feb8291c4428f98fa6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.