More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 16,636 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake | 21549181 | 3 hrs ago | IN | 0 ETH | 0.00052918 | ||||
Claim | 21548354 | 6 hrs ago | IN | 0 ETH | 0.00069978 | ||||
Claim | 21548257 | 6 hrs ago | IN | 0 ETH | 0.00057566 | ||||
Stake | 21548208 | 7 hrs ago | IN | 0 ETH | 0.00059306 | ||||
Stake | 21541566 | 29 hrs ago | IN | 0 ETH | 0.00096713 | ||||
Claim | 21541557 | 29 hrs ago | IN | 0 ETH | 0.00062506 | ||||
Claim | 21540917 | 31 hrs ago | IN | 0 ETH | 0.00064243 | ||||
Claim | 21535324 | 2 days ago | IN | 0 ETH | 0.00111278 | ||||
Claim | 21535084 | 2 days ago | IN | 0 ETH | 0.0013976 | ||||
Stake | 21528852 | 2 days ago | IN | 0 ETH | 0.00054067 | ||||
Stake | 21528457 | 3 days ago | IN | 0 ETH | 0.0005351 | ||||
Claim | 21528434 | 3 days ago | IN | 0 ETH | 0.0004915 | ||||
Stake | 21527809 | 3 days ago | IN | 0 ETH | 0.00035009 | ||||
Stake | 21526470 | 3 days ago | IN | 0 ETH | 0.00042621 | ||||
Claim | 21526462 | 3 days ago | IN | 0 ETH | 0.00044091 | ||||
Claim | 21526428 | 3 days ago | IN | 0 ETH | 0.00030946 | ||||
Claim | 21525976 | 3 days ago | IN | 0 ETH | 0.0003984 | ||||
Claim | 21525235 | 3 days ago | IN | 0 ETH | 0.00050675 | ||||
Claim | 21523069 | 3 days ago | IN | 0 ETH | 0.00129519 | ||||
Claim | 21522933 | 3 days ago | IN | 0 ETH | 0.00104397 | ||||
Stake | 21519962 | 4 days ago | IN | 0 ETH | 0.00036281 | ||||
Claim | 21516568 | 4 days ago | IN | 0 ETH | 0.00084589 | ||||
Claim | 21516562 | 4 days ago | IN | 0 ETH | 0.00085131 | ||||
Claim | 21514617 | 4 days ago | IN | 0 ETH | 0.00054608 | ||||
Claim | 21514592 | 4 days ago | IN | 0 ETH | 0.00045131 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21549181 | 3 hrs ago | 0 ETH | |||||
21548354 | 6 hrs ago | 0 ETH | |||||
21548354 | 6 hrs ago | 0 ETH | |||||
21548354 | 6 hrs ago | 0 ETH | |||||
21548257 | 6 hrs ago | 0 ETH | |||||
21548257 | 6 hrs ago | 0 ETH | |||||
21548257 | 6 hrs ago | 0 ETH | |||||
21548208 | 7 hrs ago | 0 ETH | |||||
21541566 | 29 hrs ago | 0 ETH | |||||
21541566 | 29 hrs ago | 0 ETH | |||||
21541566 | 29 hrs ago | 0 ETH | |||||
21541557 | 29 hrs ago | 0 ETH | |||||
21541557 | 29 hrs ago | 0 ETH | |||||
21540917 | 31 hrs ago | 0 ETH | |||||
21540917 | 31 hrs ago | 0 ETH | |||||
21540917 | 31 hrs ago | 0 ETH | |||||
21535324 | 2 days ago | 0 ETH | |||||
21535324 | 2 days ago | 0 ETH | |||||
21535084 | 2 days ago | 0 ETH | |||||
21535084 | 2 days ago | 0 ETH | |||||
21528852 | 2 days ago | 0 ETH | |||||
21528457 | 3 days ago | 0 ETH | |||||
21528457 | 3 days ago | 0 ETH | |||||
21528457 | 3 days ago | 0 ETH | |||||
21528434 | 3 days ago | 0 ETH |
Loading...
Loading
Contract Name:
TubeChiefV2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Multiple files format)
pragma solidity ^0.6.12; import './TransferHelper.sol'; import './SafeMath.sol'; contract TubeChiefV2 { using SafeMath for uint; struct PoolInfo { address lpTokenAddress; // the LP token pair address uint rewardPerBlock; // number of TUBE will mint per block uint lastDevBlockNo; // record token mint to development last block number uint lastLotBlockNo; // record token mint to lottery last block number uint lastStakeBlockNo; // record token mint to staking last block number uint lastJackpotBlockNo; // record token mint to jackpot last block number uint accLpStaked; // accumulate number of LP token user staked uint accLastBlockNo; // record last pass in block number uint multiplier; // reward multiplier uint accTokenPerShare; // accumulated token per share bool locked; // pool is locked bool finished; // pool is finished. Disable stake into pool } struct UserPoolInfo { uint lpStaked; // user staked LP uint rewardDebt; // user debt uint lastClaimBlock; // last block number user retrieve reward } mapping(uint => PoolInfo) public pools; // dynamic pool container (pool ID => pool related data) mapping(address => uint[]) poolIdByLp; // pool ids recorder (LP token => pool ids) // user pool allocate (user addr => (<pool ID> => user pool data)) mapping(address => mapping(uint => UserPoolInfo)) public users; // allow to manage defarm operation mapping(address => bool) public defarm_permission; // allow to manage functional operation mapping(address => bool) public access_permission; address public owner; // owner of tube chief address public tube; // the TUBE token address public devaddr; // development address address public lotaddr; // lottery address address public dfstakeaddr; // sub staking address address public dfjackpotaddr; // sub jackpot address address public treasury; // minting purpose. treasury or TUBE token uint public poolLength; // next pool id. current length is (poolLength - 1) uint public FARMER = 500000000000000000; uint public DEV = 100000000000000000; uint public LOTTERY = 150000000000000000; uint public DFSTAKE = 25000000000000000; uint public DFJACKPOT = 225000000000000000; uint constant DECIMAL = 18; event CreatePool(address lpTokenAddress, uint rewardPerBlock, uint poolId); event UpdatePool(uint poolId, uint rewardPerBlock, uint multiplier, bool locked); event UpdateDevAddr(address devaddr); event UpdateLotAddr(address lotaddr); event UpdateDefarmAddress(address dfstakeaddr, address dfjackpotaddr); event UpdateAllocation(uint farmer, uint dev, uint lot, uint staking, uint jackpot); event UpdateDefarmPermission(address _address, bool status); event UpdateAccessPermission(address _address, bool status); event UpdateTreasury(address _address); event UpdatePoolFinish(uint poolId, bool finished); event Stake(uint poolId, uint amount); event Claim(uint poolId, uint amount, uint claimable); event TransferCompany(address old_owner, address new_owner); event TransferDev(uint poolId, address receiver, uint amount); event TransferLottery(uint poolId, address receiver, uint amount); event TransferStaking(uint poolId, address receiver, uint amount); event TransferJackpotReward(address receiver, uint amount); modifier onlyOwner { require(msg.sender == owner, 'NOT OWNER'); _; } modifier hasDefarmPermission() { require(defarm_permission[msg.sender], 'NO DEFARM PERMISSION'); _; } modifier hasAccessPermission() { require(access_permission[msg.sender], 'NO ACCESS PERMISSION'); _; } constructor (address _tube, address _devaddr, address _lotaddr) public { owner = msg.sender; tube = _tube; devaddr = _devaddr; lotaddr = _lotaddr; defarm_permission[msg.sender] = true; access_permission[msg.sender] = true; } // create new pool. only owner executable // XX do not create twice on same LP token. reward will mess up if you do function createPool(address _lpTokenAddress, uint _rewardPerBlock, uint _multiplier) public hasAccessPermission { require(_lpTokenAddress != address(0), 'CREATE_POOL_EMPTY_ADDRESS'); emit CreatePool(_lpTokenAddress, _rewardPerBlock, poolLength); pools[poolLength].lpTokenAddress = _lpTokenAddress; pools[poolLength].rewardPerBlock = _rewardPerBlock; pools[poolLength].multiplier = _multiplier; pools[poolLength].accLastBlockNo = block.number; pools[poolLength].lastDevBlockNo = block.number; pools[poolLength].lastLotBlockNo = block.number; pools[poolLength].lastStakeBlockNo = block.number; pools[poolLength].lastJackpotBlockNo = block.number; poolIdByLp[_lpTokenAddress].push(poolLength); poolLength = poolLength.add(1); } // update pool setting, edit wisely. only owner executable function updatePool(uint poolId, uint _rewardPerBlock, uint _multiplier, bool _locked) public hasAccessPermission { _updateAccTokenPerShare(poolId); pools[poolId].rewardPerBlock = _rewardPerBlock; pools[poolId].multiplier = _multiplier; pools[poolId].locked = _locked; emit UpdatePool(poolId, _rewardPerBlock, _multiplier, _locked); } // update pool is finish. user not allow to stake into pool. only owner executable function updatePoolFinish(uint poolId, bool _finished) public hasAccessPermission { pools[poolId].finished = _finished; emit UpdatePoolFinish(poolId, _finished); } // update development address. only owner executable function updateDevAddr(address _address) public hasAccessPermission { devaddr = _address; emit UpdateDevAddr(devaddr); } // update lottery address. only owner executable function updateLotAddr(address _address) public hasAccessPermission { lotaddr = _address; emit UpdateLotAddr(lotaddr); } // update defarm addresses. only owner executable function updateDefarmAddress(address _dfstakeaddr, address _dfjackpotaddr) public hasAccessPermission { dfstakeaddr = _dfstakeaddr; dfjackpotaddr = _dfjackpotaddr; emit UpdateDefarmAddress(dfstakeaddr, dfjackpotaddr); } // update treasury allow chief mint TUBE token. only owner executable function updateTreasury(address _address) public hasAccessPermission { treasury = _address; emit UpdateTreasury(_address); } // update allocation for each sector. only owner executable function updateAllocation(uint _farmer, uint _dev, uint _lot, uint _dfstake, uint _dfjackpot) public hasAccessPermission { require(_farmer.add(_dev).add(_lot).add(_dfstake).add(_dfjackpot) == 1000000000000000000, "invalid allocation"); FARMER = _farmer; DEV = _dev; LOTTERY = _lot; DFSTAKE = _dfstake; DFJACKPOT = _dfjackpot; emit UpdateAllocation(_farmer, _dev, _lot, _dfstake, _dfjackpot); } // update defarm permission. only owner executable function updateDefarmPermission(address _address, bool status) public onlyOwner { defarm_permission[_address] = status; emit UpdateDefarmPermission(_address, status); } // update access permission. only owner executable function updateAccessPermission(address _address, bool status) public onlyOwner { access_permission[_address] = status; emit UpdateAccessPermission(_address, status); } // stake LP token to earn TUBE function stake(uint poolId, uint amount) public { require(pools[poolId].lpTokenAddress != address(0), 'STAKE_POOL_NOT_EXIST'); require(pools[poolId].locked == false, 'STAKE_POOL_LOCKED'); require(pools[poolId].finished == false, 'STAKE_POOL_FINISHED'); claim(poolId, 0); TransferHelper.safeTransferFrom(pools[poolId].lpTokenAddress, msg.sender, address(this), amount); pools[poolId].accLpStaked = pools[poolId].accLpStaked.add(amount); users[msg.sender][poolId].lpStaked = users[msg.sender][poolId].lpStaked.add(amount); users[msg.sender][poolId].lastClaimBlock = block.number; users[msg.sender][poolId].rewardDebt = pools[poolId].accTokenPerShare.mul(users[msg.sender][poolId].lpStaked, DECIMAL); emit Stake(poolId, amount); } // claim TUBE token. input LP token to exit pool function claim(uint poolId, uint amount) public { require(pools[poolId].lpTokenAddress != address(0), 'CLAIM_POOL_NOT_EXIST'); require(pools[poolId].locked == false, 'CLAIM_POOL_LOCKED'); _updateAccTokenPerShare(poolId); uint claimable = _getRewardAmount(poolId); if (claimable > 0) { IMint(treasury).farmMint(address(this), claimable); TransferHelper.safeTransfer(tube, msg.sender, claimable); users[msg.sender][poolId].lastClaimBlock = block.number; } if (amount > 0) { TransferHelper.safeTransfer(pools[poolId].lpTokenAddress, msg.sender, amount); users[msg.sender][poolId].lpStaked = users[msg.sender][poolId].lpStaked.sub(amount); pools[poolId].accLpStaked = pools[poolId].accLpStaked.sub(amount); } // emit if necessary. cost saving if (claimable > 0 || amount > 0) { emit Claim(poolId, amount, claimable); } // update the user reward debt at this moment users[msg.sender][poolId].rewardDebt = pools[poolId].accTokenPerShare.mul(users[msg.sender][poolId].lpStaked, DECIMAL); } // get token per share with current block number function getAccTokenInfo(uint poolId) public view returns (uint) { if (pools[poolId].accLpStaked <= 0) { return 0; } uint reward_block = pools[poolId].rewardPerBlock; uint multiplier = pools[poolId].multiplier; uint total_staked = pools[poolId].accLpStaked; uint pending = block.number.sub(pools[poolId].accLastBlockNo); pending = pending * 10**DECIMAL; // cast to "wei" unit uint result = reward_block.mul(multiplier, DECIMAL).mul(pending, DECIMAL).mul(FARMER, DECIMAL); return result.div(total_staked, DECIMAL); } // emergency collect token from the contract. only owner executable function emergencyCollectToken(address token, uint amount) public onlyOwner { TransferHelper.safeTransfer(token, owner, amount); } // emergency collect eth from the contract. only owner executable function emergencyCollectEth(uint amount) public onlyOwner { address payable owner_address = payable(owner); TransferHelper.safeTransferETH(owner_address, amount); } // transfer ownership. proceed wisely. only owner executable function transferCompany(address new_owner) public onlyOwner { emit TransferCompany(owner, new_owner); owner = new_owner; } // transfer mintable token to development address function transferDev(uint poolId) public hasAccessPermission { uint mintable = getExMintable(poolId, keccak256("DEV")); require(mintable > 0, 'TRANSFER_DEV_EMPTY'); require(devaddr != address(0), 'EMPTY DEV ADDRESS'); IMint(treasury).farmMint(address(this), mintable); TransferHelper.safeTransfer(tube, devaddr, mintable); pools[poolId].lastDevBlockNo = block.number; emit TransferDev(poolId, devaddr, mintable); } // transfer mintable token to lottery address function transferLottery(uint poolId) public hasAccessPermission { uint mintable = getExMintable(poolId, keccak256("LOTTERY")); require(mintable > 0, 'TRANSFER_LOT_EMPTY'); require(lotaddr != address(0), 'EMPTY LOTTERY ADDRESS'); IMint(treasury).farmMint(address(this), mintable); TransferHelper.safeTransfer(tube, lotaddr, mintable); pools[poolId].lastLotBlockNo = block.number; emit TransferLottery(poolId, lotaddr, mintable); } // transfer mintable token to sub staking function transferStaking(uint poolId) public hasDefarmPermission { uint mintable = getExMintable(poolId, keccak256("STAKING")); require(dfstakeaddr != address(0), 'EMPTY DFSTAKE ADDRESS'); if (mintable > 0) { IMint(treasury).farmMint(address(this), mintable); TransferHelper.safeTransfer(tube, dfstakeaddr, mintable); pools[poolId].lastStakeBlockNo = block.number; emit TransferStaking(poolId, dfstakeaddr, mintable); } } // transfer mintable token to sub jackpot function transferJackpotReward() public hasDefarmPermission returns (uint) { require(dfjackpotaddr != address(0), 'EMPTY DFJACKPOT ADDRESS'); uint mintable = getJackpotReward(); if (mintable > 0) { IMint(treasury).farmMint(address(this), mintable); TransferHelper.safeTransfer(tube, dfjackpotaddr, mintable); emit TransferJackpotReward(dfjackpotaddr, mintable); } for (uint i = 0; i <= poolLength.sub(1); i++) { pools[i].lastJackpotBlockNo = block.number; } return mintable; } // retrieve the mintable amount function getExMintable(uint poolId, bytes32 category) public view returns (uint) { uint last_block = 0; uint rate = 0; if (category == keccak256("DEV")) { last_block = pools[poolId].lastDevBlockNo; rate = DEV; } else if (category == keccak256("LOTTERY")) { last_block = pools[poolId].lastLotBlockNo; rate = LOTTERY; } else if (category == keccak256("STAKING")) { last_block = pools[poolId].lastStakeBlockNo; rate = DFSTAKE; } else if (category == keccak256("JACKPOT")) { last_block = pools[poolId].lastJackpotBlockNo; rate = DFJACKPOT; } else { last_block = 0; rate = 0; } uint block_diff = block.number.sub(last_block); block_diff = block_diff * 10**DECIMAL; return block_diff.mul(pools[poolId].rewardPerBlock, DECIMAL).mul(pools[poolId].multiplier, DECIMAL).mul(rate, DECIMAL); } // retrieve jackpot reward allocation function getJackpotReward() public view returns (uint) { uint reward = 0; for (uint i = 0; i <= poolLength.sub(1); i++) { reward = reward.add(getExMintable(i, keccak256("JACKPOT"))); } return reward; } // retrieve pool ids by LP token address function getPidByLpToken(address _lpTokenAddress) public view returns (uint[] memory) { return poolIdByLp[_lpTokenAddress]; } // retrieve user reward info on the pool with current block number function getUserReward(uint poolId) public view returns (uint, uint, uint, uint, uint) { uint accTokenPerShare = getAccTokenInfo(poolId); accTokenPerShare = accTokenPerShare.add(pools[poolId].accTokenPerShare); uint claimable = accTokenPerShare.mul(users[msg.sender][poolId].lpStaked, DECIMAL).sub(users[msg.sender][poolId].rewardDebt); return (block.number, claimable, accTokenPerShare, users[msg.sender][poolId].lpStaked, users[msg.sender][poolId].rewardDebt); } function _updateAccTokenPerShare(uint poolId) internal { uint result = getAccTokenInfo(poolId); pools[poolId].accTokenPerShare = pools[poolId].accTokenPerShare.add(result); pools[poolId].accLastBlockNo = block.number; } function _getRewardAmount(uint poolId) view internal returns (uint) { if (pools[poolId].accLpStaked <= 0) { return (0); } uint user_staked = users[msg.sender][poolId].lpStaked; uint user_debt = users[msg.sender][poolId].rewardDebt; uint claimable = pools[poolId].accTokenPerShare.mul(user_staked, DECIMAL).sub(user_debt); return (claimable); } fallback() external payable { } } interface IMint { function farmMint(address _address, uint amount) external; }
pragma solidity ^0.6.12; // ---------------------------------------------------------------------------- // Safe maths // ---------------------------------------------------------------------------- library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a, 'SafeMath:INVALID_ADD'); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a, 'SafeMath:OVERFLOW_SUB'); c = a - b; } function mul(uint a, uint b, uint decimal) internal pure returns (uint) { uint dc = 10**decimal; uint c0 = a * b; require(a == 0 || c0 / a == b, "SafeMath: multiple overflow"); uint c1 = c0 + (dc / 2); require(c1 >= c0, "SafeMath: multiple overflow"); uint c2 = c1 / dc; return c2; } function div(uint256 a, uint256 b, uint decimal) internal pure returns (uint256) { require(b != 0, "SafeMath: division by zero"); uint dc = 10**decimal; uint c0 = a * dc; require(a == 0 || c0 / a == dc, "SafeMath: division internal"); uint c1 = c0 + (b / 2); require(c1 >= c0, "SafeMath: division internal"); uint c2 = c1 / b; return c2; } }
pragma solidity ^0.6.12; // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false library TransferHelper { function safeApprove( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeApprove: approve failed' ); } function safeTransfer( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeTransfer: transfer failed' ); } function safeTransferFrom( address token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::transferFrom: transferFrom failed' ); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, 'TransferHelper::safeTransferETH: ETH transfer failed'); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tube","type":"address"},{"internalType":"address","name":"_devaddr","type":"address"},{"internalType":"address","name":"_lotaddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimable","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"lpTokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardPerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"CreatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"old_owner","type":"address"},{"indexed":false,"internalType":"address","name":"new_owner","type":"address"}],"name":"TransferCompany","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferDev","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferJackpotReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferLottery","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"UpdateAccessPermission","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"farmer","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dev","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lot","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"staking","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"jackpot","type":"uint256"}],"name":"UpdateAllocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dfstakeaddr","type":"address"},{"indexed":false,"internalType":"address","name":"dfjackpotaddr","type":"address"}],"name":"UpdateDefarmAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"UpdateDefarmPermission","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"devaddr","type":"address"}],"name":"UpdateDevAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"lotaddr","type":"address"}],"name":"UpdateLotAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardPerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"multiplier","type":"uint256"},{"indexed":false,"internalType":"bool","name":"locked","type":"bool"}],"name":"UpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"finished","type":"bool"}],"name":"UpdatePoolFinish","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"UpdateTreasury","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DEV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DFJACKPOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DFSTAKE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FARMER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOTTERY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"access_permission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lpTokenAddress","type":"address"},{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"},{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"createPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"defarm_permission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devaddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dfjackpotaddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dfstakeaddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyCollectEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyCollectToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"getAccTokenInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes32","name":"category","type":"bytes32"}],"name":"getExMintable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getJackpotReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpTokenAddress","type":"address"}],"name":"getPidByLpToken","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"getUserReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotaddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"address","name":"lpTokenAddress","type":"address"},{"internalType":"uint256","name":"rewardPerBlock","type":"uint256"},{"internalType":"uint256","name":"lastDevBlockNo","type":"uint256"},{"internalType":"uint256","name":"lastLotBlockNo","type":"uint256"},{"internalType":"uint256","name":"lastStakeBlockNo","type":"uint256"},{"internalType":"uint256","name":"lastJackpotBlockNo","type":"uint256"},{"internalType":"uint256","name":"accLpStaked","type":"uint256"},{"internalType":"uint256","name":"accLastBlockNo","type":"uint256"},{"internalType":"uint256","name":"multiplier","type":"uint256"},{"internalType":"uint256","name":"accTokenPerShare","type":"uint256"},{"internalType":"bool","name":"locked","type":"bool"},{"internalType":"bool","name":"finished","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_owner","type":"address"}],"name":"transferCompany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"transferDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferJackpotReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"transferLottery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"transferStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tube","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"updateAccessPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_farmer","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_lot","type":"uint256"},{"internalType":"uint256","name":"_dfstake","type":"uint256"},{"internalType":"uint256","name":"_dfjackpot","type":"uint256"}],"name":"updateAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dfstakeaddr","type":"address"},{"internalType":"address","name":"_dfjackpotaddr","type":"address"}],"name":"updateDefarmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"updateDefarmPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateDevAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateLotAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"},{"internalType":"uint256","name":"_multiplier","type":"uint256"},{"internalType":"bool","name":"_locked","type":"bool"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"_finished","type":"bool"}],"name":"updatePoolFinish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"users","outputs":[{"internalType":"uint256","name":"lpStaked","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"lastClaimBlock","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526706f05b59d3b20000600d5567016345785d8a0000600e55670214e8348c4f0000600f556658d15e1762800060105567031f5c4ed276800060115534801561004b57600080fd5b50604051612e64380380612e648339818101604052606081101561006e57600080fd5b50805160208083015160409384015160058054336001600160a01b031991821681179092556006805482166001600160a01b03978816179055600780548216948716949094179093556008805490931694909116939093179055600091825260038152828220805460ff19908116600190811790925560049092529282208054909116909217909155612d5d90819061010790396000f3fe6080604052600436106102465760003560e01c80638928d3d811610139578063c1eb5ddd116100b6578063d3b321d01161007a578063d3b321d014610949578063d49e77cd1461095e578063e749768414610973578063ea80360014610988578063f7431352146109b2578063faaee0a7146109e557610246565b8063c1eb5ddd1461081e578063c274b88714610833578063c349026314610866578063d1eeaf3f14610896578063d23bbf91146108c657610246565b80639c5eb68a116100fd5780639c5eb68a146106ac5780639fb08cb7146106de578063ac4afa3814610733578063b039ddf6146107ca578063b642b2481461080957610246565b80638928d3d8146106075780638bcd30161461063a5780638da5cb5b1461064f5780639291d5631461066457806398f9c31e1461069757610246565b806359701ec5116101c757806367c7c9451161018b57806367c7c9451461052a57806369e22ca91461055457806370b7e65e1461058f5780637b0472f0146105a45780637f51bb1f146105d457610246565b806359701ec51461043c5780635a80258414610477578063617ccf0b146104b957806361d027b3146104ce5780636408d20a146104e357610246565b8063376582f71161020e578063376582f71461033e5780633b4ac10b1461037c5780633f410d00146103a6578063494ac14c146103d057806354a02f9e146103e557610246565b8063081e3eda146102485780630ef7a93a1461026f578063202bbc41146102a057806323472bf0146102db57806325f11e8214610305575b005b34801561025457600080fd5b5061025d6109fa565b60408051918252519081900360200190f35b34801561027b57600080fd5b50610284610a00565b604080516001600160a01b039092168252519081900360200190f35b3480156102ac57600080fd5b50610246600480360360408110156102c357600080fd5b506001600160a01b0381351690602001351515610a0f565b3480156102e757600080fd5b50610246600480360360208110156102fe57600080fd5b5035610abe565b34801561031157600080fd5b506102466004803603604081101561032857600080fd5b506001600160a01b038135169060200135610cc8565b34801561034a57600080fd5b506102466004803603608081101561036157600080fd5b50803590602081013590604081013590606001351515610d2f565b34801561038857600080fd5b506102466004803603602081101561039f57600080fd5b5035610e03565b3480156103b257600080fd5b5061025d600480360360208110156103c957600080fd5b5035610fd7565b3480156103dc57600080fd5b5061025d611072565b3480156103f157600080fd5b5061041e6004803603604081101561040857600080fd5b506001600160a01b038135169060200135611078565b60408051938452602084019290925282820152519081900360600190f35b34801561044857600080fd5b506102466004803603604081101561045f57600080fd5b506001600160a01b03813581169160200135166110a0565b34801561048357600080fd5b50610246600480360360a081101561049a57600080fd5b5080359060208101359060408101359060608101359060800135611163565b3480156104c557600080fd5b5061025d61128b565b3480156104da57600080fd5b50610284611291565b3480156104ef57600080fd5b506105166004803603602081101561050657600080fd5b50356001600160a01b03166112a0565b604080519115158252519081900360200190f35b34801561053657600080fd5b506102466004803603602081101561054d57600080fd5b50356112b5565b34801561056057600080fd5b506102466004803603604081101561057757600080fd5b506001600160a01b0381351690602001351515611316565b34801561059b57600080fd5b5061025d6113c5565b3480156105b057600080fd5b50610246600480360360408110156105c757600080fd5b5080359060200135611422565b3480156105e057600080fd5b50610246600480360360208110156105f757600080fd5b50356001600160a01b0316611650565b34801561061357600080fd5b506102466004803603602081101561062a57600080fd5b50356001600160a01b03166116f6565b34801561064657600080fd5b5061025d6117a2565b34801561065b57600080fd5b506102846117a8565b34801561067057600080fd5b506102466004803603602081101561068757600080fd5b50356001600160a01b03166117b7565b3480156106a357600080fd5b5061025d611863565b3480156106b857600080fd5b50610246600480360360408110156106cf57600080fd5b50803590602001351515611a31565b3480156106ea57600080fd5b506107086004803603602081101561070157600080fd5b5035611ae7565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561073f57600080fd5b5061075d6004803603602081101561075657600080fd5b5035611b8c565b604080516001600160a01b03909d168d5260208d019b909b528b8b019990995260608b019790975260808a019590955260a089019390935260c088019190915260e08701526101008601526101208501521515610140840152151561016083015251908190036101800190f35b3480156107d657600080fd5b50610246600480360360608110156107ed57600080fd5b506001600160a01b038135169060208101359060400135611bfb565b34801561081557600080fd5b50610284611db1565b34801561082a57600080fd5b5061025d611dc0565b34801561083f57600080fd5b506105166004803603602081101561085657600080fd5b50356001600160a01b0316611dc6565b34801561087257600080fd5b506102466004803603604081101561088957600080fd5b5080359060200135611ddb565b3480156108a257600080fd5b5061025d600480360360408110156108b957600080fd5b5080359060200135612093565b3480156108d257600080fd5b506108f9600480360360208110156108e957600080fd5b50356001600160a01b0316612207565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561093557818101518382015260200161091d565b505050509050019250505060405180910390f35b34801561095557600080fd5b50610284612273565b34801561096a57600080fd5b50610284612282565b34801561097f57600080fd5b5061025d612291565b34801561099457600080fd5b50610246600480360360208110156109ab57600080fd5b5035612297565b3480156109be57600080fd5b50610246600480360360208110156109d557600080fd5b50356001600160a01b03166124a5565b3480156109f157600080fd5b5061028461255a565b600c5481565b6009546001600160a01b031681565b6005546001600160a01b03163314610a5a576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915582519384529083015280517f7ebd2f3c8f6a6b9fb2e22ab293fa70e3399dc94c9fa71acfd3d2ec9899ecf1ed9281900390910190a15050565b3360009081526004602052604090205460ff16610b10576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6000610b3c827fb1e380c01db319c0153ea3bb4fbd0ab6639cc088e3bf8cd5319b128f33a2f9e8612093565b905060008111610b88576040805162461bcd60e51b81526020600482015260126024820152715452414e534645525f4445565f454d50545960701b604482015290519081900360640190fd5b6007546001600160a01b0316610bd9576040805162461bcd60e51b8152602060048201526011602482015270454d50545920444556204144445245535360781b604482015290519081900360640190fd5b600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b5050600654600754610c6193506001600160a01b0391821692501683612569565b600082815260208181526040918290204360029091015560075482518581526001600160a01b039091169181019190915280820183905290517f422da8464943a7cc5db4a515a35fbc4f536b2ee043055306c91a65dcd5f1733a9181900360600190a15050565b6005546001600160a01b03163314610d13576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b600554610d2b9083906001600160a01b031683612569565b5050565b3360009081526004602052604090205460ff16610d81576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b610d8a846126bd565b600084815260208181526040918290206001810186905560088101859055600a01805484151560ff1990911681179091558251878152918201869052818301859052606082015290517f47f18596722a27a7961a013d8c7af82482bb7051c3492fd45b4901d8964f75619181900360800190a150505050565b3360009081526003602052604090205460ff16610e5e576040805162461bcd60e51b81526020600482015260146024820152732727902222a320a926902822a926a4a9a9a4a7a760611b604482015290519081900360640190fd5b6000610e8a827f080909c18c958ce5a2d36481697824e477319323d03154ceba3b78f28a61887b612093565b6009549091506001600160a01b0316610ee2576040805162461bcd60e51b8152602060048201526015602482015274454d5054592044465354414b45204144445245535360581b604482015290519081900360640190fd5b8015610d2b57600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b5050600654600954610f7093506001600160a01b0391821692501683612569565b600082815260208181526040918290204360049091015560095482518581526001600160a01b039091169181019190915280820183905290517f33dd7763d76540919835c5df5e1e89e9891ff7ec5c51af0f94a3f2143269f8789181900360600190a15050565b600081815260208190526040812060060154610ff55750600061106d565b60008281526020819052604081206001810154600882015460068301546007909301549193909291611028904390612708565b600d54670de0b6b3a764000090910291506000906110579060126110508582828b8b8361275d565b919061275d565b905061106581846012612840565b955050505050505b919050565b600f5481565b6002602081815260009384526040808520909152918352912080546001820154919092015483565b3360009081526004602052604090205460ff166110f2576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600980546001600160a01b038085166001600160a01b03199283161792839055600a8054858316931692909217918290556040805193821684529116602083015280517f2c7c09ee51fb50eb21730f9e9dbfdf5d63f4be4ba69744e58f4c7d0d645714179281900390910190a15050565b3360009081526004602052604090205460ff166111b5576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6111cd816111c7848187818b8b612968565b90612968565b670de0b6b3a76400001461121d576040805162461bcd60e51b815260206004820152601260248201527134b73b30b634b21030b63637b1b0ba34b7b760711b604482015290519081900360640190fd5b600d859055600e849055600f839055601082905560118190556040805186815260208101869052808201859052606081018490526080810183905290517f420e39e9c2051269e178abf9f51a95f233bd4b2e85ef0ecd821865962a30a9429181900360a00190a15050505050565b600d5481565b600b546001600160a01b031681565b60046020526000908152604090205460ff1681565b6005546001600160a01b03163314611300576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b6005546001600160a01b0316610d2b81836129b7565b6005546001600160a01b03163314611361576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915582519384529083015280517f309657c1babf43f318005b1edc59822e4c5713c3a9cf6bac9f85b07b360330cd9281900390910190a15050565b600080805b600c546113d8906001612708565b811161141c5761141261140b827ff45223fc822e0a02a042bb2eec36a76af2a028cc55539c3a40ab438d1089e1c0612093565b8390612968565b91506001016113ca565b50905090565b6000828152602081905260409020546001600160a01b0316611482576040805162461bcd60e51b815260206004820152601460248201527314d51052d157d413d3d317d393d517d1561254d560621b604482015290519081900360640190fd5b6000828152602081905260409020600a015460ff16156114dd576040805162461bcd60e51b815260206004820152601160248201527014d51052d157d413d3d317d313d0d2d151607a1b604482015290519081900360640190fd5b6000828152602081905260409020600a0154610100900460ff161561153f576040805162461bcd60e51b815260206004820152601360248201527214d51052d157d413d3d317d192539254d21151606a1b604482015290519081900360640190fd5b61154a826000611ddb565b60008281526020819052604090205461156e906001600160a01b0316333084612aaf565b60008281526020819052604090206006015461158a9082612968565b6000838152602081815260408083206006019390935533825260028152828220858352905220546115bb9082612968565b3360009081526002602081815260408084208785528252808420858155439301929092558290529020600901546115f391601261275d565b33600090815260026020908152604080832086845282529182902060010192909255805184815291820183905280517fc9ec05ea5037818736839e1365dc3d9a74a735c447af0697da66633b7a9d0fab9281900390910190a15050565b3360009081526004602052604090205460ff166116a2576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600b80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f54d231bb9d500b1923e4a1cb25e600f366a8368873d9af7c1c623814df19fc9181900360200190a150565b3360009081526004602052604090205460ff16611748576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f248a95ce438e13bf40987ec979f51269df3158547f00367969fde66034d7f6a0916020908290030190a150565b60115481565b6005546001600160a01b031681565b3360009081526004602052604090205460ff16611809576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f6b4941cf5d9e7b01c4e5c59a0cb86fae661180bdc0350a3df861cd15c796a2c5916020908290030190a150565b3360009081526003602052604081205460ff166118be576040805162461bcd60e51b81526020600482015260146024820152732727902222a320a926902822a926a4a9a9a4a7a760611b604482015290519081900360640190fd5b600a546001600160a01b031661191b576040805162461bcd60e51b815260206004820152601760248201527f454d5054592044464a41434b504f542041444452455353000000000000000000604482015290519081900360640190fd5b60006119256113c5565b905080156119fd57600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b5050600654600a546119b593506001600160a01b0391821692501683612569565b600a54604080516001600160a01b0390921682526020820183905280517fca0cf3424eaa5a1cbd74510cbf54bee9d0c263e572cad7cc0f775920c9d4a5d59281900390910190a15b60005b600c54611a0e906001612708565b811161141c57600081815260208190526040902043600590910155600101611a00565b3360009081526004602052604090205460ff16611a83576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b60008281526020818152604091829020600a01805461ff0019166101008515159081029190911790915582518581529182015281517fcd5c5d18479e24e3c787bcc4bc1ee478f42a441321c1def3449e3149bf4d0695929181900390910190a15050565b600080600080600080611af987610fd7565b600088815260208190526040902060090154909150611b19908290612968565b3360009081526002602090815260408083208b84529091528120600181015490549293509091611b579190611b51908590601261275d565b90612708565b3360009081526002602090815260408083209b83529a9052989098208054600190910154439a93985090965094509092505050565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a909a01546001600160a01b0390991699979896979596949593949293919290919060ff808216916101009004168c565b3360009081526004602052604090205460ff16611c4d576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6001600160a01b038316611ca8576040805162461bcd60e51b815260206004820152601960248201527f4352454154455f504f4f4c5f454d5054595f4144445245535300000000000000604482015290519081900360640190fd5b600c54604080516001600160a01b03861681526020810185905280820192909252517f77db383b85b26e0329a36642c94759c45a544a3b07ecdcb8a78b1407a8db23fb9181900360600190a1600c805460009081526020818152604080832080546001600160a01b0319166001600160a01b0389169081179091558454845281842060019081018890558554855282852060080187905585548552828520436007909101819055865486528386206002018190558654865283862060030181905586548652838620600401819055865486528386206005015590845280835290832084548154808401835591855292909320909201559054611da991612968565b600c55505050565b6008546001600160a01b031681565b600e5481565b60036020526000908152604090205460ff1681565b6000828152602081905260409020546001600160a01b0316611e3b576040805162461bcd60e51b815260206004820152601460248201527310d310525357d413d3d317d393d517d1561254d560621b604482015290519081900360640190fd5b6000828152602081905260409020600a015460ff1615611e96576040805162461bcd60e51b815260206004820152601160248201527010d310525357d413d3d317d313d0d2d151607a1b604482015290519081900360640190fd5b611e9f826126bd565b6000611eaa83612c0c565b90508015611f5557600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b5050600654611f3592506001600160a01b031690503383612569565b336000908152600260208181526040808420878552909152909120439101555b8115611fe657600083815260208190526040902054611f7e906001600160a01b03163384612569565b336000908152600260209081526040808320868452909152902054611fa39083612708565b3360009081526002602090815260408083208784528252808320939093558190522060060154611fd39083612708565b6000848152602081905260409020600601555b6000811180611ff55750600082115b1561203b57604080518481526020810184905280820183905290517fe630ca519fedafd2bd9bd35ad65e198e08398f47c88ca063c406740992bcd1a49181900360600190a15b336000908152600260209081526040808320868452825280832054918390529091206009015461206c91601261275d565b33600090815260026020908152604080832096835295905293909320600101929092555050565b600080807fb1e380c01db319c0153ea3bb4fbd0ab6639cc088e3bf8cd5319b128f33a2f9e88414156120db575050600083815260208190526040902060020154600e546121ae565b7f3a98da9f150131de466fba46b533a35c45bbffeed9f6c5943009e2888091b67c84141561211f575050600083815260208190526040902060030154600f546121ae565b7f080909c18c958ce5a2d36481697824e477319323d03154ceba3b78f28a61887b8414156121635750506000838152602081905260409020600401546010546121ae565b7ff45223fc822e0a02a042bb2eec36a76af2a028cc55539c3a40ab438d1089e1c08414156121a75750506000838152602081905260409020600501546011546121ae565b5060009050805b60006121ba4384612708565b60008781526020819052604090206008810154600190910154670de0b6b3a764000090920292506121fb91849160129161105091908390839088908361275d565b93505050505b92915050565b6001600160a01b03811660009081526001602090815260409182902080548351818402810184019094528084526060939283018282801561226757602002820191906000526020600020905b815481526020019060010190808311612253575b50505050509050919050565b600a546001600160a01b031681565b6007546001600160a01b031681565b60105481565b3360009081526004602052604090205460ff166122e9576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6000612315827f3a98da9f150131de466fba46b533a35c45bbffeed9f6c5943009e2888091b67c612093565b905060008111612361576040805162461bcd60e51b81526020600482015260126024820152715452414e534645525f4c4f545f454d50545960701b604482015290519081900360640190fd5b6008546001600160a01b03166123b6576040805162461bcd60e51b8152602060048201526015602482015274454d505459204c4f5454455259204144445245535360581b604482015290519081900360640190fd5b600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b15801561240957600080fd5b505af115801561241d573d6000803e3d6000fd5b505060065460085461243e93506001600160a01b0391821692501683612569565b600082815260208181526040918290204360039091015560085482518581526001600160a01b039091169181019190915280820183905290517f9b8d5730922bfb86721e679a872a7107684e4c847c2d640f423871318721daac9181900360600190a15050565b6005546001600160a01b031633146124f0576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b600554604080516001600160a01b039283168152918316602083015280517f1655804481e1842dc7a9487a44ff6373f0e8a83b9077a64c639d724d5ef038ff9281900390910190a1600580546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031681565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106125e65780518252601f1990920191602091820191016125c7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612648576040519150601f19603f3d011682016040523d82523d6000602084013e61264d565b606091505b509150915081801561267b57508051158061267b575080806020019051602081101561267857600080fd5b50515b6126b65760405162461bcd60e51b815260040180806020018281038252602d815260200180612cdb602d913960400191505060405180910390fd5b5050505050565b60006126c882610fd7565b6000838152602081905260409020600901549091506126e79082612968565b60009283526020839052604090922060098101929092555043600790910155565b600082821115612757576040805162461bcd60e51b815260206004820152601560248201527429b0b332a6b0ba341d27ab22a9232627abafa9aaa160591b604482015290519081900360640190fd5b50900390565b6000600a82900a84840285158061277c57508486828161277957fe5b04145b6127cd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206d756c7469706c65206f766572666c6f770000000000604482015290519081900360640190fd5b60028204810181811015612828576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206d756c7469706c65206f766572666c6f770000000000604482015290519081900360640190fd5b600083828161283357fe5b0498975050505050505050565b600082612894576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600a82900a8481028515806128b15750818682816128ae57fe5b04145b612902576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206469766973696f6e20696e7465726e616c0000000000604482015290519081900360640190fd5b6002850481018181101561295d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206469766973696f6e20696e7465726e616c0000000000604482015290519081900360640190fd5b600086828161283357fe5b81810182811015612201576040805162461bcd60e51b815260206004820152601460248201527314d8599953585d1a0e9253959053125117d0511160621b604482015290519081900360640190fd5b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b60208310612a035780518252601f1990920191602091820191016129e4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612a65576040519150601f19603f3d011682016040523d82523d6000602084013e612a6a565b606091505b5050905080612aaa5760405162461bcd60e51b8152600401808060200182810382526034815260200180612ca76034913960400191505060405180910390fd5b505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b60208310612b345780518252601f199092019160209182019101612b15565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612b96576040519150601f19603f3d011682016040523d82523d6000602084013e612b9b565b606091505b5091509150818015612bc9575080511580612bc95750808060200190516020811015612bc657600080fd5b50515b612c045760405162461bcd60e51b8152600401808060200182810382526031815260200180612c766031913960400191505060405180910390fd5b505050505050565b600081815260208190526040812060060154612c2a5750600061106d565b336000908152600260209081526040808320858452825280832080546001909101549284905290832060090154909290612c6c908390611b519086601261275d565b9594505050505056fe5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c65645472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c65644e4f20414343455353205045524d495353494f4e000000000000000000000000a264697066735822122009f214f8a36b86e890319c450c8a74264a7ec967eeb8dc67111e6c7abcf3328964736f6c634300060c0033000000000000000000000000da86006036540822e0cd2861dbd2fd7ff9caa0e8000000000000000000000000638187c88f341488e9edff83750ad3a34c7ca6360000000000000000000000006ca45993fd7271bc44030bafc4ff1a575a03e4f2
Deployed Bytecode
0x6080604052600436106102465760003560e01c80638928d3d811610139578063c1eb5ddd116100b6578063d3b321d01161007a578063d3b321d014610949578063d49e77cd1461095e578063e749768414610973578063ea80360014610988578063f7431352146109b2578063faaee0a7146109e557610246565b8063c1eb5ddd1461081e578063c274b88714610833578063c349026314610866578063d1eeaf3f14610896578063d23bbf91146108c657610246565b80639c5eb68a116100fd5780639c5eb68a146106ac5780639fb08cb7146106de578063ac4afa3814610733578063b039ddf6146107ca578063b642b2481461080957610246565b80638928d3d8146106075780638bcd30161461063a5780638da5cb5b1461064f5780639291d5631461066457806398f9c31e1461069757610246565b806359701ec5116101c757806367c7c9451161018b57806367c7c9451461052a57806369e22ca91461055457806370b7e65e1461058f5780637b0472f0146105a45780637f51bb1f146105d457610246565b806359701ec51461043c5780635a80258414610477578063617ccf0b146104b957806361d027b3146104ce5780636408d20a146104e357610246565b8063376582f71161020e578063376582f71461033e5780633b4ac10b1461037c5780633f410d00146103a6578063494ac14c146103d057806354a02f9e146103e557610246565b8063081e3eda146102485780630ef7a93a1461026f578063202bbc41146102a057806323472bf0146102db57806325f11e8214610305575b005b34801561025457600080fd5b5061025d6109fa565b60408051918252519081900360200190f35b34801561027b57600080fd5b50610284610a00565b604080516001600160a01b039092168252519081900360200190f35b3480156102ac57600080fd5b50610246600480360360408110156102c357600080fd5b506001600160a01b0381351690602001351515610a0f565b3480156102e757600080fd5b50610246600480360360208110156102fe57600080fd5b5035610abe565b34801561031157600080fd5b506102466004803603604081101561032857600080fd5b506001600160a01b038135169060200135610cc8565b34801561034a57600080fd5b506102466004803603608081101561036157600080fd5b50803590602081013590604081013590606001351515610d2f565b34801561038857600080fd5b506102466004803603602081101561039f57600080fd5b5035610e03565b3480156103b257600080fd5b5061025d600480360360208110156103c957600080fd5b5035610fd7565b3480156103dc57600080fd5b5061025d611072565b3480156103f157600080fd5b5061041e6004803603604081101561040857600080fd5b506001600160a01b038135169060200135611078565b60408051938452602084019290925282820152519081900360600190f35b34801561044857600080fd5b506102466004803603604081101561045f57600080fd5b506001600160a01b03813581169160200135166110a0565b34801561048357600080fd5b50610246600480360360a081101561049a57600080fd5b5080359060208101359060408101359060608101359060800135611163565b3480156104c557600080fd5b5061025d61128b565b3480156104da57600080fd5b50610284611291565b3480156104ef57600080fd5b506105166004803603602081101561050657600080fd5b50356001600160a01b03166112a0565b604080519115158252519081900360200190f35b34801561053657600080fd5b506102466004803603602081101561054d57600080fd5b50356112b5565b34801561056057600080fd5b506102466004803603604081101561057757600080fd5b506001600160a01b0381351690602001351515611316565b34801561059b57600080fd5b5061025d6113c5565b3480156105b057600080fd5b50610246600480360360408110156105c757600080fd5b5080359060200135611422565b3480156105e057600080fd5b50610246600480360360208110156105f757600080fd5b50356001600160a01b0316611650565b34801561061357600080fd5b506102466004803603602081101561062a57600080fd5b50356001600160a01b03166116f6565b34801561064657600080fd5b5061025d6117a2565b34801561065b57600080fd5b506102846117a8565b34801561067057600080fd5b506102466004803603602081101561068757600080fd5b50356001600160a01b03166117b7565b3480156106a357600080fd5b5061025d611863565b3480156106b857600080fd5b50610246600480360360408110156106cf57600080fd5b50803590602001351515611a31565b3480156106ea57600080fd5b506107086004803603602081101561070157600080fd5b5035611ae7565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561073f57600080fd5b5061075d6004803603602081101561075657600080fd5b5035611b8c565b604080516001600160a01b03909d168d5260208d019b909b528b8b019990995260608b019790975260808a019590955260a089019390935260c088019190915260e08701526101008601526101208501521515610140840152151561016083015251908190036101800190f35b3480156107d657600080fd5b50610246600480360360608110156107ed57600080fd5b506001600160a01b038135169060208101359060400135611bfb565b34801561081557600080fd5b50610284611db1565b34801561082a57600080fd5b5061025d611dc0565b34801561083f57600080fd5b506105166004803603602081101561085657600080fd5b50356001600160a01b0316611dc6565b34801561087257600080fd5b506102466004803603604081101561088957600080fd5b5080359060200135611ddb565b3480156108a257600080fd5b5061025d600480360360408110156108b957600080fd5b5080359060200135612093565b3480156108d257600080fd5b506108f9600480360360208110156108e957600080fd5b50356001600160a01b0316612207565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561093557818101518382015260200161091d565b505050509050019250505060405180910390f35b34801561095557600080fd5b50610284612273565b34801561096a57600080fd5b50610284612282565b34801561097f57600080fd5b5061025d612291565b34801561099457600080fd5b50610246600480360360208110156109ab57600080fd5b5035612297565b3480156109be57600080fd5b50610246600480360360208110156109d557600080fd5b50356001600160a01b03166124a5565b3480156109f157600080fd5b5061028461255a565b600c5481565b6009546001600160a01b031681565b6005546001600160a01b03163314610a5a576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915582519384529083015280517f7ebd2f3c8f6a6b9fb2e22ab293fa70e3399dc94c9fa71acfd3d2ec9899ecf1ed9281900390910190a15050565b3360009081526004602052604090205460ff16610b10576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6000610b3c827fb1e380c01db319c0153ea3bb4fbd0ab6639cc088e3bf8cd5319b128f33a2f9e8612093565b905060008111610b88576040805162461bcd60e51b81526020600482015260126024820152715452414e534645525f4445565f454d50545960701b604482015290519081900360640190fd5b6007546001600160a01b0316610bd9576040805162461bcd60e51b8152602060048201526011602482015270454d50545920444556204144445245535360781b604482015290519081900360640190fd5b600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b158015610c2c57600080fd5b505af1158015610c40573d6000803e3d6000fd5b5050600654600754610c6193506001600160a01b0391821692501683612569565b600082815260208181526040918290204360029091015560075482518581526001600160a01b039091169181019190915280820183905290517f422da8464943a7cc5db4a515a35fbc4f536b2ee043055306c91a65dcd5f1733a9181900360600190a15050565b6005546001600160a01b03163314610d13576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b600554610d2b9083906001600160a01b031683612569565b5050565b3360009081526004602052604090205460ff16610d81576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b610d8a846126bd565b600084815260208181526040918290206001810186905560088101859055600a01805484151560ff1990911681179091558251878152918201869052818301859052606082015290517f47f18596722a27a7961a013d8c7af82482bb7051c3492fd45b4901d8964f75619181900360800190a150505050565b3360009081526003602052604090205460ff16610e5e576040805162461bcd60e51b81526020600482015260146024820152732727902222a320a926902822a926a4a9a9a4a7a760611b604482015290519081900360640190fd5b6000610e8a827f080909c18c958ce5a2d36481697824e477319323d03154ceba3b78f28a61887b612093565b6009549091506001600160a01b0316610ee2576040805162461bcd60e51b8152602060048201526015602482015274454d5054592044465354414b45204144445245535360581b604482015290519081900360640190fd5b8015610d2b57600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b5050600654600954610f7093506001600160a01b0391821692501683612569565b600082815260208181526040918290204360049091015560095482518581526001600160a01b039091169181019190915280820183905290517f33dd7763d76540919835c5df5e1e89e9891ff7ec5c51af0f94a3f2143269f8789181900360600190a15050565b600081815260208190526040812060060154610ff55750600061106d565b60008281526020819052604081206001810154600882015460068301546007909301549193909291611028904390612708565b600d54670de0b6b3a764000090910291506000906110579060126110508582828b8b8361275d565b919061275d565b905061106581846012612840565b955050505050505b919050565b600f5481565b6002602081815260009384526040808520909152918352912080546001820154919092015483565b3360009081526004602052604090205460ff166110f2576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600980546001600160a01b038085166001600160a01b03199283161792839055600a8054858316931692909217918290556040805193821684529116602083015280517f2c7c09ee51fb50eb21730f9e9dbfdf5d63f4be4ba69744e58f4c7d0d645714179281900390910190a15050565b3360009081526004602052604090205460ff166111b5576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6111cd816111c7848187818b8b612968565b90612968565b670de0b6b3a76400001461121d576040805162461bcd60e51b815260206004820152601260248201527134b73b30b634b21030b63637b1b0ba34b7b760711b604482015290519081900360640190fd5b600d859055600e849055600f839055601082905560118190556040805186815260208101869052808201859052606081018490526080810183905290517f420e39e9c2051269e178abf9f51a95f233bd4b2e85ef0ecd821865962a30a9429181900360a00190a15050505050565b600d5481565b600b546001600160a01b031681565b60046020526000908152604090205460ff1681565b6005546001600160a01b03163314611300576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b6005546001600160a01b0316610d2b81836129b7565b6005546001600160a01b03163314611361576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915582519384529083015280517f309657c1babf43f318005b1edc59822e4c5713c3a9cf6bac9f85b07b360330cd9281900390910190a15050565b600080805b600c546113d8906001612708565b811161141c5761141261140b827ff45223fc822e0a02a042bb2eec36a76af2a028cc55539c3a40ab438d1089e1c0612093565b8390612968565b91506001016113ca565b50905090565b6000828152602081905260409020546001600160a01b0316611482576040805162461bcd60e51b815260206004820152601460248201527314d51052d157d413d3d317d393d517d1561254d560621b604482015290519081900360640190fd5b6000828152602081905260409020600a015460ff16156114dd576040805162461bcd60e51b815260206004820152601160248201527014d51052d157d413d3d317d313d0d2d151607a1b604482015290519081900360640190fd5b6000828152602081905260409020600a0154610100900460ff161561153f576040805162461bcd60e51b815260206004820152601360248201527214d51052d157d413d3d317d192539254d21151606a1b604482015290519081900360640190fd5b61154a826000611ddb565b60008281526020819052604090205461156e906001600160a01b0316333084612aaf565b60008281526020819052604090206006015461158a9082612968565b6000838152602081815260408083206006019390935533825260028152828220858352905220546115bb9082612968565b3360009081526002602081815260408084208785528252808420858155439301929092558290529020600901546115f391601261275d565b33600090815260026020908152604080832086845282529182902060010192909255805184815291820183905280517fc9ec05ea5037818736839e1365dc3d9a74a735c447af0697da66633b7a9d0fab9281900390910190a15050565b3360009081526004602052604090205460ff166116a2576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600b80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f54d231bb9d500b1923e4a1cb25e600f366a8368873d9af7c1c623814df19fc9181900360200190a150565b3360009081526004602052604090205460ff16611748576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f248a95ce438e13bf40987ec979f51269df3158547f00367969fde66034d7f6a0916020908290030190a150565b60115481565b6005546001600160a01b031681565b3360009081526004602052604090205460ff16611809576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f6b4941cf5d9e7b01c4e5c59a0cb86fae661180bdc0350a3df861cd15c796a2c5916020908290030190a150565b3360009081526003602052604081205460ff166118be576040805162461bcd60e51b81526020600482015260146024820152732727902222a320a926902822a926a4a9a9a4a7a760611b604482015290519081900360640190fd5b600a546001600160a01b031661191b576040805162461bcd60e51b815260206004820152601760248201527f454d5054592044464a41434b504f542041444452455353000000000000000000604482015290519081900360640190fd5b60006119256113c5565b905080156119fd57600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b5050600654600a546119b593506001600160a01b0391821692501683612569565b600a54604080516001600160a01b0390921682526020820183905280517fca0cf3424eaa5a1cbd74510cbf54bee9d0c263e572cad7cc0f775920c9d4a5d59281900390910190a15b60005b600c54611a0e906001612708565b811161141c57600081815260208190526040902043600590910155600101611a00565b3360009081526004602052604090205460ff16611a83576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b60008281526020818152604091829020600a01805461ff0019166101008515159081029190911790915582518581529182015281517fcd5c5d18479e24e3c787bcc4bc1ee478f42a441321c1def3449e3149bf4d0695929181900390910190a15050565b600080600080600080611af987610fd7565b600088815260208190526040902060090154909150611b19908290612968565b3360009081526002602090815260408083208b84529091528120600181015490549293509091611b579190611b51908590601261275d565b90612708565b3360009081526002602090815260408083209b83529a9052989098208054600190910154439a93985090965094509092505050565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a909a01546001600160a01b0390991699979896979596949593949293919290919060ff808216916101009004168c565b3360009081526004602052604090205460ff16611c4d576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6001600160a01b038316611ca8576040805162461bcd60e51b815260206004820152601960248201527f4352454154455f504f4f4c5f454d5054595f4144445245535300000000000000604482015290519081900360640190fd5b600c54604080516001600160a01b03861681526020810185905280820192909252517f77db383b85b26e0329a36642c94759c45a544a3b07ecdcb8a78b1407a8db23fb9181900360600190a1600c805460009081526020818152604080832080546001600160a01b0319166001600160a01b0389169081179091558454845281842060019081018890558554855282852060080187905585548552828520436007909101819055865486528386206002018190558654865283862060030181905586548652838620600401819055865486528386206005015590845280835290832084548154808401835591855292909320909201559054611da991612968565b600c55505050565b6008546001600160a01b031681565b600e5481565b60036020526000908152604090205460ff1681565b6000828152602081905260409020546001600160a01b0316611e3b576040805162461bcd60e51b815260206004820152601460248201527310d310525357d413d3d317d393d517d1561254d560621b604482015290519081900360640190fd5b6000828152602081905260409020600a015460ff1615611e96576040805162461bcd60e51b815260206004820152601160248201527010d310525357d413d3d317d313d0d2d151607a1b604482015290519081900360640190fd5b611e9f826126bd565b6000611eaa83612c0c565b90508015611f5557600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b5050600654611f3592506001600160a01b031690503383612569565b336000908152600260208181526040808420878552909152909120439101555b8115611fe657600083815260208190526040902054611f7e906001600160a01b03163384612569565b336000908152600260209081526040808320868452909152902054611fa39083612708565b3360009081526002602090815260408083208784528252808320939093558190522060060154611fd39083612708565b6000848152602081905260409020600601555b6000811180611ff55750600082115b1561203b57604080518481526020810184905280820183905290517fe630ca519fedafd2bd9bd35ad65e198e08398f47c88ca063c406740992bcd1a49181900360600190a15b336000908152600260209081526040808320868452825280832054918390529091206009015461206c91601261275d565b33600090815260026020908152604080832096835295905293909320600101929092555050565b600080807fb1e380c01db319c0153ea3bb4fbd0ab6639cc088e3bf8cd5319b128f33a2f9e88414156120db575050600083815260208190526040902060020154600e546121ae565b7f3a98da9f150131de466fba46b533a35c45bbffeed9f6c5943009e2888091b67c84141561211f575050600083815260208190526040902060030154600f546121ae565b7f080909c18c958ce5a2d36481697824e477319323d03154ceba3b78f28a61887b8414156121635750506000838152602081905260409020600401546010546121ae565b7ff45223fc822e0a02a042bb2eec36a76af2a028cc55539c3a40ab438d1089e1c08414156121a75750506000838152602081905260409020600501546011546121ae565b5060009050805b60006121ba4384612708565b60008781526020819052604090206008810154600190910154670de0b6b3a764000090920292506121fb91849160129161105091908390839088908361275d565b93505050505b92915050565b6001600160a01b03811660009081526001602090815260409182902080548351818402810184019094528084526060939283018282801561226757602002820191906000526020600020905b815481526020019060010190808311612253575b50505050509050919050565b600a546001600160a01b031681565b6007546001600160a01b031681565b60105481565b3360009081526004602052604090205460ff166122e9576040805162461bcd60e51b81526020600482015260146024820152600080516020612d08833981519152604482015290519081900360640190fd5b6000612315827f3a98da9f150131de466fba46b533a35c45bbffeed9f6c5943009e2888091b67c612093565b905060008111612361576040805162461bcd60e51b81526020600482015260126024820152715452414e534645525f4c4f545f454d50545960701b604482015290519081900360640190fd5b6008546001600160a01b03166123b6576040805162461bcd60e51b8152602060048201526015602482015274454d505459204c4f5454455259204144445245535360581b604482015290519081900360640190fd5b600b54604080516355432fb760e01b81523060048201526024810184905290516001600160a01b03909216916355432fb79160448082019260009290919082900301818387803b15801561240957600080fd5b505af115801561241d573d6000803e3d6000fd5b505060065460085461243e93506001600160a01b0391821692501683612569565b600082815260208181526040918290204360039091015560085482518581526001600160a01b039091169181019190915280820183905290517f9b8d5730922bfb86721e679a872a7107684e4c847c2d640f423871318721daac9181900360600190a15050565b6005546001600160a01b031633146124f0576040805162461bcd60e51b81526020600482015260096024820152682727aa1027aba722a960b91b604482015290519081900360640190fd5b600554604080516001600160a01b039283168152918316602083015280517f1655804481e1842dc7a9487a44ff6373f0e8a83b9077a64c639d724d5ef038ff9281900390910190a1600580546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031681565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106125e65780518252601f1990920191602091820191016125c7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612648576040519150601f19603f3d011682016040523d82523d6000602084013e61264d565b606091505b509150915081801561267b57508051158061267b575080806020019051602081101561267857600080fd5b50515b6126b65760405162461bcd60e51b815260040180806020018281038252602d815260200180612cdb602d913960400191505060405180910390fd5b5050505050565b60006126c882610fd7565b6000838152602081905260409020600901549091506126e79082612968565b60009283526020839052604090922060098101929092555043600790910155565b600082821115612757576040805162461bcd60e51b815260206004820152601560248201527429b0b332a6b0ba341d27ab22a9232627abafa9aaa160591b604482015290519081900360640190fd5b50900390565b6000600a82900a84840285158061277c57508486828161277957fe5b04145b6127cd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206d756c7469706c65206f766572666c6f770000000000604482015290519081900360640190fd5b60028204810181811015612828576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206d756c7469706c65206f766572666c6f770000000000604482015290519081900360640190fd5b600083828161283357fe5b0498975050505050505050565b600082612894576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600a82900a8481028515806128b15750818682816128ae57fe5b04145b612902576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206469766973696f6e20696e7465726e616c0000000000604482015290519081900360640190fd5b6002850481018181101561295d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206469766973696f6e20696e7465726e616c0000000000604482015290519081900360640190fd5b600086828161283357fe5b81810182811015612201576040805162461bcd60e51b815260206004820152601460248201527314d8599953585d1a0e9253959053125117d0511160621b604482015290519081900360640190fd5b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b60208310612a035780518252601f1990920191602091820191016129e4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612a65576040519150601f19603f3d011682016040523d82523d6000602084013e612a6a565b606091505b5050905080612aaa5760405162461bcd60e51b8152600401808060200182810382526034815260200180612ca76034913960400191505060405180910390fd5b505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b60208310612b345780518252601f199092019160209182019101612b15565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612b96576040519150601f19603f3d011682016040523d82523d6000602084013e612b9b565b606091505b5091509150818015612bc9575080511580612bc95750808060200190516020811015612bc657600080fd5b50515b612c045760405162461bcd60e51b8152600401808060200182810382526031815260200180612c766031913960400191505060405180910390fd5b505050505050565b600081815260208190526040812060060154612c2a5750600061106d565b336000908152600260209081526040808320858452825280832080546001909101549284905290832060090154909290612c6c908390611b519086601261275d565b9594505050505056fe5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c65645472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c65644e4f20414343455353205045524d495353494f4e000000000000000000000000a264697066735822122009f214f8a36b86e890319c450c8a74264a7ec967eeb8dc67111e6c7abcf3328964736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000da86006036540822e0cd2861dbd2fd7ff9caa0e8000000000000000000000000638187c88f341488e9edff83750ad3a34c7ca6360000000000000000000000006ca45993fd7271bc44030bafc4ff1a575a03e4f2
-----Decoded View---------------
Arg [0] : _tube (address): 0xdA86006036540822e0cd2861dBd2fD7FF9CAA0e8
Arg [1] : _devaddr (address): 0x638187c88F341488E9EdfF83750AD3a34C7ca636
Arg [2] : _lotaddr (address): 0x6Ca45993fD7271bc44030baFc4Ff1A575a03e4f2
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000da86006036540822e0cd2861dbd2fd7ff9caa0e8
Arg [1] : 000000000000000000000000638187c88f341488e9edff83750ad3a34c7ca636
Arg [2] : 0000000000000000000000006ca45993fd7271bc44030bafc4ff1a575a03e4f2
Deployed Bytecode Sourcemap
88:16942:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2019:26;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2019:26:2;;;;;;;;;;;;;;7932:191;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7932:191:2;;;;;;;;;;:::i;11756:482::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11756:482:2;;:::i;11062:144::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11062:144:2;;;;;;;;:::i;5420:396::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5420:396:2;;;;;;;;;;;;;;;;;;;:::i;12854:524::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12854:524:2;;:::i;10340:641::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10340:641:2;;:::i;2400:42::-;;;;;;;;;;;;;:::i;1519:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1519:62:2;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6583:253;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6583:253:2;;;;;;;;;;:::i;7139:474::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7139:474:2;;;;;;;;;;;;;;;;;;;;;;:::i;2302:42::-;;;;;;;;;;;;;:::i;2135:23::-;;;;;;;;;;;;;:::i;1738:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1738:49:2;-1:-1:-1;;;;;1738:49:2;;:::i;:::-;;;;;;;;;;;;;;;;;;11285:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11285:188:2;;:::i;7677:191::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7677:191:2;;;;;;;;;;:::i;15239:255::-;;;;;;;;;;;;;:::i;8167:836::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8167:836:2;;;;;;;:::i;6919:147::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6919:147:2;-1:-1:-1;;;;;6919:147:2;;:::i;6373:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6373:143:2;-1:-1:-1;;;;;6373:143:2;;:::i;2497:42::-;;;;;;;;;;;;;:::i;1796:20::-;;;;;;;;;;;;;:::i;6168:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6168:143:2;-1:-1:-1;;;;;6168:143:2;;:::i;13437:628::-;;;;;;;;;;;;;:::i;5916:186::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5916:186:2;;;;;;;;;:::i;15767:520::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15767:520:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1254:38;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1254:38:2;;:::i;:::-;;;;-1:-1:-1;;;;;1254:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4479:869;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:869:2;;;;;;;;;;;;;:::i;1965:22::-;;;;;;;;;;;;;:::i;2351:42::-;;;;;;;;;;;;;:::i;1635:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:49:2;-1:-1:-1;;;;;1635:49:2;;:::i;9065:1213::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9065:1213:2;;;;;;;:::i;14110:1074::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14110:1074:2;;;;;;;:::i;15548:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15548:139:2;-1:-1:-1;;;;;15548:139:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2077:28;;;;;;;;;;;;;:::i;1907:22::-;;;;;;;;;;;;;:::i;2449:41::-;;;;;;;;;;;;;:::i;12297:498::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12297:498:2;;:::i;11547:146::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11547:146:2;-1:-1:-1;;;;;11547:146:2;;:::i;1854:19::-;;;;;;;;;;;;;:::i;2219:22::-;;;;:::o;2019:26::-;;;-1:-1:-1;;;;;2019:26:2;;:::o;7932:191::-;3742:5;;-1:-1:-1;;;;;3742:5:2;3728:10;:19;3720:41;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;8023:27:2;::::1;;::::0;;;:17:::1;:27;::::0;;;;;;;;:36;;-1:-1:-1;;8023:36:2::1;::::0;::::1;;::::0;;::::1;::::0;;;8075:40;;;;;;;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;7932:191:::0;;:::o;11756:482::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;11828:13:::1;11844:39;11858:6;11866:16;11844:13;:39::i;:::-;11828:55;;11913:1;11902:8;:12;11894:43;;;::::0;;-1:-1:-1;;;11894:43:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;11894:43:2;;;;;;;;;;;;;::::1;;11956:7;::::0;-1:-1:-1;;;;;11956:7:2::1;11948:51;;;::::0;;-1:-1:-1;;;11948:51:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;11948:51:2;;;;;;;;;;;;;::::1;;12016:8;::::0;12010:49:::1;::::0;;-1:-1:-1;;;12010:49:2;;12043:4:::1;12010:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;12016:8:2;;::::1;::::0;12010:24:::1;::::0;:49;;;;;12016:8:::1;::::0;12010:49;;;;;;;;12016:8;;12010:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12098:4:2::1;::::0;12104:7:::1;::::0;12070:52:::1;::::0;-1:-1:-1;;;;;;12098:4:2;;::::1;::::0;-1:-1:-1;12104:7:2::1;12113:8:::0;12070:27:::1;:52::i;:::-;12133:5;:13:::0;;;::::1;::::0;;;;;;;;12164:12:::1;12133:28;::::0;;::::1;:43:::0;12212:7:::1;::::0;12192:38;;;;;-1:-1:-1;;;;;12212:7:2;;::::1;12192:38:::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;4040:1;11756:482:::0;:::o;11062:144::-;3742:5;;-1:-1:-1;;;;;3742:5:2;3728:10;:19;3720:41;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;;;;11184:5:::1;::::0;11149:49:::1;::::0;11177:5;;-1:-1:-1;;;;;11184:5:2::1;11191:6:::0;11149:27:::1;:49::i;:::-;11062:144:::0;;:::o;5420:396::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;5545:31:::1;5569:6;5545:23;:31::i;:::-;5587:5;:13:::0;;;::::1;::::0;;;;;;;;:28:::1;::::0;::::1;:46:::0;;;5644:24:::1;::::0;::::1;:42:::0;;;5697:20:::1;;:38:::0;;;::::1;;-1:-1:-1::0;;5697:38:2;;::::1;::::0;::::1;::::0;;;5751:57;;;;;;;::::1;::::0;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;5420:396:::0;;;;:::o;12854:524::-;3861:10;3843:29;;;;:17;:29;;;;;;;;3835:62;;;;;-1:-1:-1;;;3835:62:2;;;;;;;;;;;;-1:-1:-1;;;3835:62:2;;;;;;;;;;;;;;;12930:13:::1;12946:43;12960:6;12968:20;12946:13;:43::i;:::-;13008:11;::::0;12930:59;;-1:-1:-1;;;;;;13008:11:2::1;13000:59;;;::::0;;-1:-1:-1;;;13000:59:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13000:59:2;;;;;;;;;;;;;::::1;;13084:12:::0;;13080:291:::1;;13119:8;::::0;13113:49:::1;::::0;;-1:-1:-1;;;13113:49:2;;13146:4:::1;13113:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;13119:8:2;;::::1;::::0;13113:24:::1;::::0;:49;;;;;13119:8:::1;::::0;13113:49;;;;;;;;13119:8;;13113:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13205:4:2::1;::::0;13211:11:::1;::::0;13177:56:::1;::::0;-1:-1:-1;;;;;;13205:4:2;;::::1;::::0;-1:-1:-1;13211:11:2::1;13224:8:::0;13177:27:::1;:56::i;:::-;13248:5;:13:::0;;;::::1;::::0;;;;;;;;13281:12:::1;13248:30;::::0;;::::1;:45:::0;13337:11:::1;::::0;13313:46;;;;;-1:-1:-1;;;;;13337:11:2;;::::1;13313:46:::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;3908:1;12854:524:::0;:::o;10340:641::-;10399:4;10420:13;;;;;;;;;;:25;;;10416:71;;-1:-1:-1;10474:1:2;10467:8;;10416:71;10499:17;10519:13;;;;;;;;;;:28;;;;10578:24;;;;10633:25;;;;10706:28;;;;;10519;;10578:24;;10633:25;10689:46;;:12;;:16;:46::i;:::-;10904:6;;10776:11;10766:21;;;;-1:-1:-1;10820:11:2;;10840:80;;2576:2;10840:59;10766:21;2576:2;10840:59;:12;10857:10;2576:2;10840:16;:37::i;:::-;:41;:59;:41;:59::i;:80::-;10820:100;-1:-1:-1;10940:33:2;10820:100;10951:12;2576:2;10940:10;:33::i;:::-;10933:40;;;;;;;10340:641;;;;:::o;2400:42::-;;;;:::o;1519:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6583:253::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;6696:11:::1;:28:::0;;-1:-1:-1;;;;;6696:28:2;;::::1;-1:-1:-1::0;;;;;;6696:28:2;;::::1;;::::0;;;;6735:13:::1;:30:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;6781:47:::1;::::0;;6801:11;;::::1;6781:47:::0;;6814:13;::::1;6781:47;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;6583:253:::0;;:::o;7139:474::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;7279:57:::1;7325:10:::0;7279:41:::1;7311:8:::0;7279:41;7301:4;7279:41;:7;7291:4;7279:11:::1;:17::i;:::-;:21:::0;::::1;:27::i;:57::-;7340:19;7279:80;7271:111;;;::::0;;-1:-1:-1;;;7271:111:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;7271:111:2;;;;;;;;;;;;;::::1;;7393:6;:19:::0;;;7423:3:::1;:16:::0;;;7450:7:::1;:16:::0;;;7477:7:::1;:20:::0;;;7508:9:::1;:22:::0;;;7546:59:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;7139:474:::0;;;;;:::o;2302:42::-;;;;:::o;2135:23::-;;;-1:-1:-1;;;;;2135:23:2;;:::o;1738:49::-;;;;;;;;;;;;;;;:::o;11285:188::-;3742:5;;-1:-1:-1;;;;;3742:5:2;3728:10;:19;3720:41;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;;;;11395:5:::1;::::0;-1:-1:-1;;;;;11395:5:2::1;11412:53;11395:5:::0;11458:6;11412:30:::1;:53::i;7677:191::-:0;3742:5;;-1:-1:-1;;;;;3742:5:2;3728:10;:19;3720:41;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;7768:27:2;::::1;;::::0;;;:17:::1;:27;::::0;;;;;;;;:36;;-1:-1:-1;;7768:36:2::1;::::0;::::1;;::::0;;::::1;::::0;;;7820:40;;;;;;;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;7677:191:::0;;:::o;15239:255::-;15288:4;;;15331:132;15353:10;;:17;;15368:1;15353:14;:17::i;:::-;15348:1;:22;15331:132;;15401:50;15412:38;15426:1;15429:20;15412:13;:38::i;:::-;15401:6;;:10;:50::i;:::-;15392:59;-1:-1:-1;15372:3:2;;15331:132;;;-1:-1:-1;15480:6:2;-1:-1:-1;15239:255:2;:::o;8167:836::-;8274:1;8234:13;;;;;;;;;;:28;-1:-1:-1;;;;;8234:28:2;8226:75;;;;;-1:-1:-1;;;8226:75:2;;;;;;;;;;;;-1:-1:-1;;;8226:75:2;;;;;;;;;;;;;;;8320:5;:13;;;;;;;;;;:20;;;;;:29;8312:59;;;;;-1:-1:-1;;;8312:59:2;;;;;;;;;;;;-1:-1:-1;;;8312:59:2;;;;;;;;;;;;;;;8390:5;:13;;;;;;;;;;:22;;;;;;;;:31;8382:63;;;;;-1:-1:-1;;;8382:63:2;;;;;;;;;;;;-1:-1:-1;;;8382:63:2;;;;;;;;;;;;;;;8458:16;8464:6;8472:1;8458:5;:16::i;:::-;8517:5;:13;;;;;;;;;;:28;8485:96;;-1:-1:-1;;;;;8517:28:2;8547:10;8567:4;8574:6;8485:31;:96::i;:::-;8620:5;:13;;;;;;;;;;:25;;;:37;;8650:6;8620:29;:37::i;:::-;8592:5;:13;;;;;;;;;;;:25;;:65;;;;8717:10;8711:17;;:5;:17;;;;;:25;;;;;;:34;:46;;8750:6;8711:38;:46::i;:::-;8674:10;8668:17;;;;:5;:17;;;;;;;;:25;;;;;;;;:89;;;8811:12;8768:40;;:55;;;;8877:13;;;;;:30;;;:79;;2576:2;8877:34;:79::i;:::-;8840:10;8834:17;;;;:5;:17;;;;;;;;:25;;;;;;;;;:36;;:122;;;;8974:21;;;;;;;;;;;;;;;;;;;;;;;8167:836;;:::o;6919:147::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;6999:8:::1;:19:::0;;-1:-1:-1;;;;;6999:19:2;::::1;-1:-1:-1::0;;;;;;6999:19:2;;::::1;::::0;::::1;::::0;;;7034:24:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;6919:147:::0;:::o;6373:143::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;6452:7:::1;:18:::0;;-1:-1:-1;;;;;;6452:18:2::1;-1:-1:-1::0;;;;;6452:18:2;;::::1;::::0;;;::::1;::::0;;;;6486:22:::1;::::0;;6500:7;;;::::1;6486:22:::0;;;::::1;::::0;::::1;::::0;;;;;;::::1;6373:143:::0;:::o;2497:42::-;;;;:::o;1796:20::-;;;-1:-1:-1;;;;;1796:20:2;;:::o;6168:143::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;6247:7:::1;:18:::0;;-1:-1:-1;;;;;;6247:18:2::1;-1:-1:-1::0;;;;;6247:18:2;;::::1;::::0;;;::::1;::::0;;;;6281:22:::1;::::0;;6295:7;;;::::1;6281:22:::0;;;::::1;::::0;::::1;::::0;;;;;;::::1;6168:143:::0;:::o;13437:628::-;3861:10;13506:4;3843:29;;;:17;:29;;;;;;;;3835:62;;;;;-1:-1:-1;;;3835:62:2;;;;;;;;;;;;-1:-1:-1;;;3835:62:2;;;;;;;;;;;;;;;13531:13:::1;::::0;-1:-1:-1;;;;;13531:13:2::1;13523:63;;;::::0;;-1:-1:-1;;;13523:63:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13607:13;13623:18;:16;:18::i;:::-;13607:34:::0;-1:-1:-1;13658:12:2;;13654:233:::1;;13693:8;::::0;13687:49:::1;::::0;;-1:-1:-1;;;13687:49:2;;13720:4:::1;13687:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;13693:8:2;;::::1;::::0;13687:24:::1;::::0;:49;;;;;13693:8:::1;::::0;13687:49;;;;;;;;13693:8;;13687:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13779:4:2::1;::::0;13785:13:::1;::::0;13751:58:::1;::::0;-1:-1:-1;;;;;;13779:4:2;;::::1;::::0;-1:-1:-1;13785:13:2::1;13800:8:::0;13751:27:::1;:58::i;:::-;13851:13;::::0;13829:46:::1;::::0;;-1:-1:-1;;;;;13851:13:2;;::::1;13829:46:::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;13654:233;13912:6;13907:115;13929:10;::::0;:17:::1;::::0;13944:1:::1;13929:14;:17::i;:::-;13924:1;:22;13907:115;;13968:5;:8:::0;;;::::1;::::0;;;;;;13998:12:::1;13968:27;::::0;;::::1;:42:::0;13948:3:::1;;13907:115;;5916:186:::0;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;6009:5:::1;:13:::0;;;::::1;::::0;;;;;;;;:22:::1;;:34:::0;;-1:-1:-1;;6009:34:2::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;6059:35;;;;;;;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;5916:186:::0;;:::o;15767:520::-;15824:4;15830;15836;15842;15848;15865:21;15889:23;15905:6;15889:15;:23::i;:::-;15968:5;:13;;;;;;;;;;:30;;;15865:47;;-1:-1:-1;15947:52:2;;15865:47;;15947:20;:52::i;:::-;16113:10;16020:14;16107:17;;;:5;:17;;;;;;;;:25;;;;;;;;:36;;;;16058:34;;15923:76;;-1:-1:-1;16020:14:2;;16037:107;;16107:36;16037:65;;15923:76;;2576:2;16037:20;:65::i;:::-;:69;;:107::i;:::-;16212:10;16206:17;;;;:5;:17;;;;;;;;:25;;;;;;;;;;:34;;16242:36;;;;;16163:12;;16188:16;;-1:-1:-1;16206:34:2;;-1:-1:-1;16242:36:2;-1:-1:-1;15767:520:2;;-1:-1:-1;;;15767:520:2:o;1254:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1254:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4479:869::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;4610:29:2;::::1;4602:67;;;::::0;;-1:-1:-1;;;4602:67:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4732:10;::::0;4687:56:::1;::::0;;-1:-1:-1;;;;;4687:56:2;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;4760:10;::::0;;4754:5:::1;:17:::0;;;::::1;::::0;;;;;;;:54;;-1:-1:-1;;;;;;4754:54:2::1;-1:-1:-1::0;;;;;4754:54:2;::::1;::::0;;::::1;::::0;;;4825:10;;4819:17;;;;;-1:-1:-1;4819:32:2;;::::1;:54:::0;;;4890:10;;4884:17;;;;;:28:::1;;:50:::0;;;4951:10;;4945:17;;;;;4984:12:::1;4945:32;::::0;;::::1;:51:::0;;;5013:10;;5007:17;;;;;:32:::1;;:51:::0;;;5075:10;;5069:17;;;;;:32:::1;;:51:::0;;;5137:10;;5131:17;;;;;-1:-1:-1;5131:34:2::1;:51:::0;;;5199:10;;5193:17;;;;;-1:-1:-1;5193:36:2::1;:51:::0;5255:27;;;;;;;;;5288:10;;5255:44;;;;::::1;::::0;;;;;;;;;;;::::1;::::0;5323:10;;:17:::1;::::0;:14:::1;:17::i;:::-;5310:10;:30:::0;-1:-1:-1;;;4479:869:2:o;1965:22::-;;;-1:-1:-1;;;;;1965:22:2;;:::o;2351:42::-;;;;:::o;1635:49::-;;;;;;;;;;;;;;;:::o;9065:1213::-;9172:1;9132:13;;;;;;;;;;:28;-1:-1:-1;;;;;9132:28:2;9124:75;;;;;-1:-1:-1;;;9124:75:2;;;;;;;;;;;;-1:-1:-1;;;9124:75:2;;;;;;;;;;;;;;;9218:5;:13;;;;;;;;;;:20;;;;;:29;9210:59;;;;;-1:-1:-1;;;9210:59:2;;;;;;;;;;;;-1:-1:-1;;;9210:59:2;;;;;;;;;;;;;;;9290:31;9314:6;9290:23;:31::i;:::-;9334:14;9351:24;9368:6;9351:16;:24::i;:::-;9334:41;-1:-1:-1;9390:13:2;;9386:237;;9426:8;;9420:50;;;-1:-1:-1;;;9420:50:2;;9453:4;9420:50;;;;;;;;;;;;-1:-1:-1;;;;;9426:8:2;;;;9420:24;;:50;;;;;9426:8;;9420:50;;;;;;;;9426:8;;9420:50;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9513:4:2;;9485:56;;-1:-1:-1;;;;;;9513:4:2;;-1:-1:-1;9519:10:2;9531:9;9485:27;:56::i;:::-;9562:10;9556:17;;;;:5;:17;;;;;;;;:25;;;;;;;;;9599:12;9556:40;;:55;9386:237;9639:10;;9635:298;;9694:5;:13;;;;;;;;;;:28;9666:77;;-1:-1:-1;;;;;9694:28:2;9724:10;9736:6;9666:27;:77::i;:::-;9801:10;9795:17;;;;:5;:17;;;;;;;;:25;;;;;;;;:34;:46;;9834:6;9795:38;:46::i;:::-;9764:10;9758:17;;;;:5;:17;;;;;;;;:25;;;;;;;;:83;;;;9884:13;;;;:25;;;:37;;9914:6;9884:29;:37::i;:::-;9856:5;:13;;;;;;;;;;:25;;:65;9635:298;10004:1;9992:9;:13;:27;;;;10018:1;10009:6;:10;9992:27;9988:97;;;10041:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9988:97;10232:10;10226:17;;;;:5;:17;;;;;;;;:25;;;;;;;;:34;10191:13;;;;;;;:30;;;:79;;2576:2;10191:34;:79::i;:::-;10158:10;10152:17;;;;:5;:17;;;;;;;;:25;;;;;;;;;;:36;;:118;;;;-1:-1:-1;;9065:1213:2:o;14110:1074::-;14185:4;;;14284:16;14272:28;;14268:658;;;-1:-1:-1;;14330:5:2;:13;;;;;;;;;;:28;;;14386:3;;14268:658;;;14423:20;14411:8;:32;14407:519;;;-1:-1:-1;;14473:5:2;:13;;;;;;;;;;:28;;;14529:7;;14407:519;;;14570:20;14558:8;:32;14554:372;;;-1:-1:-1;;14620:5:2;:13;;;;;;;;;;:30;;;14678:7;;14554:372;;;14719:20;14707:8;:32;14703:223;;;-1:-1:-1;;14769:5:2;:13;;;;;;;;;;:32;;;14829:9;;14703:223;;;-1:-1:-1;14884:1:2;;-1:-1:-1;14884:1:2;14703:223;14946:15;14964:28;:12;14981:10;14964:16;:28::i;:::-;15123:5;:13;;;;;;;;;;:24;;;;15080:28;;;;;15034:11;15021:24;;;;-1:-1:-1;15065:111:2;;15162:4;;2576:2;;15065:92;;15123:24;2576:2;;15065:92;;15021:24;;2576:2;15065:14;:53::i;:111::-;15058:118;;;;;14110:1074;;;;;:::o;15548:139::-;-1:-1:-1;;;;;15652:27:2;;;;;;:10;:27;;;;;;;;;15645:34;;;;;;;;;;;;;;;;;15619:13;;15645:34;;;15652:27;15645:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15548:139;;;:::o;2077:28::-;;;-1:-1:-1;;;;;2077:28:2;;:::o;1907:22::-;;;-1:-1:-1;;;;;1907:22:2;;:::o;2449:41::-;;;;:::o;12297:498::-;3993:10;3975:29;;;;:17;:29;;;;;;;;3967:62;;;;;-1:-1:-1;;;3967:62:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3967:62:2;;;;;;;;;;;;;;;12373:13:::1;12389:43;12403:6;12411:20;12389:13;:43::i;:::-;12373:59;;12462:1;12451:8;:12;12443:43;;;::::0;;-1:-1:-1;;;12443:43:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12443:43:2;;;;;;;;;;;;;::::1;;12505:7;::::0;-1:-1:-1;;;;;12505:7:2::1;12497:55;;;::::0;;-1:-1:-1;;;12497:55:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12497:55:2;;;;;;;;;;;;;::::1;;12569:8;::::0;12563:49:::1;::::0;;-1:-1:-1;;;12563:49:2;;12596:4:::1;12563:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;12569:8:2;;::::1;::::0;12563:24:::1;::::0;:49;;;;;12569:8:::1;::::0;12563:49;;;;;;;;12569:8;;12563:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12651:4:2::1;::::0;12657:7:::1;::::0;12623:52:::1;::::0;-1:-1:-1;;;;;;12651:4:2;;::::1;::::0;-1:-1:-1;12657:7:2::1;12666:8:::0;12623:27:::1;:52::i;:::-;12686:5;:13:::0;;;::::1;::::0;;;;;;;;12717:12:::1;12686:28;::::0;;::::1;:43:::0;12769:7:::1;::::0;12745:42;;;;;-1:-1:-1;;;;;12769:7:2;;::::1;12745:42:::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;4040:1;12297:498:::0;:::o;11547:146::-;3742:5;;-1:-1:-1;;;;;3742:5:2;3728:10;:19;3720:41;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;-1:-1:-1;;;3720:41:2;;;;;;;;;;;;;;;11640:5:::1;::::0;11624:33:::1;::::0;;-1:-1:-1;;;;;11640:5:2;;::::1;11624:33:::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;11668:5;:17:::0;;-1:-1:-1;;;;;;11668:17:2::1;-1:-1:-1::0;;;;;11668:17:2;;;::::1;::::0;;;::::1;::::0;;11547:146::o;1854:19::-;;;-1:-1:-1;;;;;1854:19:2;;:::o;623:449:1:-;855:45;;;-1:-1:-1;;;;;855:45:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;855:45:1;-1:-1:-1;;;855:45:1;;;844:57;;;;809:12;;823:17;;844:10;;;;855:45;844:57;;;855:45;844:57;;855:45;844:57;;;;;;;;;;-1:-1:-1;;844:57:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:93;;;;934:7;:57;;;;-1:-1:-1;946:11:1;;:16;;:44;;;977:4;966:24;;;;;;;;;;;;;;;-1:-1:-1;966:24:1;946:44;912:152;;;;-1:-1:-1;;;912:152:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;623:449;;;;;:::o;16299:253:2:-;16365:11;16379:23;16395:6;16379:15;:23::i;:::-;16446:5;:13;;;;;;;;;;:30;;;16365:37;;-1:-1:-1;16446:42:2;;16365:37;16446:34;:42::i;:::-;16413:5;:13;;;;;;;;;;;:30;;;:75;;;;-1:-1:-1;16532:12:2;16499:28;;;;:45;16299:253::o;375:139:0:-;427:6;459:1;454;:6;;446:40;;;;;-1:-1:-1;;;446:40:0;;;;;;;;;;;;-1:-1:-1;;;446:40:0;;;;;;;;;;;;;;;-1:-1:-1;501:5:0;;;375:139::o;522:351::-;588:4;615:2;:11;;;647:5;;;671:6;;;:21;;;691:1;686;681:2;:6;;;;;;:11;671:21;663:61;;;;;-1:-1:-1;;;663:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;756:1;751:6;;745:13;;777:8;;;;769:48;;;;;-1:-1:-1;;;769:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;828:7;843:2;838;:7;;;;;;;522:351;-1:-1:-1;;;;;;;;522:351:0:o;881:416::-;953:7;981:6;973:45;;;;;-1:-1:-1;;;973:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:2;:11;;;1071:6;;;1096;;;:22;;;1116:2;1111:1;1106:2;:6;;;;;;:12;1096:22;1088:62;;;;;-1:-1:-1;;;1088:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1181:1;1177:5;;1171:12;;1202:8;;;;1194:48;;;;;-1:-1:-1;;;1194:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1253:7;1268:1;1263:2;:6;;;;229:138;304:5;;;328:6;;;;320:39;;;;;-1:-1:-1;;;320:39:0;;;;;;;;;;;;-1:-1:-1;;;320:39:0;;;;;;;;;;;;;;1586:217:1;1699:12;;;1659;1699;;;;;;;;;-1:-1:-1;;;;;1677:7:1;;;1692:5;;1677:35;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1677:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1658:54;;;1731:7;1723:72;;;;-1:-1:-1;;;1723:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:217;;;:::o;1080:498::-;1351:51;;;-1:-1:-1;;;;;1351:51:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1351:51:1;-1:-1:-1;;;1351:51:1;;;1340:63;;;;1305:12;;1319:17;;1340:10;;;;1351:51;1340:63;;;1351:51;1340:63;;1351:51;1340:63;;;;;;;;;;-1:-1:-1;;1340:63:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1304:99;;;;1436:7;:57;;;;-1:-1:-1;1448:11:1;;:16;;:44;;;1479:4;1468:24;;;;;;;;;;;;;;;-1:-1:-1;1468:24:1;1448:44;1414:156;;;;-1:-1:-1;;;1414:156:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1080:498;;;;;;:::o;16560:423:2:-;16622:4;16643:13;;;;;;;;;;:25;;;16639:73;;-1:-1:-1;16698:1:2;16690:10;;16639:73;16749:10;16724:16;16743:17;;;:5;:17;;;;;;;;:25;;;;;;;;:34;;16807:36;;;;;16873:13;;;;;;;:30;;;16743:34;;16724:16;16873:71;;16807:36;;16873:56;;16743:34;2576:2;16873:34;:56::i;:71::-;16854:90;16560:423;-1:-1:-1;;;;;16560:423:2:o
Swarm Source
ipfs://09f214f8a36b86e890319c450c8a74264a7ec967eeb8dc67111e6c7abcf33289
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2.15 | 1 | $2.15 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.