Contract 0xABC1c404424BDF24C19A5cC5EF8F47781D18Eb3E

 
Ad
Crypto.com
Txn Hash Method
Block
From
To
Value
0xc2325e55250d9f7c2df4638c7a67b22ce0554d2bdadf59e3bb1e2a6a141fd641Set Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.00007977322.3
0x632179a00345bdc43e35ceae87cdd1fc760b231f9b63f6f432ddb183486d07a8Set Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000357121631.030000101
0xaa01304d31fc7ea50fefeca13c747c59ec167a8ed78fd2c52a807156acb77ed5Set Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000351968831.014787316
0x1cb3524db435347bce4e42976001bbc9e4ab7f2214eac233a176fd27ff735fdfSet Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000346841
0x40f86423779a8034f42552429755e370c2a2486dcb8d14c1d6ba7fc1c7957863Set Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.000068993411.989888389
0x014070c69e1c5e795449c886bdeb1ae6d33f765185cc7145900906c54ed5b4b6Set Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.00004162081.2
0xf9ab5f618c69ce54a6a4494c9038b140d4cbbf6cf713efaea3366414ae0640e9Set Monster Clas...98471622020-04-10 22:15:50438 days 12 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000346721
0xf57fe0bfccba0675924ade1ae905ee0ae8916f88658c6fd50bbd5a838e0173ecSet Monster Clas...98443322020-04-10 11:48:29438 days 23 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.00004162081.2
0x5c07c5be9f53121d01f9c32cd3df90c18a66ad9e05472970a7c8b3d0b7fe2658Set Monster Clas...98443322020-04-10 11:48:29438 days 23 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000520261.5
0x1c57ab77111298555a0b0a203a105f5f6a94608bc510a9205ad5d00244dcd3f7Set Monster Clas...98443322020-04-10 11:48:29438 days 23 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.00004162081.2
0xe0ab9c691f86db6b745186bde151d3cca741bebc3b7be99be95dc94971d5ca9dSet Monster Clas...98443322020-04-10 11:48:29438 days 23 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.00003813921.1
0x77e7589ff2d6fed632ae4c9d19c22595e926ea20a93c318d8a65ef43e582de51Set Monster Clas...98421652020-04-10 3:35:30439 days 7 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000520261.5
0x13ad51726d699d00cb4e07e98a54589f7241c4741b47176efd65e68ac8d25c55Set Monster Clas...98418932020-04-10 2:33:14439 days 8 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000346841
0x2bed988f5b22ee66ecd08ced96e904418fcd445b80f4256f74276c98b8f3568fSet Monster Clas...98412752020-04-10 0:29:45439 days 10 hrs ago0x7bae63c4dbd39ec66669a1ef6e1cf6f747b71bdd IN  Etheremon: Data0 Ether0.0000531529161.532490975
0xe7fdf9514211d9503b6c24e2a2a20740e366ef45fc1702ef310cc9d9211fe5a0Change Owner95629752020-02-27 2:32:11482 days 8 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0002915610
0x7e6176aed9a31958311dca05c49809db74aa97d28134ed89d2e3e35e64726c44Add Moderator89240862019-11-13 3:10:39588 days 8 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.001226520
0x3a706090b8b595b1c4200ab3011872891afd6b88254ffbedd9130b7473aeb7efAdd Moderator79600582019-06-15 0:47:50739 days 10 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.00248041841
0x7094376ca6efde552d5d10f7e5e75b6a2a72bfd95f4694b957e82a45108961b5Add Moderator71019372019-01-21 4:00:27884 days 7 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0004773688
0x34b3125f6924aa587f2ae0d968e83d7121b7b2f053c1d1063fe37ff114f69c52Add Moderator65805152018-10-25 11:13:38971 days 23 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.00076497213
0xd34e2e9dcdf643024af25bb04c8a731eb1c8e26f89db98f6dc023b4197fd5a9dAdd Moderator62686882018-09-04 5:53:591023 days 5 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0002320684
0x88254ffd9c7211f9517c58831f3602ac876a73bb150f7416f750972ba60ad746Remove Moderator62680542018-09-04 3:23:051023 days 7 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0001599444
0xc7027c09c21086df04946e1687b2d44565a45b35a130c8a6e39be96405d8b577Add Moderator62649412018-09-03 14:52:051023 days 20 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0002320684
0x562b89c4c20cb7677a52ce9520a625ef311985565ce1c803e26002592ba402f8Update Index Of ...62632232018-09-03 7:52:141024 days 3 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0002032877
0xf895591d41e0726016d62bf40c23d09d82756ebf8658bf588a125994ce9baf32Update Index Of ...62632192018-09-03 7:50:501024 days 3 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0002032877
0xadb8374f139804901062f8f5daebe0a500ecb44c04f84d997185f3ce687b52c3Update Index Of ...62630172018-09-03 7:02:071024 days 4 hrs agoEtheremonToken: Deployer 1 IN  Etheremon: Data0 Ether0.0002032877
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtheremonData

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-17
*/

pragma solidity ^0.4.16;

// copyright [email protected]

contract SafeMath {

    /* function assert(bool assertion) internal { */
    /*   if (!assertion) { */
    /*     throw; */
    /*   } */
    /* }      // assert no longer needed once solidity is on 0.4.10 */

    function safeAdd(uint256 x, uint256 y) pure internal returns(uint256) {
      uint256 z = x + y;
      assert((z >= x) && (z >= y));
      return z;
    }

    function safeSubtract(uint256 x, uint256 y) pure internal returns(uint256) {
      assert(x >= y);
      uint256 z = x - y;
      return z;
    }

    function safeMult(uint256 x, uint256 y) pure internal returns(uint256) {
      uint256 z = x * y;
      assert((x == 0)||(z/x == y));
      return z;
    }

}

contract BasicAccessControl {
    address public owner;
    address[] public moderators;

    function BasicAccessControl() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyModerators() {
        if (msg.sender != owner) {
            bool found = false;
            for (uint index = 0; index < moderators.length; index++) {
                if (moderators[index] == msg.sender) {
                    found = true;
                    break;
                }
            }
            require(found);
        }
        _;
    }

    function ChangeOwner(address _newOwner) onlyOwner public {
        if (_newOwner != address(0)) {
            owner = _newOwner;
        }
    }

    function Kill() onlyOwner public {
        selfdestruct(owner);
    }

    function AddModerator(address _newModerator) onlyOwner public {
        if (_newModerator != address(0)) {
            for (uint index = 0; index < moderators.length; index++) {
                if (moderators[index] == _newModerator) {
                    return;
                }
            }
            moderators.push(_newModerator);
        }
    }
    
    function RemoveModerator(address _oldModerator) onlyOwner public {
        uint foundIndex = 0;
        for (; foundIndex < moderators.length; foundIndex++) {
            if (moderators[foundIndex] == _oldModerator) {
                break;
            }
        }
        if (foundIndex < moderators.length) {
            moderators[foundIndex] = moderators[moderators.length-1];
            delete moderators[moderators.length-1];
            moderators.length--;
        }
    }
}


contract EtheremonEnum {

    enum ResultCode {
        SUCCESS,
        ERROR_CLASS_NOT_FOUND,
        ERROR_LOW_BALANCE,
        ERROR_SEND_FAIL,
        ERROR_NOT_TRAINER,
        ERROR_NOT_ENOUGH_MONEY,
        ERROR_INVALID_AMOUNT
    }
    
    enum ArrayType {
        CLASS_TYPE,
        STAT_STEP,
        STAT_START,
        STAT_BASE,
        OBJ_SKILL
    }
}

contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath {
    
    uint64 public totalMonster;
    uint32 public totalClass;
    
    // write
    function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint);
    function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, uint8 _value) onlyModerators public returns(uint);
    function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32);
    function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64);
    function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public;
    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public;
    function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public;
    function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public;
    function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256 amount);
    function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount);
    function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode);
    function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256);
    function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256);
    function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public;
    
    // read
    function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint);
    function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8);
    function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable);
    function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime);
    function getMonsterName(uint64 _objId) constant public returns(string name);
    function getExtraBalance(address _trainer) constant public returns(uint256);
    function getMonsterDexSize(address _trainer) constant public returns(uint);
    function getMonsterObjId(address _trainer, uint index) constant public returns(uint64);
    function getExpectedBalance(address _trainer) constant public returns(uint256);
    function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total);
}

contract EtheremonData is EtheremonDataBase {

    struct MonsterClass {
        uint32 classId;
        uint8[] types;
        uint8[] statSteps;
        uint8[] statStarts;
        uint256 price;
        uint256 returnPrice;
        uint32 total;
        bool catchable;
    }
    
    struct MonsterObj {
        uint64 monsterId;
        uint32 classId;
        address trainer;
        string name;
        uint32 exp;
        uint8[] statBases;
        uint8[] skills;
        uint32 createIndex;
        uint32 lastClaimIndex;
        uint createTime;
    }

    mapping(uint32 => MonsterClass) public monsterClass;
    mapping(uint64 => MonsterObj) public monsterWorld;
    mapping(address => uint64[]) public trainerDex;
    mapping(address => uint256) public trainerExtraBalance;
    
    
    // write access
    function withdrawEther(address _sendTo, uint _amount) onlyOwner public returns(ResultCode) {
        if (_amount > this.balance) {
            return ResultCode.ERROR_INVALID_AMOUNT;
        }
        
        _sendTo.transfer(_amount);
        return ResultCode.SUCCESS;
    }
    
    function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        array.push(_value);
        return array.length;
    }
    
    function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, uint8 _value) onlyModerators public returns(uint) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        if (_index < array.length) {
            if (_value == 255) {
                // consider as delete
                for(uint i = _index; i < array.length - 1; i++) {
                    array[i] = array[i+1];
                }
                delete array[array.length-1];
                array.length--;
            } else {
                array[_index] = _value;
            }
        }
    }
    
    function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32) {
        MonsterClass storage class = monsterClass[_classId];
        if (class.classId == 0) {
            totalClass += 1;
        }
        class.classId = _classId;
        class.price = _price;
        class.returnPrice = _returnPrice;
        class.catchable = _catchable;
        return totalClass;
    }
    
    function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64) {
        MonsterClass storage class = monsterClass[_classId];
        if (class.classId == 0)
            return 0;
                
        // construct new monster
        totalMonster += 1;
        class.total += 1;

        MonsterObj storage obj = monsterWorld[totalMonster];
        obj.monsterId = totalMonster;
        obj.classId = _classId;
        obj.trainer = _trainer;
        obj.name = _name;
        obj.exp = 1;
        obj.createIndex = class.total;
        obj.lastClaimIndex = class.total;
        obj.createTime = now;

        // add to monsterdex
        addMonsterIdMapping(_trainer, obj.monsterId);
        return obj.monsterId;
    }
    
    function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public {
        MonsterObj storage obj = monsterWorld[_objId];
        if (obj.monsterId == _objId) {
            obj.name = _name;
            obj.exp = _exp;
            obj.createIndex = _createIndex;
            obj.lastClaimIndex = _lastClaimIndex;
        }
    }

    function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public {
        MonsterObj storage obj = monsterWorld[_objId];
        if (obj.monsterId == _objId) {
            obj.exp = uint32(safeAdd(obj.exp, amount));
        }
    }

    function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public {
        MonsterObj storage obj = monsterWorld[_objId];
        if (obj.monsterId == _objId) {
            obj.exp = uint32(safeSubtract(obj.exp, amount));
        }
    }

    function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public {
        uint foundIndex = 0;
        uint64[] storage objIdList = trainerDex[_trainer];
        for (; foundIndex < objIdList.length; foundIndex++) {
            if (objIdList[foundIndex] == _monsterId) {
                break;
            }
        }
        if (foundIndex < objIdList.length) {
            objIdList[foundIndex] = objIdList[objIdList.length-1];
            delete objIdList[objIdList.length-1];
            objIdList.length--;
            MonsterObj storage monster = monsterWorld[_monsterId];
            monster.trainer = 0;
        }
    }
    
    function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public {
        if (_trainer != address(0) && _monsterId > 0) {
            uint64[] storage objIdList = trainerDex[_trainer];
            for (uint i = 0; i < objIdList.length; i++) {
                if (objIdList[i] == _monsterId) {
                    return;
                }
            }
            objIdList.push(_monsterId);
            MonsterObj storage monster = monsterWorld[_monsterId];
            monster.trainer = _trainer;
        }
    }
    
    function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256) {
        MonsterObj storage monster = monsterWorld[_monsterId];
        MonsterClass storage class = monsterClass[monster.classId];
        if (monster.monsterId == 0 || class.classId == 0)
            return 0;
        uint256 amount = 0;
        uint32 gap = uint32(safeSubtract(class.total, monster.lastClaimIndex));
        if (gap > 0) {
            monster.lastClaimIndex = class.total;
            amount = safeMult(gap, class.returnPrice);
            trainerExtraBalance[monster.trainer] = safeAdd(trainerExtraBalance[monster.trainer], amount);
        }
        return amount;
    }
    
    function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount) {
        uint64[] storage objIdList = trainerDex[_trainer];
        for (uint i = 0; i < objIdList.length; i++) {
            clearMonsterReturnBalance(objIdList[i]);
        }
        return trainerExtraBalance[_trainer];
    }
    
    function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode) {
        MonsterObj storage monster = monsterWorld[_monsterId];
        if (monster.trainer != _from) {
            return ResultCode.ERROR_NOT_TRAINER;
        }
        
        clearMonsterReturnBalance(_monsterId);
        
        removeMonsterIdMapping(_from, _monsterId);
        addMonsterIdMapping(_to, _monsterId);
        return ResultCode.SUCCESS;
    }
    
    function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256) {
        trainerExtraBalance[_trainer] = safeAdd(trainerExtraBalance[_trainer], _amount);
        return trainerExtraBalance[_trainer];
    }
    
    function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256) {
        trainerExtraBalance[_trainer] = safeSubtract(trainerExtraBalance[_trainer], _amount);
        return trainerExtraBalance[_trainer];
    }
    
    function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public {
        trainerExtraBalance[_trainer] = _amount;
    }
    
    
    // public
    function () payable public {
        addExtraBalance(msg.sender, msg.value);
    }

    // read access
    function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        return array.length;
    }
    
    function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8) {
        uint8[] storage array = monsterWorld[_id].statBases;
        if (_type == ArrayType.CLASS_TYPE) {
            array = monsterClass[uint32(_id)].types;
        } else if (_type == ArrayType.STAT_STEP) {
            array = monsterClass[uint32(_id)].statSteps;
        } else if (_type == ArrayType.STAT_START) {
            array = monsterClass[uint32(_id)].statStarts;
        } else if (_type == ArrayType.OBJ_SKILL) {
            array = monsterWorld[_id].skills;
        }
        if (_index >= array.length)
            return 0;
        return array[_index];
    }
    
    
    function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable) {
        MonsterClass storage class = monsterClass[_classId];
        classId = class.classId;
        price = class.price;
        returnPrice = class.returnPrice;
        total = class.total;
        catchable = class.catchable;
    }
    
    function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime) {
        MonsterObj storage monster = monsterWorld[_objId];
        objId = monster.monsterId;
        classId = monster.classId;
        trainer = monster.trainer;
        exp = monster.exp;
        createIndex = monster.createIndex;
        lastClaimIndex = monster.lastClaimIndex;
        createTime = monster.createTime;
    }
    
    function getMonsterName(uint64 _objId) constant public returns(string name) {
        return monsterWorld[_objId].name;
    }

    function getExtraBalance(address _trainer) constant public returns(uint256) {
        return trainerExtraBalance[_trainer];
    }
    
    function getMonsterDexSize(address _trainer) constant public returns(uint) {
        return trainerDex[_trainer].length;
    }
    
    function getMonsterObjId(address _trainer, uint index) constant public returns(uint64) {
        if (index >= trainerDex[_trainer].length)
            return 0;
        return trainerDex[_trainer][index];
    }
    
    function getExpectedBalance(address _trainer) constant public returns(uint256) {
        uint64[] storage objIdList = trainerDex[_trainer];
        uint256 monsterBalance = 0;
        for (uint i = 0; i < objIdList.length; i++) {
            MonsterObj memory monster = monsterWorld[objIdList[i]];
            MonsterClass storage class = monsterClass[monster.classId];
            uint32 gap = uint32(safeSubtract(class.total, monster.lastClaimIndex));
            monsterBalance += safeMult(gap, class.returnPrice);
        }
        return monsterBalance;
    }
    
    function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total) {
        MonsterObj memory monster = monsterWorld[_objId];
        MonsterClass storage class = monsterClass[monster.classId];
        uint32 totalGap = uint32(safeSubtract(class.total, monster.createIndex));
        uint32 currentGap = uint32(safeSubtract(class.total, monster.lastClaimIndex));
        return (safeMult(currentGap, class.returnPrice), safeMult(totalGap, class.returnPrice));
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"monsterClass","outputs":[{"name":"classId","type":"uint32"},{"name":"price","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"total","type":"uint32"},{"name":"catchable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getMonsterObj","outputs":[{"name":"objId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"trainer","type":"address"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"lastClaimIndex","type":"uint32"},{"name":"createTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getMonsterName","outputs":[{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"},{"name":"_value","type":"uint8"}],"name":"addElementToArrayType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"amount","type":"uint32"}],"name":"decreaseMonsterExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"},{"name":"_index","type":"uint256"},{"name":"_value","type":"uint8"}],"name":"updateIndexOfArrayType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_name","type":"string"},{"name":"_exp","type":"uint32"},{"name":"_createIndex","type":"uint32"},{"name":"_lastClaimIndex","type":"uint32"}],"name":"setMonsterObj","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"trainerDex","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"}],"name":"getSizeArrayType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getMonsterDexSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"deductExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"amount","type":"uint32"}],"name":"increaseMonsterExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_monsterId","type":"uint64"}],"name":"removeMonsterIdMapping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_id","type":"uint64"},{"name":"_index","type":"uint256"}],"name":"getElementInArrayType","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"}],"name":"collectAllReturnBalance","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"},{"name":"index","type":"uint256"}],"name":"getMonsterObjId","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMonster","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint64"}],"name":"monsterWorld","outputs":[{"name":"monsterId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"trainer","type":"address"},{"name":"name","type":"string"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"lastClaimIndex","type":"uint32"},{"name":"createTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_monsterId","type":"uint64"}],"name":"transferMonster","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalClass","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"addExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_monsterId","type":"uint64"}],"name":"addMonsterIdMapping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"}],"name":"getMonsterClass","outputs":[{"name":"classId","type":"uint32"},{"name":"price","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"total","type":"uint32"},{"name":"catchable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_monsterId","type":"uint64"}],"name":"clearMonsterReturnBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trainer","type":"address"},{"name":"_amount","type":"uint256"}],"name":"setExtraBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"moderators","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_price","type":"uint256"},{"name":"_returnPrice","type":"uint256"},{"name":"_catchable","type":"bool"}],"name":"setMonsterClass","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getExpectedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"trainerExtraBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getMonsterReturn","outputs":[{"name":"current","type":"uint256"},{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"},{"name":"_trainer","type":"address"},{"name":"_name","type":"string"}],"name":"addMonsterObj","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614ce7806100536000396000f3006060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303966a32146101e5578063072024601461025a5780630d25b6f21461033557806326bda739146103db57806331afa55f14610434578063321d2a4f1461047057806332666a31146104d257806340423f601461056f57806341b0eb53146105d957806347c17bac146106265780634ca92e0814610673578063522f6815146106c95780635643a7111461072d57806360c6ccb21461076957806362b21ad7146107b557806369666811146108115780636c81fd6d1461085e57806375fe2e33146108975780637a09defe146109015780637fc670291461093e578063809d9a9414610aa257806384ba745e14610b2f57806389b2050b14610b645780638da5cb5b14610bba5780639248019e14610c0f5780639d29cac414610c5b578063b0c6d7df14610cd0578063b55cdbf914610d11578063b85d627514610d53578063bd842a1114610d8c578063be26733c14610def578063c782fc6014610e04578063c8ff80a114610e51578063c953783814610eb7578063d2e0cbd114610f04578063f285329214610f51578063f4029e9214610f8a578063fc4d20f514610fd2575b6101e23334611085565b50005b34156101f057600080fd5b61020c600480803563ffffffff1690602001909190505061125d565b604051808663ffffffff1663ffffffff1681526020018581526020018481526020018363ffffffff1663ffffffff168152602001821515151581526020019550505050505060405180910390f35b341561026557600080fd5b610285600480803567ffffffffffffffff169060200190919050506112c0565b604051808867ffffffffffffffff1667ffffffffffffffff1681526020018763ffffffff1663ffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff16815260200182815260200197505050505050505060405180910390f35b341561034057600080fd5b610360600480803567ffffffffffffffff169060200190919050506113a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a0578082015181840152602081019050610385565b50505050905090810190601f1680156103cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e657600080fd5b61041e600480803560ff1690602001909190803567ffffffffffffffff1690602001909190803560ff16906020019091905050611478565b6040518082815260200191505060405180910390f35b341561043f57600080fd5b61046e600480803567ffffffffffffffff1690602001909190803563ffffffff16906020019091905050611721565b005b341561047b57600080fd5b6104bc600480803560ff1690602001909190803567ffffffffffffffff1690602001909190803590602001909190803560ff169060200190919050506118d4565b6040518082815260200191505060405180910390f35b34156104dd57600080fd5b61056d600480803567ffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803563ffffffff1690602001909190803563ffffffff1690602001909190803563ffffffff16906020019091905050611c64565b005b341561057a57600080fd5b6105af600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e50565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156105e457600080fd5b610610600480803560ff1690602001909190803567ffffffffffffffff16906020019091905050611e9c565b6040518082815260200191505060405180910390f35b341561063157600080fd5b61065d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611fff565b6040518082815260200191505060405180910390f35b341561067e57600080fd5b6106b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061204b565b6040518082815260200191505060405180910390f35b34156106d457600080fd5b610709600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612223565b6040518082600681111561071957fe5b60ff16815260200191505060405180910390f35b341561073857600080fd5b610767600480803567ffffffffffffffff1690602001909190803563ffffffff169060200190919050506122f3565b005b341561077457600080fd5b6107b3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff169060200190919050506124a6565b005b34156107c057600080fd5b6107f5600480803560ff1690602001909190803567ffffffffffffffff169060200190919080359060200190919050506127c3565b604051808260ff1660ff16815260200191505060405180910390f35b341561081c57600080fd5b610848600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612967565b6040518082815260200191505060405180910390f35b341561086957600080fd5b610895600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b57565b005b34156108a257600080fd5b6108d7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612ce5565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561090c57600080fd5b610914612dba565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561094957600080fd5b610969600480803567ffffffffffffffff16906020019091905050612dd4565b604051808967ffffffffffffffff1667ffffffffffffffff1681526020018863ffffffff1663ffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff168152602001838152602001828103825287818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050995050505050505050505060405180910390f35b3415610aad57600080fd5b610b0b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050612e8f565b60405180826006811115610b1b57fe5b60ff16815260200191505060405180910390f35b3415610b3a57600080fd5b610b4261304a565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610b6f57600080fd5b610ba4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611085565b6040518082815260200191505060405180910390f35b3415610bc557600080fd5b610bcd613060565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c1a57600080fd5b610c59600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803567ffffffffffffffff16906020019091905050613085565b005b3415610c6657600080fd5b610c82600480803563ffffffff16906020019091905050613358565b604051808663ffffffff1663ffffffff1681526020018581526020018481526020018363ffffffff1663ffffffff168152602001821515151581526020019550505050505060405180910390f35b3415610cdb57600080fd5b610cfb600480803567ffffffffffffffff169060200190919050506133dc565b6040518082815260200191505060405180910390f35b3415610d1c57600080fd5b610d51600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061371f565b005b3415610d5e57600080fd5b610d8a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613869565b005b3415610d9757600080fd5b610dad6004808035906020019091905050613a5c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610dfa57600080fd5b610e02613a9b565b005b3415610e0f57600080fd5b610e3b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613b30565b6040518082815260200191505060405180910390f35b3415610e5c57600080fd5b610e95600480803563ffffffff169060200190919080359060200190919080359060200190919080351515906020019091905050613b79565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610ec257600080fd5b610eee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613d69565b6040518082815260200191505060405180910390f35b3415610f0f57600080fd5b610f3b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061418e565b6040518082815260200191505060405180910390f35b3415610f5c57600080fd5b610f88600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506141a6565b005b3415610f9557600080fd5b610fb5600480803567ffffffffffffffff1690602001909190505061427b565b604051808381526020018281526020019250505060405180910390f35b3415610fdd57600080fd5b61105b600480803563ffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050614644565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111875760009150600090505b60018054905081101561117a573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561111c57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561116d576001915061117a565b80806001019150506110e9565b81151561118657600080fd5b5b6111d0600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856149f5565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60036020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060040154908060050154908060060160009054906101000a900463ffffffff16908060060160049054906101000a900460ff16905085565b600080600080600080600080600460008a67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900467ffffffffffffffff1697508060000160089054906101000a900463ffffffff16965080600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508060020160009054906101000a900463ffffffff1694508060050160009054906101000a900463ffffffff1693508060050160049054906101000a900463ffffffff1692508060060154915050919395979092949650565b6113ae614a70565b600460008367ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561146c5780601f106114415761010080835404028352916020019161146c565b820191906000526020600020905b81548152906001019060200180831161144f57829003601f168201915b50505050509050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157b5760009150600090505b60018054905081101561156e573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561151057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611561576001915061156e565b80806001019150506114dd565b81151561157a57600080fd5b5b600460008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206003019250600060048111156115b457fe5b8760048111156115c057fe5b14156115ef57600360008763ffffffff1663ffffffff16815260200190815260200160002060010192506116cd565b600160048111156115fc57fe5b87600481111561160857fe5b141561163757600360008763ffffffff1663ffffffff16815260200190815260200160002060020192506116cc565b6002600481111561164457fe5b87600481111561165057fe5b141561167f57600360008763ffffffff1663ffffffff16815260200190815260200160002060030192506116cb565b60048081111561168b57fe5b87600481111561169757fe5b14156116ca57600460008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040192505b5b5b5b8280548060010182816116e09190614a84565b916000526020600020906020918282040191900687909190916101000a81548160ff021916908360ff16021790555050828054905093505050509392505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118235760009150600090505b600180549050811015611816573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156117b857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118095760019150611816565b8080600101915050611785565b81151561182257600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508467ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1614156118cd576118aa8360020160009054906101000a900463ffffffff1663ffffffff168563ffffffff16614a1f565b8360020160006101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119d95760009150600090505b6001805490508110156119cc573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561196e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119bf57600191506119cc565b808060010191505061193b565b8115156119d857600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600301935060006004811115611a1257fe5b896004811115611a1e57fe5b1415611a4d57600360008963ffffffff1663ffffffff1681526020019081526020016000206001019350611b2b565b60016004811115611a5a57fe5b896004811115611a6657fe5b1415611a9557600360008963ffffffff1663ffffffff1681526020019081526020016000206002019350611b2a565b60026004811115611aa257fe5b896004811115611aae57fe5b1415611add57600360008963ffffffff1663ffffffff1681526020019081526020016000206003019350611b29565b600480811115611ae957fe5b896004811115611af557fe5b1415611b2857600460008967ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040193505b5b5b5b8380549050871015611c585760ff8660ff161415611c1d578692505b6001848054905003831015611bcc578360018401815481101515611b6757fe5b90600052602060002090602091828204019190069054906101000a900460ff168484815481101515611b9557fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055508280600101935050611b47565b836001858054905003815481101515611be157fe5b90600052602060002090602091828204019190066101000a81549060ff021916905583805480919060019003611c179190614a84565b50611c57565b858488815481101515611c2c57fe5b90600052602060002090602091828204019190066101000a81548160ff021916908360ff1602179055505b5b50505050949350505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d665760009150600090505b600180549050811015611d59573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611cfb57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d4c5760019150611d59565b8080600101915050611cc8565b811515611d6557600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508767ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff161415611e465786836001019080519060200190611ddb929190614abe565b50858360020160006101000a81548163ffffffff021916908363ffffffff160217905550848360050160006101000a81548163ffffffff021916908363ffffffff160217905550838360050160046101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050505050565b600560205281600052604060002081815481101515611e6b57fe5b9060005260206000209060049182820401919006600802915091509054906101000a900467ffffffffffffffff1681565b600080600460008467ffffffffffffffff1667ffffffffffffffff168152602001908152602001600020600301905060006004811115611ed857fe5b846004811115611ee457fe5b1415611f1357600360008463ffffffff1663ffffffff1681526020019081526020016000206001019050611ff1565b60016004811115611f2057fe5b846004811115611f2c57fe5b1415611f5b57600360008463ffffffff1663ffffffff1681526020019081526020016000206002019050611ff0565b60026004811115611f6857fe5b846004811115611f7457fe5b1415611fa357600360008463ffffffff1663ffffffff1681526020019081526020016000206003019050611fef565b600480811115611faf57fe5b846004811115611fbb57fe5b1415611fee57600460008467ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040190505b5b5b5b808054905091505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561214d5760009150600090505b600180549050811015612140573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156120e257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121335760019150612140565b80806001019150506120af565b81151561214c57600080fd5b5b612196600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485614a1f565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318211156122a857600690506122ed565b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156122e857600080fd5b600090505b92915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123f55760009150600090505b6001805490508110156123e8573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561238a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123db57600191506123e8565b8080600101915050612357565b8115156123f457600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508467ffffffffffffffff168360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16141561249f5761247c8360020160009054906101000a900463ffffffff1663ffffffff168563ffffffff166149f5565b8360020160006101000a81548163ffffffff021916908363ffffffff1602179055505b5050505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ab5760009150600090505b60018054905081101561259e573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561254057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612591576001915061259e565b808060010191505061250d565b8115156125aa57600080fd5b5b60009450600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093505b8380549050851015612662578567ffffffffffffffff16848681548110151561261657fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff16141561265557612662565b84806001019550506125f1565b83805490508510156127ba5783600185805490500381548110151561268357fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1684868154811015156126bb57fe5b90600052602060002090600491828204019190066008026101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600185805490500381548110151561270b57fe5b90600052602060002090600491828204019190066008026101000a81549067ffffffffffffffff02191690558380548091906001900361274b9190614b3e565b50600460008767ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209250600083600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050505050565b600080600460008567ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000206003019050600060048111156127ff57fe5b85600481111561280b57fe5b141561283a57600360008563ffffffff1663ffffffff1681526020019081526020016000206001019050612918565b6001600481111561284757fe5b85600481111561285357fe5b141561288257600360008563ffffffff1663ffffffff1681526020019081526020016000206002019050612917565b6002600481111561288f57fe5b85600481111561289b57fe5b14156128ca57600360008563ffffffff1663ffffffff1681526020019081526020016000206003019050612916565b6004808111156128d657fe5b8560048111156128e257fe5b141561291557600460008567ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060040190505b5b5b5b80805490508310151561292e576000915061295f565b808381548110151561293c57fe5b90600052602060002090602091828204019190069054906101000a900460ff1691505b509392505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a6c5760009150600090505b600180549050811015612a5f573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612a0157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a525760019150612a5f565b80806001019150506129ce565b811515612a6b57600080fd5b5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350600092505b8380549050831015612b0c57612afe8484815481101515612acf57fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff166133dc565b508280600101935050612ab2565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054945050505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612ce057600090505b600180549050811015612c7c578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515612c2257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612c6f57612ce1565b8080600101915050612bef565b60018054806001018281612c909190614b78565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905082101515612d3b5760009050612db4565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d8757fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1690505b92915050565b600260009054906101000a900467ffffffffffffffff1681565b60046020528060005260406000206000915090508060000160009054906101000a900467ffffffffffffffff16908060000160089054906101000a900463ffffffff169080600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101908060020160009054906101000a900463ffffffff16908060050160009054906101000a900463ffffffff16908060050160049054906101000a900463ffffffff16908060060154905088565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f925760009150600090505b600180549050811015612f85573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f2757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f785760019150612f85565b8080600101915050612ef4565b811515612f9157600080fd5b5b600460008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508673ffffffffffffffffffffffffffffffffffffffff1683600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561301d5760049350613040565b613026856133dc565b5061303187866124a6565b61303b8686613085565b600093505b5050509392505050565b600260089054906101000a900463ffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318a5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613170576001915061317d565b80806001019150506130ec565b81151561318957600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156131d1575060008667ffffffffffffffff16115b1561334e57600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450600093505b848054905084101561328d578567ffffffffffffffff16858581548110151561324157fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff1614156132805761334f565b838060010194505061321c565b8480548060010182816132a09190614b3e565b916000526020600020906004918282040191900660080288909190916101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050600460008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002092508683600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50505050505050565b600080600080600080600360008863ffffffff1663ffffffff16815260200190815260200160002090508060000160009054906101000a900463ffffffff16955080600401549450806005015493508060060160009054906101000a900463ffffffff1692508060060160049054906101000a900460ff1691505091939590929450565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134e45760009150600090505b6001805490508110156134d7573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561347957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156134ca57600191506134d7565b8080600101915050613446565b8115156134e357600080fd5b5b600460008967ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209550600360008760000160089054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020945060008660000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16148061358d575060008560000160009054906101000a900463ffffffff1663ffffffff16145b1561359b5760009650613714565b600093506135dd8560060160009054906101000a900463ffffffff1663ffffffff168760050160049054906101000a900463ffffffff1663ffffffff16614a1f565b925060008363ffffffff161115613710578460060160009054906101000a900463ffffffff168660050160046101000a81548163ffffffff021916908363ffffffff1602179055506136398363ffffffff168660050154614a3d565b93506136a86006600088600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856149f5565b6006600088600001600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8396505b505050505050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381f5760009150600090505b600180549050811015613812573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156137b457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156138055760019150613812565b8080600101915050613781565b81151561381e57600080fd5b5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138c657600080fd5b600090505b600180549050811015613958578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156138fe57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561394b57613958565b80806001019150506138cb565b600180549050811015613a585760018080805490500381548110151561397a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001828154811015156139b557fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180808054905003815481101515613a1357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001805480919060019003613a569190614ba4565b505b5050565b600181815481101515613a6b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613af657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c7c5760009150600090505b600180549050811015613c6f573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515613c1157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c625760019150613c6f565b8080600101915050613bde565b811515613c7b57600080fd5b5b600360008963ffffffff1663ffffffff168152602001908152602001600020925060008360000160009054906101000a900463ffffffff1663ffffffff161415613cf8576001600260088282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff1602179055505b878360000160006101000a81548163ffffffff021916908363ffffffff160217905550868360040181905550858360050181905550848360060160046101000a81548160ff021916908315150217905550600260089054906101000a900463ffffffff169350505050949350505050565b600080600080613d77614bd0565b600080600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020955060009450600093505b858054905084101561418057600460008786815481101515613de257fe5b90600052602060002090600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613f825780601f10613f5757610100808354040283529160200191613f82565b820191906000526020600020905b815481529060010190602001808311613f6557829003601f168201915b505050505081526020016002820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016003820180548060200260200160405190810160405280929190818152602001828054801561402657602002820191906000526020600020906000905b82829054906101000a900460ff1660ff1681526020019060010190602082600001049283019260010382029150808411613fef5790505b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156140a457602002820191906000526020600020906000905b82829054906101000a900460ff1660ff168152602001906001019060208260000104928301926001038202915080841161406d5790505b505050505081526020016005820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016005820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600682015481525050925060036000846020015163ffffffff1663ffffffff16815260200190815260200160002091506141598260060160009054906101000a900463ffffffff1663ffffffff1684610100015163ffffffff16614a1f565b905061416f8163ffffffff168360050154614a3d565b850194508380600101945050613dc4565b849650505050505050919050565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561420157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561427857806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600080614286614bd0565b6000806000600460008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144065780601f106143db57610100808354040283529160200191614406565b820191906000526020600020905b8154815290600101906020018083116143e957829003601f168201915b505050505081526020016002820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600382018054806020026020016040519081016040528092919081815260200182805480156144aa57602002820191906000526020600020906000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116144735790505b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561452857602002820191906000526020600020906000905b82829054906101000a900460ff1660ff16815260200190600101906020826000010492830192600103820291508084116144f15790505b505050505081526020016005820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016005820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600682015481525050935060036000856020015163ffffffff1663ffffffff16815260200190815260200160002092506145dc8360060160009054906101000a900463ffffffff1663ffffffff168560e0015163ffffffff16614a1f565b915061460d8360060160009054906101000a900463ffffffff1663ffffffff1685610100015163ffffffff16614a1f565b90506146238163ffffffff168460050154614a3d565b6146378363ffffffff168560050154614a3d565b9550955050505050915091565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156147495760009150600090505b60018054905081101561473c573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156146de57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561472f576001915061473c565b80806001019150506146ab565b81151561474857600080fd5b5b600360008963ffffffff1663ffffffff168152602001908152602001600020935060008460000160009054906101000a900463ffffffff1663ffffffff16141561479657600094506149ea565b6001600260008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060018460060160008282829054906101000a900463ffffffff160192506101000a81548163ffffffff021916908363ffffffff16021790555060046000600260009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020019081526020016000209250600260009054906101000a900467ffffffffffffffff168360000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550878360000160086101000a81548163ffffffff021916908363ffffffff1602179055508683600001600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085836001019080519060200190614910929190614abe565b5060018360020160006101000a81548163ffffffff021916908363ffffffff1602179055508360060160009054906101000a900463ffffffff168360050160006101000a81548163ffffffff021916908363ffffffff1602179055508360060160009054906101000a900463ffffffff168360050160046101000a81548163ffffffff021916908363ffffffff1602179055504283600601819055506149ce878460000160009054906101000a900467ffffffffffffffff16613085565b8260000160009054906101000a900467ffffffffffffffff1694505b505050509392505050565b6000808284019050838110158015614a0d5750828110155b1515614a1557fe5b8091505092915050565b600080828410151515614a2e57fe5b82840390508091505092915050565b60008082840290506000841480614a5e5750828482811515614a5b57fe5b04145b1515614a6657fe5b8091505092915050565b602060405190810160405280600081525090565b815481835581811511614ab957601f016020900481601f01602090048360005260206000209182019101614ab89190614c6e565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614aff57805160ff1916838001178555614b2d565b82800160010185558215614b2d579182015b82811115614b2c578251825591602001919060010190614b11565b5b509050614b3a9190614c6e565b5090565b815481835581811511614b73576003016004900481600301600490048360005260206000209182019101614b729190614c6e565b5b505050565b815481835581811511614b9f57818360005260206000209182019101614b9e9190614c6e565b5b505050565b815481835581811511614bcb57818360005260206000209182019101614bca9190614c6e565b5b505050565b61014060405190810160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001614c20614c93565b8152602001600063ffffffff168152602001614c3a614ca7565b8152602001614c47614ca7565b8152602001600063ffffffff168152602001600063ffffffff168152602001600081525090565b614c9091905b80821115614c8c576000816000905550600101614c74565b5090565b90565b602060405190810160405280600081525090565b6020604051908101604052806000815250905600a165627a7a723058201f8e0895bca8f86f9bb1ac4822f4233fe140ed10d17eddb398c6d1bbf8235dac0029

Swarm Source

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