ETH Price: $3,048.72 (+2.23%)
Gas: 2 Gwei

Token

EmontFrenzy (EMONF)
 

Overview

Max Total Supply

185 EMONF

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Filtered by Token Holder
uselezzz.eth
Balance
1 EMONF

Value
$0.00
0x4ce15b37851a4448a28899062906a02e51dee267
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EmontFrenzy

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 2018-06-08
*/

pragma solidity ^0.4.19;

// copyright [email protected]

contract BasicAccessControl {
    address public owner;
    // address[] public moderators;
    uint16 public totalModerators = 0;
    mapping (address => bool) public moderators;
    bool public isMaintaining = false;

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

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

    modifier onlyModerators() {
        require(msg.sender == owner || moderators[msg.sender] == true);
        _;
    }

    modifier isActive {
        require(!isMaintaining);
        _;
    }

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


    function AddModerator(address _newModerator) onlyOwner public {
        if (moderators[_newModerator] == false) {
            moderators[_newModerator] = true;
            totalModerators += 1;
        }
    }
    
    function RemoveModerator(address _oldModerator) onlyOwner public {
        if (moderators[_oldModerator] == true) {
            moderators[_oldModerator] = false;
            totalModerators -= 1;
        }
    }

    function UpdateMaintaining(bool _isMaintaining) onlyOwner public {
        isMaintaining = _isMaintaining;
    }
}

contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
}


contract EmontFrenzy is BasicAccessControl {
    uint constant public HIGH = 20;
    uint constant public BASE_POS = 510;
    uint constant public ONE_EMONT = 10 ** 8;

    struct Fish {
        address player;
        uint weight;
        bool active; // location != 0
        uint blockNumber; // block number
    }

    // private
    uint private seed;

     // address
    address public tokenContract;
    
    // variable
    uint public addFee = 0.01 ether;
    uint public addWeight = 5 * 10 ** 8; // emont
    uint public addDrop = 5 * 10 ** 8; // emont
    uint public moveCharge = 5; // percentage
    uint public cashOutRate = 100; // to EMONT rate
    uint public cashInRate = 50; // from EMONT to fish weight 
    uint public width = 50;
    uint public minJump = 2 * 2;
    uint public maxPos = HIGH * width; // valid pos (0 -> maxPos - 1)
    uint public minCashout = 25 * 10 ** 8;
    uint public minEatable = 1 * 10 ** 8;
    uint public minWeightDeduct = 4 * 10 ** 8; // 0.2 EMONT
    
    uint public basePunish = 40000; // per block
    uint public oceanBonus = 125000; // per block
    uint public minWeightPunish = 1 * 10 ** 8;
    uint public maxWeightBonus = 25 * 10 ** 8;
    
    mapping(uint => Fish) fishMap;
    mapping(uint => uint) ocean; // pos => fish id
    mapping(uint => uint) bonus; // pos => emont amount
    mapping(address => uint) players;
    
    mapping(uint => uint) maxJumps; // weight in EMONT => square length
    
    uint public totalFish = 0;
    
    // event
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);

    event EventCashout(address indexed player, uint fishId, uint weight);
    event EventBonus(uint pos, uint value);
    event EventMove(address indexed player, uint fishId, uint fromPos, uint toPos, uint weight);
    event EventEat(address indexed player, address indexed defender, uint playerFishId, uint defenderFishId, uint fromPos, uint toPos, uint playerWeight);
    event EventFight(address indexed player, address indexed defender, uint playerFishId, uint defenderFishId, uint fromPos, uint toPos, uint playerWeight);
    event EventSuicide(address indexed player, address indexed defender, uint playerFishId, uint defenderFishId, uint fromPos, uint toPos, uint defenderWeight);
    
    
    // modifier
    modifier requireTokenContract {
        require(tokenContract != address(0));
        _;
    }
    
    function EmontFrenzy(address _tokenContract) public {
        tokenContract = _tokenContract;
        seed = getRandom(0);
    }
    
    function setRate(uint _moveCharge, uint _cashOutRate, uint _cashInRate) onlyModerators external {
        moveCharge = _moveCharge;
        cashOutRate = _cashOutRate;
        cashInRate = _cashInRate;
    }
    
    function setMaxConfig(uint _minWeightPunish, uint _maxWeightBonus) onlyModerators external {
        minWeightPunish = _minWeightPunish;
        maxWeightBonus = _maxWeightBonus;
    }
    
    function setConfig(uint _addFee, uint _addWeight, uint _addDrop,  uint _width) onlyModerators external {
        addFee = _addFee;
        addWeight = _addWeight;
        addDrop = _addDrop;
        width = _width;
        maxPos = HIGH * width;
    }
    
    function setExtraConfig(uint _minCashout, uint _minEatable, uint _minWeightDeduct, uint _basePunish, uint _oceanBonus) onlyModerators external {
        minCashout = _minCashout;
        minEatable = _minEatable;
        minWeightDeduct = _minWeightDeduct;
        basePunish = _basePunish;
        oceanBonus = _oceanBonus;
    }
    
    // weight in emont, x*x
    function updateMaxJump(uint _weight, uint _squareLength) onlyModerators external {
        maxJumps[_weight] = _squareLength;
    }
    
    function setDefaultMaxJump() onlyModerators external {
        maxJumps[0] = 50 * 50;
        maxJumps[1] = 30 * 30;
        maxJumps[2] = 20 * 20;
        maxJumps[3] = 15 * 15;
        maxJumps[4] = 12 * 12;
        maxJumps[5] = 9 * 9;
        maxJumps[6] = 7 * 7;
        maxJumps[7] = 7 * 7;
        maxJumps[8] = 6 * 6;
        maxJumps[9] = 6 * 6;
        maxJumps[10] = 6 * 6;
        maxJumps[11] = 5 * 5;
        maxJumps[12] = 5 * 5;
        maxJumps[13] = 5 * 5;
        maxJumps[14] = 5 * 5;
        maxJumps[15] = 4 * 4;
        maxJumps[16] = 4 * 4;
        maxJumps[17] = 4 * 4;
        maxJumps[18] = 4 * 4;
        maxJumps[19] = 4 * 4;
        maxJumps[20] = 3 * 3;
        maxJumps[21] = 3 * 3;
        maxJumps[22] = 3 * 3;
        maxJumps[23] = 3 * 3;
        maxJumps[24] = 3 * 3;
        maxJumps[25] = 3 * 3;
    }
    
    function updateMinJump(uint _minJump) onlyModerators external {
        minJump = _minJump;
    }
    
    // moderators
    
    function withdrawEther(address _sendTo, uint _amount) onlyModerators external {
        // no user money is kept in this contract, only trasaction fee
        if (_amount > address(this).balance) {
            revert();
        }
        _sendTo.transfer(_amount);
    }
    
    function withdrawToken(address _sendTo, uint _amount) onlyModerators requireTokenContract external {
        ERC20Interface token = ERC20Interface(tokenContract);
        if (_amount > token.balanceOf(address(this))) {
            revert();
        }
        token.transfer(_sendTo, _amount);
    }
    
    function addBonus(uint _pos, uint _amount) onlyModerators external {
        bonus[_pos] += _amount;
        EventBonus(_pos, _amount);
    }
    
    function refundFish(address _player, uint _weight) onlyModerators external {
         // max: one fish per address
        if (fishMap[players[_player]].weight > 0)
            revert();
        
        totalFish += 1;
        Fish storage fish = fishMap[totalFish];
        fish.player = _player;
        fish.weight = _weight;
        fish.active = false;
        fish.blockNumber = block.number;
        players[_player] = totalFish;
        
        seed = getRandom(seed);
        Transfer(address(0), _player, totalFish);
    }
    
    function cleanOcean(uint _pos1, uint _pos2, uint _pos3, uint _pos4, uint _pos5, uint _pos6, uint _pos7, uint _pos8, uint _pos9, uint _pos10) onlyModerators external {
        if (_pos1 > 0) {
            bonus[_pos1] = 0;
            EventBonus(_pos1, 0);
        }
        if (_pos2 > 0) {
            bonus[_pos2] = 0;
            EventBonus(_pos2, 0);
        }
        if (_pos3 > 0) {
            bonus[_pos3] = 0;
            EventBonus(_pos3, 0);
        }
        if (_pos4 > 0) {
            bonus[_pos4] = 0;
            EventBonus(_pos4, 0);
        }
        if (_pos5 > 0) {
            bonus[_pos5] = 0;
            EventBonus(_pos5, 0);
        }
        if (_pos6 > 0) {
            bonus[_pos6] = 0;
            EventBonus(_pos6, 0);
        }
        if (_pos7 > 0) {
            bonus[_pos7] = 0;
            EventBonus(_pos7, 0);
        }
        if (_pos8 > 0) {
            bonus[_pos8] = 0;
            EventBonus(_pos8, 0);
        }
        if (_pos9 > 0) {
            bonus[_pos9] = 0;
            EventBonus(_pos9, 0);
        }
        if (_pos10 > 0) {
            bonus[_pos10] = 0;
            EventBonus(_pos10, 0);
        }
    }
    
    // for payment contract to call
    function AddFishByToken(address _player, uint _tokens) onlyModerators external {
        uint weight = _tokens * cashInRate / 100;
        if (weight != addWeight) 
            revert();
        
         // max: one fish per address
        if (fishMap[players[_player]].weight > 0)
            revert();
        
        totalFish += 1;
        Fish storage fish = fishMap[totalFish];
        fish.player = _player;
        fish.weight = addWeight;
        fish.active = false;
        fish.blockNumber = block.number;
        players[_player] = totalFish;
        
        // airdrop
        if (addDrop > 0) {
            seed = getRandom(seed);
            uint temp = seed % (maxPos - 1);
            if (temp == BASE_POS) temp += 1;
            bonus[temp] += addDrop;
            EventBonus(temp, bonus[temp]);
        } else {
            seed = getRandom(seed);
        }
        Transfer(address(0), _player, totalFish);
    }
    
    // public functions
    function getRandom(uint _seed) constant public returns(uint) {
        return uint(keccak256(block.timestamp, block.difficulty)) ^ _seed;
    }
    
    function AddFish() isActive payable external {
        if (msg.value != addFee) revert();
        
        // max: one fish per address
        if (fishMap[players[msg.sender]].weight > 0)
            revert();
        
        totalFish += 1;
        Fish storage fish = fishMap[totalFish];
        fish.player = msg.sender;
        fish.weight = addWeight;
        fish.active = false;
        fish.blockNumber = block.number;
        players[msg.sender] = totalFish;
        
        // airdrop
        if (addDrop > 0) {
            seed = getRandom(seed);
            uint temp = seed % (maxPos - 1);
            if (temp == BASE_POS) temp += 1;
            bonus[temp] += addDrop;
            EventBonus(temp, bonus[temp]);
        } else {
            seed = getRandom(seed);
        }
        Transfer(address(0), msg.sender, totalFish);
    }
    
    function DeductABS(uint _a, uint _b) pure public returns(uint) {
        if (_a > _b) 
            return (_a - _b);
        return (_b - _a);
    }
    
    function SafeDeduct(uint _a, uint _b) pure public returns(uint) {
        if (_a > _b)
            return (_a - _b);
        return 0;
    }
    
    function MoveFromBase(uint _toPos) isActive external {
        // from = 0
        if (_toPos >= maxPos || _toPos == 0)
            revert();
        
        uint fishId = players[msg.sender];
        Fish storage fish = fishMap[fishId];
        if (fish.weight == 0)
            revert();
        // not from base
        if (fish.active)
            revert();
        
        // deduct weight
        if (fish.weight > minWeightPunish) {
            uint tempX = SafeDeduct(block.number, fish.blockNumber);
            tempX = SafeDeduct(fish.weight, tempX * basePunish);
            if (tempX < minWeightPunish) {
                fish.weight = minWeightPunish;
            } else {
                fish.weight = tempX;
            }
        }
        
        // check valid move
        tempX = DeductABS(BASE_POS / HIGH, _toPos / HIGH);
        uint tempY = DeductABS(BASE_POS % HIGH, _toPos % HIGH);
        uint squareLength = maxJumps[fish.weight / ONE_EMONT];
        if (squareLength == 0) squareLength = minJump;
        if (tempX * tempX + tempY * tempY > squareLength)
            revert();
        
        // can not attack
        if (ocean[_toPos] > 0)
            revert();
            
        // check target bonus 
        if (bonus[_toPos] > 0) {
            fish.weight += bonus[_toPos];
            bonus[_toPos] = 0;
        }
        
        fish.active = true;
        fish.blockNumber = block.number;
        ocean[_toPos] = fishId;
        EventMove(msg.sender, fishId, BASE_POS, _toPos, fish.weight);
    }
    
    function MoveToBase(uint _fromPos) isActive external {
        uint fishId = players[msg.sender];
        Fish storage fish = fishMap[fishId];
        if (fish.weight == 0)
            revert();
        if (!fish.active || ocean[_fromPos] != fishId)
            revert();
        
        // check valid move
        uint tempX = DeductABS(_fromPos / HIGH, BASE_POS / HIGH);
        uint tempY = DeductABS(_fromPos % HIGH, BASE_POS % HIGH);
        uint squareLength = maxJumps[fish.weight / ONE_EMONT];
        if (squareLength == 0) squareLength = minJump;
        if (tempX * tempX + tempY * tempY > squareLength)
            revert();
        
        if (fish.weight >= minWeightDeduct) {
            tempX = (moveCharge * fish.weight) / 100;
            bonus[_fromPos] += tempX;
            fish.weight -= tempX;
        }
        
        // add bonus
        if (fish.weight < maxWeightBonus) {
            uint temp = SafeDeduct(block.number, fish.blockNumber) * oceanBonus;
            if (fish.weight + temp > maxWeightBonus) {
                fish.weight = maxWeightBonus;
            } else {
                fish.weight += temp;
            }
        }
        
        ocean[_fromPos] = 0;
        fish.active = false;
        fish.blockNumber = block.number;
        EventMove(msg.sender, fishId, _fromPos, BASE_POS, fish.weight);
        return;
    }
    
    function MoveFish(uint _fromPos, uint _toPos) isActive external {
        // check valid _x, _y
        if (_toPos >= maxPos && _fromPos != _toPos)
            revert();
        if (_fromPos == BASE_POS || _toPos == BASE_POS)
            revert();
        
        uint fishId = players[msg.sender];
        Fish storage fish = fishMap[fishId];
        if (fish.weight == 0)
            revert();
        if (!fish.active || ocean[_fromPos] != fishId)
            revert();
        
        // check valid move
        uint tempX = DeductABS(_fromPos / HIGH, _toPos / HIGH);
        uint tempY = DeductABS(_fromPos % HIGH, _toPos % HIGH);
        uint squareLength = maxJumps[fish.weight / ONE_EMONT];
        if (squareLength == 0) squareLength = minJump;
        
        if (tempX * tempX + tempY * tempY > squareLength)
            revert();
        
        // move 
        ocean[_fromPos] = 0;
        if (fish.weight >= minWeightDeduct) {
            tempX = (moveCharge * fish.weight) / 100;
            bonus[_fromPos] += tempX;
            fish.weight -= tempX;
        }

        tempX = ocean[_toPos]; // target fish id
        // no fish at that location
        if (tempX == 0) {
            if (bonus[_toPos] > 0) {
                fish.weight += bonus[_toPos];
                bonus[_toPos] = 0;
            }
            
            // update location
            EventMove(msg.sender, fishId, _fromPos, _toPos, fish.weight);
            ocean[_toPos] = fishId;
        } else {
            Fish storage targetFish = fishMap[tempX];
            if (targetFish.weight + minEatable <= fish.weight) {
                // eat the target fish
                fish.weight += targetFish.weight;
                targetFish.weight = 0;
                
                // update location
                ocean[_toPos] = fishId;
                
                EventEat(msg.sender, targetFish.player, fishId, tempX, _fromPos, _toPos, fish.weight);
                Transfer(targetFish.player, address(0), tempX);
            } else if (targetFish.weight <= fish.weight) {
                // fight and win
                // bonus to others
                seed = getRandom(seed);
                tempY = seed % (maxPos - 1);
                if (tempY == BASE_POS) tempY += 1;
                bonus[tempY] += targetFish.weight * 2;
                
                EventBonus(tempY, bonus[tempY]);
                
                // fight 
                fish.weight -= targetFish.weight;
                targetFish.weight = 0;
                
                // update location
                if (fish.weight > 0) {
                    ocean[_toPos] = fishId;
                } else {
                    ocean[_toPos] = 0;
                    Transfer(msg.sender, address(0), fishId);
                }
                
                EventFight(msg.sender, targetFish.player, fishId, tempX, _fromPos, _toPos, fish.weight);
                Transfer(targetFish.player, address(0), tempX);
            } else {
                // bonus to others
                seed = getRandom(seed);
                tempY = seed % (maxPos - 1);
                if (tempY == BASE_POS) tempY += 1;
                bonus[tempY] += fish.weight * 2;
                
                EventBonus(tempY, bonus[tempY]);
                
                // suicide
                targetFish.weight -= fish.weight;
                fish.weight = 0;
                
                EventSuicide(msg.sender, targetFish.player, fishId, tempX, _fromPos, _toPos, targetFish.weight);
                Transfer(msg.sender, address(0), fishId);
            }
        }
    }
    
    function CashOut() isActive external {
        uint fishId = players[msg.sender];
        Fish storage fish = fishMap[fishId];
        
        // if fish at base, need to deduct 
        if (!fish.active) {
            // deduct weight
            if (fish.weight > minWeightPunish) {
                uint tempX = SafeDeduct(block.number, fish.blockNumber);
                tempX = SafeDeduct(fish.weight, tempX * basePunish);
                if (tempX < minWeightPunish) {
                    fish.weight = minWeightPunish;
                } else {
                    fish.weight = tempX;
                }
            }
            fish.blockNumber = block.number;
        }
        
        if (fish.weight < minCashout)
            revert();
        
        if (fish.weight < addWeight) 
            revert();
        
        uint _amount = fish.weight - addWeight;
        fish.weight = addWeight;
        
        ERC20Interface token = ERC20Interface(tokenContract);
        if (_amount > token.balanceOf(address(this))) {
            revert();
        }
        token.transfer(msg.sender, (_amount * cashOutRate) / 100);
        EventCashout(msg.sender, fishId, fish.weight);
    }
    
    // public get 
    function getFish(uint32 _fishId) constant public returns(address player, uint weight, bool active, uint blockNumber) {
        Fish storage fish = fishMap[_fishId];
        return (fish.player, fish.weight, fish.active, fish.blockNumber);
    }
    
    function getFishByAddress(address _player) constant public returns(uint fishId, address player, uint weight, bool active, uint blockNumber) {
        fishId = players[_player];
        Fish storage fish = fishMap[fishId];
        player = fish.player;
        weight =fish.weight;
        active = fish.active;
        blockNumber = fish.blockNumber;
    }
    
    function getFishIdByAddress(address _player) constant public returns(uint fishId) {
        return players[_player];
    }
    
    function getFishIdByPos(uint _pos) constant public returns(uint fishId) {
        return ocean[_pos];
    }
    
    function getFishByPos(uint _pos) constant public returns(uint fishId, address player, uint weight, uint blockNumber) {
        fishId = ocean[_pos];
        Fish storage fish = fishMap[fishId];
        return (fishId, fish.player, fish.weight, fish.blockNumber);
    }
    
    // cell has valid fish or bonus
    function getActiveFish(uint _fromPos, uint _toPos) constant public returns(uint pos, uint fishId, address player, uint weight, uint blockNumber) {
        for (uint index = _fromPos; index <= _toPos; index+=1) {
            if (ocean[index] > 0) {
                fishId = ocean[index];
                Fish storage fish = fishMap[fishId];
                return (index, fishId, fish.player, fish.weight, fish.blockNumber);
            }
        }
    }
    
    function getAllBonus(uint _fromPos, uint _toPos) constant public returns(uint pos, uint amount) {
        for (uint index = _fromPos; index <= _toPos; index+=1) {
            if (bonus[index] > 0) {
                return (index, bonus[index]);
            }
        }
    }
    
    function getStats() constant public returns(uint countFish, uint countBonus) {
        countFish = 0;
        countBonus = 0;
        for (uint index = 0; index < width * HIGH; index++) {
            if (ocean[index] > 0) {
                countFish += 1; 
            }
            if (bonus[index] > 0) {
                countBonus += 1;
            }
        }
    }
    
    function getFishAtBase(uint _fishId) constant public returns(uint fishId, address player, uint weight, uint blockNumber) {
        for (uint id = _fishId; id <= totalFish; id++) {
            Fish storage fish = fishMap[id];
            if (fish.weight > 0 && !fish.active) {
                return (id, fish.player, fish.weight, fish.blockNumber);
            }
        }
        
        return (0, address(0), 0, 0);
    }
    
    function countFishAtBase() constant public returns(uint count) {
        count = 0;
        for (uint id = 0; id <= totalFish; id++) {
            Fish storage fish = fishMap[id];
            if (fish.weight > 0 && !fish.active) {
                count += 1; 
            }
        }
    }
    
    function getMaxJump(uint _weight) constant public returns(uint) {
        return maxJumps[_weight];
    }
    
    // some meta data
    string public constant name = "EmontFrenzy";
    string public constant symbol = "EMONF";

    function totalSupply() public view returns (uint256) {
        return totalFish;
    }
    
    function balanceOf(address _owner) public view returns (uint256 _balance) {
        if (fishMap[players[_owner]].weight > 0)
            return 1;
        return 0;
    }
    
    function ownerOf(uint256 _tokenId) public view returns (address _owner) {
        Fish storage fish = fishMap[_tokenId];
        if (fish.weight > 0)
            return fish.player;
        return address(0);
    }
    
    function transfer(address _to, uint256 _tokenId) public{
        require(_to != address(0));
        
        uint fishId = players[msg.sender];
        Fish storage fish = fishMap[fishId];
        if (fishId == 0 || fish.weight == 0 || fishId != _tokenId)
            revert();
        
        if (balanceOf(_to) > 0)
            revert();
        
        fish.player = _to;
        players[msg.sender] = 0;
        players[_to] = fishId;
        
        Transfer(msg.sender, _to, _tokenId);
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"maxPos","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_fromPos","type":"uint256"},{"name":"_toPos","type":"uint256"}],"name":"getActiveFish","outputs":[{"name":"pos","type":"uint256"},{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minWeightPunish","type":"uint256"},{"name":"_maxWeightBonus","type":"uint256"}],"name":"setMaxConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"countFishAtBase","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addDrop","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_moveCharge","type":"uint256"},{"name":"_cashOutRate","type":"uint256"},{"name":"_cashInRate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_fromPos","type":"uint256"},{"name":"_toPos","type":"uint256"}],"name":"getAllBonus","outputs":[{"name":"pos","type":"uint256"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minCashout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_weight","type":"uint256"}],"name":"getMaxJump","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_fishId","type":"uint32"}],"name":"getFish","outputs":[{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"active","type":"bool"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cashOutRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ONE_EMONT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_player","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"AddFishByToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BASE_POS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minWeightDeduct","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFish","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cashInRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxWeightBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minEatable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_fromPos","type":"uint256"},{"name":"_toPos","type":"uint256"}],"name":"MoveFish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"AddFish","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_pos1","type":"uint256"},{"name":"_pos2","type":"uint256"},{"name":"_pos3","type":"uint256"},{"name":"_pos4","type":"uint256"},{"name":"_pos5","type":"uint256"},{"name":"_pos6","type":"uint256"},{"name":"_pos7","type":"uint256"},{"name":"_pos8","type":"uint256"},{"name":"_pos9","type":"uint256"},{"name":"_pos10","type":"uint256"}],"name":"cleanOcean","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_fromPos","type":"uint256"}],"name":"MoveToBase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePunish","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oceanBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"uint256"},{"name":"_b","type":"uint256"}],"name":"SafeDeduct","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_weight","type":"uint256"},{"name":"_squareLength","type":"uint256"}],"name":"updateMaxJump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toPos","type":"uint256"}],"name":"MoveFromBase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_player","type":"address"}],"name":"getFishIdByAddress","outputs":[{"name":"fishId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"width","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"CashOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_player","type":"address"},{"name":"_weight","type":"uint256"}],"name":"refundFish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minWeightPunish","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_pos","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"addBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_fishId","type":"uint256"}],"name":"getFishAtBase","outputs":[{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HIGH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_pos","type":"uint256"}],"name":"getFishIdByPos","outputs":[{"name":"fishId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"moveCharge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getStats","outputs":[{"name":"countFish","type":"uint256"},{"name":"countBonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_seed","type":"uint256"}],"name":"getRandom","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minJump","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minJump","type":"uint256"}],"name":"updateMinJump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"uint256"},{"name":"_b","type":"uint256"}],"name":"DeductABS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_minCashout","type":"uint256"},{"name":"_minEatable","type":"uint256"},{"name":"_minWeightDeduct","type":"uint256"},{"name":"_basePunish","type":"uint256"},{"name":"_oceanBonus","type":"uint256"}],"name":"setExtraConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addFee","type":"uint256"},{"name":"_addWeight","type":"uint256"},{"name":"_addDrop","type":"uint256"},{"name":"_width","type":"uint256"}],"name":"setConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_pos","type":"uint256"}],"name":"getFishByPos","outputs":[{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setDefaultMaxJump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_player","type":"address"}],"name":"getFishByAddress","outputs":[{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"active","type":"bool"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addWeight","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"fishId","type":"uint256"},{"indexed":false,"name":"weight","type":"uint256"}],"name":"EventCashout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pos","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"EventBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"fishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"weight","type":"uint256"}],"name":"EventMove","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"playerFishId","type":"uint256"},{"indexed":false,"name":"defenderFishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"playerWeight","type":"uint256"}],"name":"EventEat","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"playerFishId","type":"uint256"},{"indexed":false,"name":"defenderFishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"playerWeight","type":"uint256"}],"name":"EventFight","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"playerFishId","type":"uint256"},{"indexed":false,"name":"defenderFishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"defenderWeight","type":"uint256"}],"name":"EventSuicide","type":"event"}]

606060405260008060146101000a81548161ffff021916908361ffff1602179055506000600260006101000a81548160ff021916908315150217905550662386f26fc10000600555631dcd6500600655631dcd6500600755600560085560646009556032600a556032600b556004600c55600b54601402600d55639502f900600e556305f5e100600f556317d78400601055619c406011556201e8486012556305f5e100601355639502f9006014556000601a553415620000bf57600080fd5b60405160208062004f0e83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200017d60006200018a64010000000002620044d6176401000000009004565b60038190555050620001b7565b60008142446040518083815260200182815260200192505050604051809103902060019004189050919050565b614d4780620001c76000396000f300606060405260043610610317576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301239adf1461031c57806306fdde0314610345578063136b4fea146103d357806314d0f1ba1461045b57806318160ddd146104ac578063181dcbcd146104d557806322230fc41461050157806329e614ee1461052a5780632f48f151146105535780633989c6661461057c5780633b016d83146105b157806345408a8a146105f857806348ef5aa8146106215780634db77d9d146106465780634efb023e1461067d5780634fbf6e9f146106ae578063503c849e14610730578063522f68151461075957806354f60aea1461079b57806355a373d6146107c457806359b62658146108195780635c7b9ccf1461085b578063602998431461088457806362b26f95146108ad5780636352211e146108d6578063672324ac1461093957806368da480b146109625780636c81fd6d1461098b5780636d07f295146109c457806370a08231146109ed578063754ad98114610a3a5780637c17dc0214610a6657806380cae00714610a7057806382cb08aa14610ae45780638ba4530714610b075780638c335b4b14610b305780638da5cb5b14610b595780638f99fdab14610bae578063905473cf14610bee5780639392414714610c1a57806395d89b4114610c3d5780639b01c7ac14610ccb5780639e281a9814610d185780639ededf7714610d5a578063a1e564b114610d83578063a903016214610d98578063a9059cbb14610dda578063aec30dc114610e1c578063b02b69d614610e45578063b60868be14610e71578063b73974a114610ee9578063b85d627514610f12578063be32eeba14610f4b578063c0b332c114610f82578063c59d484714610fab578063cd4b691414610fdb578063cf2d03ae14611012578063d398806d1461103b578063d4fa90211461105e578063d855c0591461109e578063e5c389cd146110e5578063ecd747de14611123578063ee4e44161461119b578063f2853292146111c8578063f838ea1a14611201578063f8ecb55814611216578063fbe3549c146112af575b600080fd5b341561032757600080fd5b61032f6112d8565b6040518082815260200191505060405180910390f35b341561035057600080fd5b6103586112de565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039857808201518184015260208101905061037d565b50505050905090810190601f1680156103c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103de57600080fd5b6103fd6004808035906020019091908035906020019091905050611317565b604051808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390f35b341561046657600080fd5b610492600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113ce565b604051808215151515815260200191505060405180910390f35b34156104b757600080fd5b6104bf6113ee565b6040518082815260200191505060405180910390f35b34156104e057600080fd5b6104ff60048080359060200190919080359060200190919050506113f8565b005b341561050c57600080fd5b6105146114c0565b6040518082815260200191505060405180910390f35b341561053557600080fd5b61053d61152e565b6040518082815260200191505060405180910390f35b341561055e57600080fd5b610566611534565b6040518082815260200191505060405180910390f35b341561058757600080fd5b6105af600480803590602001909190803590602001909190803590602001909190505061153a565b005b34156105bc57600080fd5b6105db600480803590602001909190803590602001909190505061160a565b604051808381526020018281526020019250505060405180910390f35b341561060357600080fd5b61060b61166a565b6040518082815260200191505060405180910390f35b341561062c57600080fd5b61064460048080351515906020019091905050611670565b005b341561065157600080fd5b61066760048080359060200190919050506116e8565b6040518082815260200191505060405180910390f35b341561068857600080fd5b610690611705565b604051808261ffff1661ffff16815260200191505060405180910390f35b34156106b957600080fd5b6106d5600480803563ffffffff16906020019091905050611719565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018315151515815260200182815260200194505050505060405180910390f35b341561073b57600080fd5b61074361178d565b6040518082815260200191505060405180910390f35b341561076457600080fd5b610799600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611793565b005b34156107a657600080fd5b6107ae6118b1565b6040518082815260200191505060405180910390f35b34156107cf57600080fd5b6107d76118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082457600080fd5b610859600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118df565b005b341561086657600080fd5b61086e611c3f565b6040518082815260200191505060405180910390f35b341561088f57600080fd5b610897611c45565b6040518082815260200191505060405180910390f35b34156108b857600080fd5b6108c0611c4b565b6040518082815260200191505060405180910390f35b34156108e157600080fd5b6108f76004808035906020019091905050611c51565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561094457600080fd5b61094c611cad565b6040518082815260200191505060405180910390f35b341561096d57600080fd5b610975611cb3565b6040518082815260200191505060405180910390f35b341561099657600080fd5b6109c2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cb9565b005b34156109cf57600080fd5b6109d7611df9565b6040518082815260200191505060405180910390f35b34156109f857600080fd5b610a24600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611dff565b6040518082815260200191505060405180910390f35b3415610a4557600080fd5b610a646004808035906020019091908035906020019091905050611e71565b005b610a6e6127cf565b005b3415610a7b57600080fd5b610ae26004808035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091905050612a7d565b005b3415610aef57600080fd5b610b056004808035906020019091905050612f1d565b005b3415610b1257600080fd5b610b1a6131e1565b6040518082815260200191505060405180910390f35b3415610b3b57600080fd5b610b436131e7565b6040518082815260200191505060405180910390f35b3415610b6457600080fd5b610b6c6131ed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bb957600080fd5b610bd86004808035906020019091908035906020019091905050613212565b6040518082815260200191505060405180910390f35b3415610bf957600080fd5b610c186004808035906020019091908035906020019091905050613231565b005b3415610c2557600080fd5b610c3b6004808035906020019091905050613303565b005b3415610c4857600080fd5b610c506135e3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c90578082015181840152602081019050610c75565b50505050905090810190601f168015610cbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610cd657600080fd5b610d02600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061361c565b6040518082815260200191505060405180910390f35b3415610d2357600080fd5b610d58600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613665565b005b3415610d6557600080fd5b610d6d613936565b6040518082815260200191505060405180910390f35b3415610d8e57600080fd5b610d9661393c565b005b3415610da357600080fd5b610dd8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613c93565b005b3415610de557600080fd5b610e1a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613f0c565b005b3415610e2757600080fd5b610e2f614117565b6040518082815260200191505060405180910390f35b3415610e5057600080fd5b610e6f600480803590602001909190803590602001909190505061411d565b005b3415610e7c57600080fd5b610e926004808035906020019091905050614237565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b3415610ef457600080fd5b610efc6142f7565b6040518082815260200191505060405180910390f35b3415610f1d57600080fd5b610f49600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506142fc565b005b3415610f5657600080fd5b610f6c600480803590602001909190505061443d565b6040518082815260200191505060405180910390f35b3415610f8d57600080fd5b610f9561445a565b6040518082815260200191505060405180910390f35b3415610fb657600080fd5b610fbe614460565b604051808381526020018281526020019250505060405180910390f35b3415610fe657600080fd5b610ffc60048080359060200190919050506144d6565b6040518082815260200191505060405180910390f35b341561101d57600080fd5b611025614503565b6040518082815260200191505060405180910390f35b341561104657600080fd5b61105c6004808035906020019091905050614509565b005b341561106957600080fd5b61108860048080359060200190919080359060200190919050506145c9565b6040518082815260200191505060405180910390f35b34156110a957600080fd5b6110e360048080359060200190919080359060200190919080359060200190919080359060200190919080359060200190919050506145e9565b005b34156110f057600080fd5b61112160048080359060200190919080359060200190919080359060200190919080359060200190919050506146c9565b005b341561112e57600080fd5b61114460048080359060200190919050506147ad565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b34156111a657600080fd5b6111ae614820565b604051808215151515815260200191505060405180910390f35b34156111d357600080fd5b6111ff600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050614833565b005b341561120c57600080fd5b611214614908565b005b341561122157600080fd5b61124d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050614c62565b604051808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001831515151581526020018281526020019550505050505060405180910390f35b34156112ba57600080fd5b6112c2614d15565b6040518082815260200191505060405180910390f35b600d5481565b6040805190810160405280600b81526020017f456d6f6e744672656e7a7900000000000000000000000000000000000000000081525081565b60008060008060008060008891505b87821115156113c1576000601660008481526020019081526020016000205411156113b6576016600083815260200190815260200160002054955060156000878152602001908152602001600020905081868260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600101548460030154965096509650965096506113c2565b600182019150611326565b5b50509295509295909350565b60016020528060005260406000206000915054906101000a900460ff1681565b6000601a54905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114a3575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156114ae57600080fd5b81601381905550806014819055505050565b6000806000809250600091505b601a5482111515611529576015600083815260200190815260200160002090506000816001015411801561151057508060020160009054906101000a900460ff16155b1561151c576001830192505b81806001019250506114cd565b505090565b60075481565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115e5575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156115f057600080fd5b826008819055508160098190555080600a81905550505050565b60008060008490505b8381111515611661576000601760008381526020019081526020016000205411156116565780601760008381526020019081526020016000205492509250611662565b600181019050611613565b5b509250929050565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116cb57600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060196000838152602001908152602001600020549050919050565b600060149054906101000a900461ffff1681565b6000806000806000601560008763ffffffff16815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101548260020160009054906101000a900460ff1683600301549450945094509450509193509193565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061183e575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561184957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111561186d57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156118ad57600080fd5b5050565b6305f5e10081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061198f575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561199a57600080fd5b6064600a5485028115156119aa57fe5b049250600654831415156119bd57600080fd5b600060156000601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115611a2057600080fd5b6001601a6000828254019250508190555060156000601a5481526020019081526020016000209150848260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654826001018190555060008260020160006101000a81548160ff021916908315150217905550438260030181905550601a54601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006007541115611bbe57611b186003546144d6565b6003819055506001600d5403600354811515611b3057fe5b0690506101fe811415611b44576001810190505b60075460176000838152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2816017600084815260200190815260200160002054604051808381526020018281526020019250505060405180910390a1611bd0565b611bc96003546144d6565b6003819055505b8473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a35050505050565b6101fe81565b60105481565b601a5481565b600080601560008481526020019081526020016000209050600081600101541115611ca2578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611ca7565b600091505b50919050565b600a5481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d1457600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611df65760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b600f5481565b60008060156000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115611e675760019050611e6c565b600090505b919050565b600080600080600080600260009054906101000a900460ff16151515611e9657600080fd5b600d548710158015611ea85750868814155b15611eb257600080fd5b6101fe881480611ec357506101fe87145b15611ecd57600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550601560008781526020019081526020016000209450600085600101541415611f3657600080fd5b8460020160009054906101000a900460ff161580611f67575085601660008a81526020019081526020016000205414155b15611f7157600080fd5b611f93601489811515611f8057fe5b04601489811515611f8d57fe5b046145c9565b9350611fb7601489811515611fa457fe5b06601489811515611fb157fe5b066145c9565b9250601960006305f5e1008760010154811515611fd057fe5b0481526020019081526020016000205491506000821415611ff157600c5491505b8183840285860201111561200457600080fd5b6000601660008a815260200190815260200160002081905550601054856001015410151561207757606485600101546008540281151561204057fe5b04935083601760008a8152602001908152602001600020600082825401925050819055508385600101600082825403925050819055505b601660008881526020019081526020016000205493506000841415612178576000601760008981526020019081526020016000205411156120f15760176000888152602001908152602001600020548560010160008282540192505081905550600060176000898152602001908152602001600020819055505b3373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10878a8a89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a28560166000898152602001908152602001600020819055506127c5565b6015600085815260200190815260200160002090508460010154600f548260010154011115156123165780600101548560010160008282540192505081905550600081600101819055508560166000898152602001908152602001600020819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc15f52570a93e125c446dad9d62b70661ca12a0f34b6b4fe6375284706576c4f88878c8c8b60010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36127c4565b846001015481600101541115156125de576123326003546144d6565b6003819055506001600d540360035481151561234a57fe5b0692506101fe83141561235e576001830192505b600281600101540260176000858152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836017600086815260200190815260200160002054604051808381526020018281526020019250505060405180910390a18060010154856001016000828254039250508190555060008160010181905550600085600101541115612422578560166000898152602001908152602001600020819055506124a2565b60006016600089815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff33ea0d9449fd6e15735c140f51c1e01bacda12ea866ebd8c8f8c5a7009af4f388878c8c8b60010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36127c3565b6125e96003546144d6565b6003819055506001600d540360035481151561260157fe5b0692506101fe831415612615576001830192505b600285600101540260176000858152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836017600086815260200190815260200160002054604051808381526020018281526020019250505060405180910390a184600101548160010160008282540392505081905550600085600101819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fca1dfeb0fb285992538d0b85b07f749d9c530b608237c5aca0726b3ee383509f88878c8c8760010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b5b5b5050505050505050565b600080600260009054906101000a900460ff161515156127ee57600080fd5b600554341415156127fe57600080fd5b600060156000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060010154111561286157600080fd5b6001601a6000828254019250508190555060156000601a5481526020019081526020016000209150338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654826001018190555060008260020160006101000a81548160ff021916908315150217905550438260030181905550601a54601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060075411156129ff576129596003546144d6565b6003819055506001600d540360035481151561297157fe5b0690506101fe811415612985576001810190505b60075460176000838152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2816017600084815260200190815260200160002054604051808381526020018281526020019250505060405180910390a1612a11565b612a0a6003546144d6565b6003819055505b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612b28575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612b3357600080fd5b60008a1115612b96576000601760008c8152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e28a6000604051808381526020018281526020019250505060405180910390a15b6000891115612bf9576000601760008b8152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2896000604051808381526020018281526020019250505060405180910390a15b6000881115612c5c576000601760008a8152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2886000604051808381526020018281526020019250505060405180910390a15b6000871115612cbf57600060176000898152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2876000604051808381526020018281526020019250505060405180910390a15b6000861115612d2257600060176000888152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2866000604051808381526020018281526020019250505060405180910390a15b6000851115612d8557600060176000878152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2856000604051808381526020018281526020019250505060405180910390a15b6000841115612de857600060176000868152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2846000604051808381526020018281526020019250505060405180910390a15b6000831115612e4b57600060176000858152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836000604051808381526020018281526020019250505060405180910390a15b6000821115612eae57600060176000848152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2826000604051808381526020018281526020019250505060405180910390a15b6000811115612f1157600060176000838152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2816000604051808381526020018281526020019250505060405180910390a15b50505050505050505050565b600080600080600080600260009054906101000a900460ff16151515612f4257600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550601560008781526020019081526020016000209450600085600101541415612fab57600080fd5b8460020160009054906101000a900460ff161580612fdc575085601660008981526020019081526020016000205414155b15612fe657600080fd5b61300a601488811515612ff557fe5b0460146101fe81151561300457fe5b046145c9565b935061303060148881151561301b57fe5b0660146101fe81151561302a57fe5b066145c9565b9250601960006305f5e100876001015481151561304957fe5b048152602001908152602001600020549150600082141561306a57600c5491505b8183840285860201111561307d57600080fd5b60105485600101541015156130d75760648560010154600854028115156130a057fe5b0493508360176000898152602001908152602001600020600082825401925050819055508385600101600082825403925050819055505b6014548560010154101561312d576012546130f6438760030154613212565b02905060145481866001015401111561311957601454856001018190555061312c565b8085600101600082825401925050819055505b5b6000601660008981526020019081526020016000208190555060008560020160006101000a81548160ff0219169083151502179055504385600301819055503373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a1087896101fe89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b60115481565b60125481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008183111561322657818303905061322b565b600090505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806132dc575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156132e757600080fd5b8060196000848152602001908152602001600020819055505050565b6000806000806000600260009054906101000a900460ff1615151561332757600080fd5b600d54861015806133385750600086145b1561334257600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205494506015600086815260200190815260200160002093506000846001015414156133ab57600080fd5b8360020160009054906101000a900460ff16156133c757600080fd5b6013548460010154111561341e576133e3438560030154613212565b92506133f784600101546011548502613212565b925060135483101561341357601354846001018190555061341d565b8284600101819055505b5b61344260146101fe81151561342f57fe5b0460148881151561343c57fe5b046145c9565b925061346860146101fe81151561345557fe5b0660148881151561346257fe5b066145c9565b9150601960006305f5e100866001015481151561348157fe5b04815260200190815260200160002054905060008114156134a257600c5490505b808283028485020111156134b557600080fd5b6000601660008881526020019081526020016000205411156134d657600080fd5b6000601760008881526020019081526020016000205411156135315760176000878152602001908152602001600020548460010160008282540192505081905550600060176000888152602001908152602001600020819055505b60018460020160006101000a81548160ff0219169083151502179055504384600301819055508460166000888152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10866101fe8988600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b6040805190810160405280600581526020017f454d4f4e4600000000000000000000000000000000000000000000000000000081525081565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613712575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561371d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561377b57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561384357600080fd5b6102c65a03f1151561385457600080fd5b5050506040518051905082111561386a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561391557600080fd5b6102c65a03f1151561392657600080fd5b5050506040518051905050505050565b600b5481565b6000806000806000600260009054906101000a900460ff1615151561396057600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205494506015600086815260200190815260200160002093508360020160009054906101000a900460ff161515613a305760135484600101541115613a26576139eb438560030154613212565b92506139ff84600101546011548502613212565b9250601354831015613a1b576013548460010181905550613a25565b8284600101819055505b5b4384600301819055505b600e5484600101541015613a4357600080fd5b60065484600101541015613a5657600080fd5b60065484600101540391506006548460010181905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515613b3457600080fd5b6102c65a03f11515613b4557600080fd5b50505060405180519050821115613b5b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360646009548602811515613b8857fe5b046000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613c1657600080fd5b6102c65a03f11515613c2757600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff167f34f1b4b50ab1fe8066f90e4b650517b54750c5450d115a4ca83183ba27d69b48868660010154604051808381526020018281526020019250505060405180910390a25050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613d40575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515613d4b57600080fd5b600060156000601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115613dae57600080fd5b6001601a6000828254019250508190555060156000601a5481526020019081526020016000209050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816001018190555060008160020160006101000a81548160ff021916908315150217905550438160030181905550601a54601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e996003546144d6565b6003819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a3505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515613f4b57600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506015600083815260200190815260200160002090506000821480613fb5575060008160010154145b80613fc05750828214155b15613fca57600080fd5b6000613fd585611dff565b1115613fe057600080fd5b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806141c8575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156141d357600080fd5b8060176000848152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e28282604051808381526020018281526020019250505060405180910390a15050565b6000806000806000808691505b601a54821115156142d6576015600083815260200190815260200160002090506000816001015411801561428757508060020160009054906101000a900460ff16155b156142c957818160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260010154836003015495509550955095506142ee565b8180600101925050614244565b60008060008083935081915080905095509550955095505b50509193509193565b601481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561435757600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561443a576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b600060166000838152602001908152602001600020549050919050565b60085481565b600080600080925060009150600090505b6014600b54028110156144d1576000601660008381526020019081526020016000205411156144a1576001830192505b6000601760008381526020019081526020016000205411156144c4576001820191505b8080600101915050614471565b509091565b60008142446040518083815260200182815260200192505050604051809103902060019004189050919050565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806145b4575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156145bf57600080fd5b80600c8190555050565b6000818311156145dd5781830390506145e3565b82820390505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480614694575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561469f57600080fd5b84600e8190555083600f819055508260108190555081601181905550806012819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480614774575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561477f57600080fd5b83600581905550826006819055508160078190555080600b81905550600b54601402600d8190555050505050565b600080600080600060166000878152602001908152602001600020549450601560008681526020019081526020016000209050848160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600301549450945094509450509193509193565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561488e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561490557806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806149b3575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156149be57600080fd5b6109c4601960008081526020019081526020016000208190555061038460196000600181526020019081526020016000208190555061019060196000600281526020019081526020016000208190555060e1601960006003815260200190815260200160002081905550609060196000600481526020019081526020016000208190555060516019600060058152602001908152602001600020819055506031601960006006815260200190815260200160002081905550603160196000600781526020019081526020016000208190555060246019600060088152602001908152602001600020819055506024601960006009815260200190815260200160002081905550602460196000600a8152602001908152602001600020819055506019806000600b8152602001908152602001600020819055506019806000600c8152602001908152602001600020819055506019806000600d8152602001908152602001600020819055506019806000600e815260200190815260200160002081905550601060196000600f8152602001908152602001600020819055506010601960006010815260200190815260200160002081905550601060196000601181526020019081526020016000208190555060106019600060128152602001908152602001600020819055506010601960006013815260200190815260200160002081905550600960196000601481526020019081526020016000208190555060096019600060158152602001908152602001600020819055506009601960006016815260200190815260200160002081905550600960196000601781526020019081526020016000208190555060096019600060188152602001908152602001600020819055506009601960006019815260200190815260200160002081905550565b600080600080600080601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205495506015600087815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450806001015493508060020160009054906101000a900460ff169250806003015491505091939590929450565b600654815600a165627a7a723058202e381011d9b854766746043b631c24d570d8d47f821852e197e857cfc6d3fca9002900000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31

Deployed Bytecode

0x606060405260043610610317576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301239adf1461031c57806306fdde0314610345578063136b4fea146103d357806314d0f1ba1461045b57806318160ddd146104ac578063181dcbcd146104d557806322230fc41461050157806329e614ee1461052a5780632f48f151146105535780633989c6661461057c5780633b016d83146105b157806345408a8a146105f857806348ef5aa8146106215780634db77d9d146106465780634efb023e1461067d5780634fbf6e9f146106ae578063503c849e14610730578063522f68151461075957806354f60aea1461079b57806355a373d6146107c457806359b62658146108195780635c7b9ccf1461085b578063602998431461088457806362b26f95146108ad5780636352211e146108d6578063672324ac1461093957806368da480b146109625780636c81fd6d1461098b5780636d07f295146109c457806370a08231146109ed578063754ad98114610a3a5780637c17dc0214610a6657806380cae00714610a7057806382cb08aa14610ae45780638ba4530714610b075780638c335b4b14610b305780638da5cb5b14610b595780638f99fdab14610bae578063905473cf14610bee5780639392414714610c1a57806395d89b4114610c3d5780639b01c7ac14610ccb5780639e281a9814610d185780639ededf7714610d5a578063a1e564b114610d83578063a903016214610d98578063a9059cbb14610dda578063aec30dc114610e1c578063b02b69d614610e45578063b60868be14610e71578063b73974a114610ee9578063b85d627514610f12578063be32eeba14610f4b578063c0b332c114610f82578063c59d484714610fab578063cd4b691414610fdb578063cf2d03ae14611012578063d398806d1461103b578063d4fa90211461105e578063d855c0591461109e578063e5c389cd146110e5578063ecd747de14611123578063ee4e44161461119b578063f2853292146111c8578063f838ea1a14611201578063f8ecb55814611216578063fbe3549c146112af575b600080fd5b341561032757600080fd5b61032f6112d8565b6040518082815260200191505060405180910390f35b341561035057600080fd5b6103586112de565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039857808201518184015260208101905061037d565b50505050905090810190601f1680156103c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103de57600080fd5b6103fd6004808035906020019091908035906020019091905050611317565b604051808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390f35b341561046657600080fd5b610492600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113ce565b604051808215151515815260200191505060405180910390f35b34156104b757600080fd5b6104bf6113ee565b6040518082815260200191505060405180910390f35b34156104e057600080fd5b6104ff60048080359060200190919080359060200190919050506113f8565b005b341561050c57600080fd5b6105146114c0565b6040518082815260200191505060405180910390f35b341561053557600080fd5b61053d61152e565b6040518082815260200191505060405180910390f35b341561055e57600080fd5b610566611534565b6040518082815260200191505060405180910390f35b341561058757600080fd5b6105af600480803590602001909190803590602001909190803590602001909190505061153a565b005b34156105bc57600080fd5b6105db600480803590602001909190803590602001909190505061160a565b604051808381526020018281526020019250505060405180910390f35b341561060357600080fd5b61060b61166a565b6040518082815260200191505060405180910390f35b341561062c57600080fd5b61064460048080351515906020019091905050611670565b005b341561065157600080fd5b61066760048080359060200190919050506116e8565b6040518082815260200191505060405180910390f35b341561068857600080fd5b610690611705565b604051808261ffff1661ffff16815260200191505060405180910390f35b34156106b957600080fd5b6106d5600480803563ffffffff16906020019091905050611719565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018315151515815260200182815260200194505050505060405180910390f35b341561073b57600080fd5b61074361178d565b6040518082815260200191505060405180910390f35b341561076457600080fd5b610799600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611793565b005b34156107a657600080fd5b6107ae6118b1565b6040518082815260200191505060405180910390f35b34156107cf57600080fd5b6107d76118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082457600080fd5b610859600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118df565b005b341561086657600080fd5b61086e611c3f565b6040518082815260200191505060405180910390f35b341561088f57600080fd5b610897611c45565b6040518082815260200191505060405180910390f35b34156108b857600080fd5b6108c0611c4b565b6040518082815260200191505060405180910390f35b34156108e157600080fd5b6108f76004808035906020019091905050611c51565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561094457600080fd5b61094c611cad565b6040518082815260200191505060405180910390f35b341561096d57600080fd5b610975611cb3565b6040518082815260200191505060405180910390f35b341561099657600080fd5b6109c2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cb9565b005b34156109cf57600080fd5b6109d7611df9565b6040518082815260200191505060405180910390f35b34156109f857600080fd5b610a24600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611dff565b6040518082815260200191505060405180910390f35b3415610a4557600080fd5b610a646004808035906020019091908035906020019091905050611e71565b005b610a6e6127cf565b005b3415610a7b57600080fd5b610ae26004808035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091905050612a7d565b005b3415610aef57600080fd5b610b056004808035906020019091905050612f1d565b005b3415610b1257600080fd5b610b1a6131e1565b6040518082815260200191505060405180910390f35b3415610b3b57600080fd5b610b436131e7565b6040518082815260200191505060405180910390f35b3415610b6457600080fd5b610b6c6131ed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bb957600080fd5b610bd86004808035906020019091908035906020019091905050613212565b6040518082815260200191505060405180910390f35b3415610bf957600080fd5b610c186004808035906020019091908035906020019091905050613231565b005b3415610c2557600080fd5b610c3b6004808035906020019091905050613303565b005b3415610c4857600080fd5b610c506135e3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c90578082015181840152602081019050610c75565b50505050905090810190601f168015610cbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610cd657600080fd5b610d02600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061361c565b6040518082815260200191505060405180910390f35b3415610d2357600080fd5b610d58600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613665565b005b3415610d6557600080fd5b610d6d613936565b6040518082815260200191505060405180910390f35b3415610d8e57600080fd5b610d9661393c565b005b3415610da357600080fd5b610dd8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613c93565b005b3415610de557600080fd5b610e1a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613f0c565b005b3415610e2757600080fd5b610e2f614117565b6040518082815260200191505060405180910390f35b3415610e5057600080fd5b610e6f600480803590602001909190803590602001909190505061411d565b005b3415610e7c57600080fd5b610e926004808035906020019091905050614237565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b3415610ef457600080fd5b610efc6142f7565b6040518082815260200191505060405180910390f35b3415610f1d57600080fd5b610f49600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506142fc565b005b3415610f5657600080fd5b610f6c600480803590602001909190505061443d565b6040518082815260200191505060405180910390f35b3415610f8d57600080fd5b610f9561445a565b6040518082815260200191505060405180910390f35b3415610fb657600080fd5b610fbe614460565b604051808381526020018281526020019250505060405180910390f35b3415610fe657600080fd5b610ffc60048080359060200190919050506144d6565b6040518082815260200191505060405180910390f35b341561101d57600080fd5b611025614503565b6040518082815260200191505060405180910390f35b341561104657600080fd5b61105c6004808035906020019091905050614509565b005b341561106957600080fd5b61108860048080359060200190919080359060200190919050506145c9565b6040518082815260200191505060405180910390f35b34156110a957600080fd5b6110e360048080359060200190919080359060200190919080359060200190919080359060200190919080359060200190919050506145e9565b005b34156110f057600080fd5b61112160048080359060200190919080359060200190919080359060200190919080359060200190919050506146c9565b005b341561112e57600080fd5b61114460048080359060200190919050506147ad565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b34156111a657600080fd5b6111ae614820565b604051808215151515815260200191505060405180910390f35b34156111d357600080fd5b6111ff600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050614833565b005b341561120c57600080fd5b611214614908565b005b341561122157600080fd5b61124d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050614c62565b604051808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001831515151581526020018281526020019550505050505060405180910390f35b34156112ba57600080fd5b6112c2614d15565b6040518082815260200191505060405180910390f35b600d5481565b6040805190810160405280600b81526020017f456d6f6e744672656e7a7900000000000000000000000000000000000000000081525081565b60008060008060008060008891505b87821115156113c1576000601660008481526020019081526020016000205411156113b6576016600083815260200190815260200160002054955060156000878152602001908152602001600020905081868260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600101548460030154965096509650965096506113c2565b600182019150611326565b5b50509295509295909350565b60016020528060005260406000206000915054906101000a900460ff1681565b6000601a54905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114a3575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156114ae57600080fd5b81601381905550806014819055505050565b6000806000809250600091505b601a5482111515611529576015600083815260200190815260200160002090506000816001015411801561151057508060020160009054906101000a900460ff16155b1561151c576001830192505b81806001019250506114cd565b505090565b60075481565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115e5575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156115f057600080fd5b826008819055508160098190555080600a81905550505050565b60008060008490505b8381111515611661576000601760008381526020019081526020016000205411156116565780601760008381526020019081526020016000205492509250611662565b600181019050611613565b5b509250929050565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116cb57600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060196000838152602001908152602001600020549050919050565b600060149054906101000a900461ffff1681565b6000806000806000601560008763ffffffff16815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101548260020160009054906101000a900460ff1683600301549450945094509450509193509193565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061183e575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561184957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111561186d57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156118ad57600080fd5b5050565b6305f5e10081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061198f575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561199a57600080fd5b6064600a5485028115156119aa57fe5b049250600654831415156119bd57600080fd5b600060156000601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115611a2057600080fd5b6001601a6000828254019250508190555060156000601a5481526020019081526020016000209150848260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654826001018190555060008260020160006101000a81548160ff021916908315150217905550438260030181905550601a54601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006007541115611bbe57611b186003546144d6565b6003819055506001600d5403600354811515611b3057fe5b0690506101fe811415611b44576001810190505b60075460176000838152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2816017600084815260200190815260200160002054604051808381526020018281526020019250505060405180910390a1611bd0565b611bc96003546144d6565b6003819055505b8473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a35050505050565b6101fe81565b60105481565b601a5481565b600080601560008481526020019081526020016000209050600081600101541115611ca2578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611ca7565b600091505b50919050565b600a5481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d1457600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611df65760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b600f5481565b60008060156000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115611e675760019050611e6c565b600090505b919050565b600080600080600080600260009054906101000a900460ff16151515611e9657600080fd5b600d548710158015611ea85750868814155b15611eb257600080fd5b6101fe881480611ec357506101fe87145b15611ecd57600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550601560008781526020019081526020016000209450600085600101541415611f3657600080fd5b8460020160009054906101000a900460ff161580611f67575085601660008a81526020019081526020016000205414155b15611f7157600080fd5b611f93601489811515611f8057fe5b04601489811515611f8d57fe5b046145c9565b9350611fb7601489811515611fa457fe5b06601489811515611fb157fe5b066145c9565b9250601960006305f5e1008760010154811515611fd057fe5b0481526020019081526020016000205491506000821415611ff157600c5491505b8183840285860201111561200457600080fd5b6000601660008a815260200190815260200160002081905550601054856001015410151561207757606485600101546008540281151561204057fe5b04935083601760008a8152602001908152602001600020600082825401925050819055508385600101600082825403925050819055505b601660008881526020019081526020016000205493506000841415612178576000601760008981526020019081526020016000205411156120f15760176000888152602001908152602001600020548560010160008282540192505081905550600060176000898152602001908152602001600020819055505b3373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10878a8a89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a28560166000898152602001908152602001600020819055506127c5565b6015600085815260200190815260200160002090508460010154600f548260010154011115156123165780600101548560010160008282540192505081905550600081600101819055508560166000898152602001908152602001600020819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc15f52570a93e125c446dad9d62b70661ca12a0f34b6b4fe6375284706576c4f88878c8c8b60010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36127c4565b846001015481600101541115156125de576123326003546144d6565b6003819055506001600d540360035481151561234a57fe5b0692506101fe83141561235e576001830192505b600281600101540260176000858152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836017600086815260200190815260200160002054604051808381526020018281526020019250505060405180910390a18060010154856001016000828254039250508190555060008160010181905550600085600101541115612422578560166000898152602001908152602001600020819055506124a2565b60006016600089815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff33ea0d9449fd6e15735c140f51c1e01bacda12ea866ebd8c8f8c5a7009af4f388878c8c8b60010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36127c3565b6125e96003546144d6565b6003819055506001600d540360035481151561260157fe5b0692506101fe831415612615576001830192505b600285600101540260176000858152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836017600086815260200190815260200160002054604051808381526020018281526020019250505060405180910390a184600101548160010160008282540392505081905550600085600101819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fca1dfeb0fb285992538d0b85b07f749d9c530b608237c5aca0726b3ee383509f88878c8c8760010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b5b5b5050505050505050565b600080600260009054906101000a900460ff161515156127ee57600080fd5b600554341415156127fe57600080fd5b600060156000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060010154111561286157600080fd5b6001601a6000828254019250508190555060156000601a5481526020019081526020016000209150338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654826001018190555060008260020160006101000a81548160ff021916908315150217905550438260030181905550601a54601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060075411156129ff576129596003546144d6565b6003819055506001600d540360035481151561297157fe5b0690506101fe811415612985576001810190505b60075460176000838152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2816017600084815260200190815260200160002054604051808381526020018281526020019250505060405180910390a1612a11565b612a0a6003546144d6565b6003819055505b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612b28575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612b3357600080fd5b60008a1115612b96576000601760008c8152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e28a6000604051808381526020018281526020019250505060405180910390a15b6000891115612bf9576000601760008b8152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2896000604051808381526020018281526020019250505060405180910390a15b6000881115612c5c576000601760008a8152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2886000604051808381526020018281526020019250505060405180910390a15b6000871115612cbf57600060176000898152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2876000604051808381526020018281526020019250505060405180910390a15b6000861115612d2257600060176000888152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2866000604051808381526020018281526020019250505060405180910390a15b6000851115612d8557600060176000878152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2856000604051808381526020018281526020019250505060405180910390a15b6000841115612de857600060176000868152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2846000604051808381526020018281526020019250505060405180910390a15b6000831115612e4b57600060176000858152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836000604051808381526020018281526020019250505060405180910390a15b6000821115612eae57600060176000848152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2826000604051808381526020018281526020019250505060405180910390a15b6000811115612f1157600060176000838152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2816000604051808381526020018281526020019250505060405180910390a15b50505050505050505050565b600080600080600080600260009054906101000a900460ff16151515612f4257600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550601560008781526020019081526020016000209450600085600101541415612fab57600080fd5b8460020160009054906101000a900460ff161580612fdc575085601660008981526020019081526020016000205414155b15612fe657600080fd5b61300a601488811515612ff557fe5b0460146101fe81151561300457fe5b046145c9565b935061303060148881151561301b57fe5b0660146101fe81151561302a57fe5b066145c9565b9250601960006305f5e100876001015481151561304957fe5b048152602001908152602001600020549150600082141561306a57600c5491505b8183840285860201111561307d57600080fd5b60105485600101541015156130d75760648560010154600854028115156130a057fe5b0493508360176000898152602001908152602001600020600082825401925050819055508385600101600082825403925050819055505b6014548560010154101561312d576012546130f6438760030154613212565b02905060145481866001015401111561311957601454856001018190555061312c565b8085600101600082825401925050819055505b5b6000601660008981526020019081526020016000208190555060008560020160006101000a81548160ff0219169083151502179055504385600301819055503373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a1087896101fe89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b60115481565b60125481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008183111561322657818303905061322b565b600090505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806132dc575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156132e757600080fd5b8060196000848152602001908152602001600020819055505050565b6000806000806000600260009054906101000a900460ff1615151561332757600080fd5b600d54861015806133385750600086145b1561334257600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205494506015600086815260200190815260200160002093506000846001015414156133ab57600080fd5b8360020160009054906101000a900460ff16156133c757600080fd5b6013548460010154111561341e576133e3438560030154613212565b92506133f784600101546011548502613212565b925060135483101561341357601354846001018190555061341d565b8284600101819055505b5b61344260146101fe81151561342f57fe5b0460148881151561343c57fe5b046145c9565b925061346860146101fe81151561345557fe5b0660148881151561346257fe5b066145c9565b9150601960006305f5e100866001015481151561348157fe5b04815260200190815260200160002054905060008114156134a257600c5490505b808283028485020111156134b557600080fd5b6000601660008881526020019081526020016000205411156134d657600080fd5b6000601760008881526020019081526020016000205411156135315760176000878152602001908152602001600020548460010160008282540192505081905550600060176000888152602001908152602001600020819055505b60018460020160006101000a81548160ff0219169083151502179055504384600301819055508460166000888152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10866101fe8988600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2505050505050565b6040805190810160405280600581526020017f454d4f4e4600000000000000000000000000000000000000000000000000000081525081565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613712575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561371d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561377b57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561384357600080fd5b6102c65a03f1151561385457600080fd5b5050506040518051905082111561386a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561391557600080fd5b6102c65a03f1151561392657600080fd5b5050506040518051905050505050565b600b5481565b6000806000806000600260009054906101000a900460ff1615151561396057600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205494506015600086815260200190815260200160002093508360020160009054906101000a900460ff161515613a305760135484600101541115613a26576139eb438560030154613212565b92506139ff84600101546011548502613212565b9250601354831015613a1b576013548460010181905550613a25565b8284600101819055505b5b4384600301819055505b600e5484600101541015613a4357600080fd5b60065484600101541015613a5657600080fd5b60065484600101540391506006548460010181905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515613b3457600080fd5b6102c65a03f11515613b4557600080fd5b50505060405180519050821115613b5b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360646009548602811515613b8857fe5b046000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613c1657600080fd5b6102c65a03f11515613c2757600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff167f34f1b4b50ab1fe8066f90e4b650517b54750c5450d115a4ca83183ba27d69b48868660010154604051808381526020018281526020019250505060405180910390a25050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613d40575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515613d4b57600080fd5b600060156000601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115613dae57600080fd5b6001601a6000828254019250508190555060156000601a5481526020019081526020016000209050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816001018190555060008160020160006101000a81548160ff021916908315150217905550438160030181905550601a54601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e996003546144d6565b6003819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040518082815260200191505060405180910390a3505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515613f4b57600080fd5b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506015600083815260200190815260200160002090506000821480613fb5575060008160010154145b80613fc05750828214155b15613fca57600080fd5b6000613fd585611dff565b1115613fe057600080fd5b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b60135481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806141c8575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156141d357600080fd5b8060176000848152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e28282604051808381526020018281526020019250505060405180910390a15050565b6000806000806000808691505b601a54821115156142d6576015600083815260200190815260200160002090506000816001015411801561428757508060020160009054906101000a900460ff16155b156142c957818160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260010154836003015495509550955095506142ee565b8180600101925050614244565b60008060008083935081915080905095509550955095505b50509193509193565b601481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561435757600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561443a576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b600060166000838152602001908152602001600020549050919050565b60085481565b600080600080925060009150600090505b6014600b54028110156144d1576000601660008381526020019081526020016000205411156144a1576001830192505b6000601760008381526020019081526020016000205411156144c4576001820191505b8080600101915050614471565b509091565b60008142446040518083815260200182815260200192505050604051809103902060019004189050919050565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806145b4575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156145bf57600080fd5b80600c8190555050565b6000818311156145dd5781830390506145e3565b82820390505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480614694575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561469f57600080fd5b84600e8190555083600f819055508260108190555081601181905550806012819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480614774575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561477f57600080fd5b83600581905550826006819055508160078190555080600b81905550600b54601402600d8190555050505050565b600080600080600060166000878152602001908152602001600020549450601560008681526020019081526020016000209050848160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600301549450945094509450509193509193565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561488e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561490557806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806149b3575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156149be57600080fd5b6109c4601960008081526020019081526020016000208190555061038460196000600181526020019081526020016000208190555061019060196000600281526020019081526020016000208190555060e1601960006003815260200190815260200160002081905550609060196000600481526020019081526020016000208190555060516019600060058152602001908152602001600020819055506031601960006006815260200190815260200160002081905550603160196000600781526020019081526020016000208190555060246019600060088152602001908152602001600020819055506024601960006009815260200190815260200160002081905550602460196000600a8152602001908152602001600020819055506019806000600b8152602001908152602001600020819055506019806000600c8152602001908152602001600020819055506019806000600d8152602001908152602001600020819055506019806000600e815260200190815260200160002081905550601060196000600f8152602001908152602001600020819055506010601960006010815260200190815260200160002081905550601060196000601181526020019081526020016000208190555060106019600060128152602001908152602001600020819055506010601960006013815260200190815260200160002081905550600960196000601481526020019081526020016000208190555060096019600060158152602001908152602001600020819055506009601960006016815260200190815260200160002081905550600960196000601781526020019081526020016000208190555060096019600060188152602001908152602001600020819055506009601960006019815260200190815260200160002081905550565b600080600080600080601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205495506015600087815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169450806001015493508060020160009054906101000a900460ff169250806003015491505091939590929450565b600654815600a165627a7a723058202e381011d9b854766746043b631c24d570d8d47f821852e197e857cfc6d3fca90029

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

00000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31

-----Decoded View---------------
Arg [0] : _tokenContract (address): 0x95dAaaB98046846bF4B2853e23cba236fa394A31

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31


Swarm Source

bzzr://2e381011d9b854766746043b631c24d570d8d47f821852e197e857cfc6d3fca9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.