ERC-20
Overview
Max Total Supply
13,114,793.49144742 HEX3
Holders
0
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
HRS
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-02-22 */ pragma solidity ^0.4.26; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract EXCH { function distribute(uint256 _amount) public returns (uint256); } contract TOKEN { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external; function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external; function stakeCount(address stakerAddr) external view returns (uint256); function stakeLists(address owner, uint256 stakeIndex) external view returns (uint40, uint72, uint72, uint16, uint16, uint16, bool); function currentDay() external view returns (uint256); } contract Ownable { address public owner; constructor() public { owner = address(0xAeFeB36820bd832038E8e4F73eDbD5f48D3b4E50); } modifier onlyOwner() { require(msg.sender == owner); _; } } contract HRS is Ownable { using SafeMath for uint256; uint ACTIVATION_TIME = 1582416000; modifier isActivated { require(now >= ACTIVATION_TIME); if (now <= (ACTIVATION_TIME + 2 minutes)) { require(tx.gasprice <= 0.1 szabo); } _; } modifier onlyTokenHolders() { require(myTokens(true) > 0); _; } modifier isStakeActivated { require(stakeActivated == true); _; } event onDistribute( address indexed customerAddress, uint256 tokens ); event Transfer( address indexed from, address indexed to, uint256 tokens ); event onTokenPurchase( address indexed customerAddress, uint256 incomingHEX, uint256 tokensMinted, uint256 timestamp ); event onTokenSell( address indexed customerAddress, uint256 tokensBurned, uint256 hexEarned, uint256 timestamp ); event onTokenAppreciation( uint256 tokenPrice, uint256 timestamp ); event onStakeStart( address indexed customerAddress, uint256 uniqueID, uint256 currentTokens, uint256 timestamp ); event onStakeEnd( address indexed customerAddress, uint256 uniqueID, uint256 returnAmount, uint256 difference, uint256 timestamp ); string public name = "HEXRISE"; string public symbol = "HEX3"; uint8 constant public decimals = 8; uint256 constant internal magnitude = 1e8; uint8 constant internal transferFee = 1; uint8 constant internal buyInFee = 4; uint8 constant internal sellOutFee = 4; uint8 constant internal devFee = 1; uint8 constant internal hexTewFee = 1; mapping(address => uint256) private tokenBalanceLedger; mapping(address => uint256) public lockedHexBalanceLedger; struct Stats { uint256 deposits; uint256 withdrawals; uint256 staked; uint256 activeStakes; } mapping(address => Stats) public playerStats; uint256 public totalStakeBalance = 0; uint256 public totalPlayer = 0; uint256 public totalDonation = 0; uint256 public totalFundReceived = 0; uint256 public totalFundCollected = 0; uint256 private tokenSupply = 0; uint256 private contractValue = 0; uint256 private tokenPrice = 100000000; EXCH exchange; TOKEN erc20; struct StakeStore { uint40 stakeID; uint256 hexAmount; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool started; bool ended; } bool stakeActivated = true; mapping(address => mapping(uint256 => StakeStore)) public stakeLists; constructor() public { exchange = EXCH(address(0xD495cC8C7c29c7fA3E027a5759561Ab68C363609)); erc20 = TOKEN(address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39)); } function() payable public { revert(); } function checkAndTransferHEX(uint256 _amount) private { require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed"); } function appreciateTokenPrice(uint256 _amount) isActivated public { require(_amount > 0, "must be a positive value"); checkAndTransferHEX(_amount); contractValue = contractValue.add(_amount); totalDonation += _amount; if (tokenSupply > magnitude) { tokenPrice = (contractValue.mul(magnitude)) / tokenSupply; } emit onDistribute(msg.sender, _amount); emit onTokenAppreciation(tokenPrice, now); } function payFund() public { uint256 _hexToPay = totalFundCollected.sub(totalFundReceived); require(_hexToPay > 0); totalFundReceived = totalFundReceived.add(_hexToPay); erc20.approve(exchange, _hexToPay); exchange.distribute(_hexToPay); } function buy(uint256 _amount) public returns (uint256) { checkAndTransferHEX(_amount); return purchaseTokens(msg.sender, _amount); } function buyFor(uint256 _amount, address _customerAddress) public returns (uint256) { checkAndTransferHEX(_amount); return purchaseTokens(_customerAddress, _amount); } function _purchaseTokens(address _customerAddress, uint256 _incomingHEX) private returns(uint256) { uint256 _amountOfTokens = (_incomingHEX.mul(magnitude)) / tokenPrice; require(_amountOfTokens > 0 && _amountOfTokens.add(tokenSupply) > tokenSupply); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].add(_amountOfTokens); tokenSupply = tokenSupply.add(_amountOfTokens); emit Transfer(address(0), _customerAddress, _amountOfTokens); return _amountOfTokens; } function purchaseTokens(address _customerAddress, uint256 _incomingHEX) private isActivated returns (uint256) { if (playerStats[_customerAddress].deposits == 0) { totalPlayer++; } playerStats[_customerAddress].deposits += _incomingHEX; require(_incomingHEX > 0); uint256 _devFee = _incomingHEX.mul(devFee).div(100); uint256 _hexTewFee = _incomingHEX.mul(hexTewFee).div(100); uint256 _fee = _incomingHEX.mul(buyInFee).div(100); _purchaseTokens(owner, _devFee); totalFundCollected = totalFundCollected.add(_hexTewFee); uint256 _amountOfTokens = _purchaseTokens(_customerAddress, _incomingHEX.sub(_fee).sub(_devFee).sub(_hexTewFee)); contractValue = contractValue.add(_incomingHEX.sub(_hexTewFee)); if (hexToSendFund() >= 10000e8) { payFund(); } if (tokenSupply > magnitude) { tokenPrice = (contractValue.mul(magnitude)) / tokenSupply; } emit onTokenPurchase(_customerAddress, _incomingHEX, _amountOfTokens, now); emit onTokenAppreciation(tokenPrice, now); return _amountOfTokens; } function sell(uint256 _amountOfTokens) isActivated onlyTokenHolders public { address _customerAddress = msg.sender; uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(magnitude)) / tokenPrice; require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(_lockedToken)); uint256 _hex = _amountOfTokens.mul(tokenPrice).div(magnitude); uint256 _fee = _hex.mul(sellOutFee).div(100); tokenSupply = tokenSupply.sub(_amountOfTokens); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens); _hex = _hex.sub(_fee); contractValue = contractValue.sub(_hex); if (tokenSupply > magnitude) { tokenPrice = (contractValue.mul(magnitude)) / tokenSupply; } erc20.transfer(_customerAddress, _hex); playerStats[_customerAddress].withdrawals += _hex; emit Transfer(_customerAddress, address(0), _amountOfTokens); emit onTokenSell(_customerAddress, _amountOfTokens, _hex, now); emit onTokenAppreciation(tokenPrice, now); } function transfer(address _toAddress, uint256 _amountOfTokens) isActivated onlyTokenHolders external returns (bool) { address _customerAddress = msg.sender; uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(magnitude)) / tokenPrice; require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(_lockedToken)); uint256 _tokenFee = _amountOfTokens.mul(transferFee).div(100); uint256 _taxedTokens = _amountOfTokens.sub(_tokenFee); tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens); tokenBalanceLedger[_toAddress] = tokenBalanceLedger[_toAddress].add(_taxedTokens); tokenSupply = tokenSupply.sub(_tokenFee); if (tokenSupply>magnitude) { tokenPrice = (contractValue.mul(magnitude)) / tokenSupply; } emit Transfer(_customerAddress, address(0), _tokenFee); emit Transfer(_customerAddress, _toAddress, _taxedTokens); emit onTokenAppreciation(tokenPrice, now); return true; } function stakeStart(uint256 _amount, uint256 _days) public isStakeActivated { require(_amount <= 4722366482869645213695); require(hexBalanceOfNoFee(msg.sender, true) >= _amount); erc20.stakeStart(_amount, _days); // revert or succeed uint256 _stakeIndex; uint40 _stakeID; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; _stakeIndex = erc20.stakeCount(address(this)); _stakeIndex = SafeMath.sub(_stakeIndex, 1); (_stakeID,,_stakeShares,_lockedDay,_stakedDays,,) = erc20.stakeLists(address(this), _stakeIndex); uint256 _uniqueID = uint256(keccak256(abi.encodePacked(_stakeID, _stakeShares))); // unique enough require(stakeLists[msg.sender][_uniqueID].started == false); // still check for collision stakeLists[msg.sender][_uniqueID].started = true; stakeLists[msg.sender][_uniqueID] = StakeStore(_stakeID, _amount, _stakeShares, _lockedDay, _stakedDays, uint16(0), true, false); totalStakeBalance = SafeMath.add(totalStakeBalance, _amount); playerStats[msg.sender].activeStakes += 1; playerStats[msg.sender].staked += _amount; lockedHexBalanceLedger[msg.sender] = SafeMath.add(lockedHexBalanceLedger[msg.sender], _amount); emit onStakeStart(msg.sender, _uniqueID, calculateTokensReceived(_amount, false), now); } function _stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public view returns (uint16){ uint40 _stakeID; uint72 _stakedHearts; uint72 _stakeShares; uint16 _lockedDay; uint16 _stakedDays; uint16 _unlockedDay; (_stakeID,_stakedHearts,_stakeShares,_lockedDay,_stakedDays,_unlockedDay,) = erc20.stakeLists(address(this), _stakeIndex); require(stakeLists[msg.sender][_uniqueID].started == true && stakeLists[msg.sender][_uniqueID].ended == false); require(stakeLists[msg.sender][_uniqueID].stakeID == _stakeIdParam && _stakeIdParam == _stakeID); require(stakeLists[msg.sender][_uniqueID].hexAmount == uint256(_stakedHearts)); require(stakeLists[msg.sender][_uniqueID].stakeShares == _stakeShares); require(stakeLists[msg.sender][_uniqueID].lockedDay == _lockedDay); require(stakeLists[msg.sender][_uniqueID].stakedDays == _stakedDays); return _unlockedDay; } function stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public { uint16 _unlockedDay = _stakeEnd(_stakeIndex, _stakeIdParam, _uniqueID); if (_unlockedDay == 0){ stakeLists[msg.sender][_uniqueID].unlockedDay = uint16(erc20.currentDay()); // no penalty/penalty/reward } else { stakeLists[msg.sender][_uniqueID].unlockedDay = _unlockedDay; } uint256 _balance = erc20.balanceOf(address(this)); erc20.stakeEnd(_stakeIndex, _stakeIdParam); // revert or 0 or less or equal or more hex returned. stakeLists[msg.sender][_uniqueID].ended = true; uint256 _amount = SafeMath.sub(erc20.balanceOf(address(this)), _balance); uint256 _stakedAmount = stakeLists[msg.sender][_uniqueID].hexAmount; uint256 _difference; if (_amount <= _stakedAmount) { _difference = SafeMath.sub(_stakedAmount, _amount); contractValue = contractValue.sub(_difference); _difference = (_difference.mul(magnitude)) / tokenPrice; tokenSupply = SafeMath.sub(tokenSupply, _difference); tokenBalanceLedger[msg.sender] = SafeMath.sub(tokenBalanceLedger[msg.sender], _difference); emit Transfer(msg.sender, address(0), _difference); } else if (_amount > _stakedAmount) { _difference = SafeMath.sub(_amount, _stakedAmount); _difference = purchaseTokens(msg.sender, _difference); } totalStakeBalance = SafeMath.sub(totalStakeBalance, _stakedAmount); playerStats[msg.sender].activeStakes -= 1; lockedHexBalanceLedger[msg.sender] = SafeMath.sub(lockedHexBalanceLedger[msg.sender], _stakedAmount); emit onStakeEnd(msg.sender, _uniqueID, _amount, _difference, now); } function setName(string _name) onlyOwner public { name = _name; } function setSymbol(string _symbol) onlyOwner public { symbol = _symbol; } function setHexStaking(bool _stakeActivated) onlyOwner public { stakeActivated = _stakeActivated; } function totalHexBalance() public view returns (uint256) { return erc20.balanceOf(address(this)); } function totalSupply() public view returns(uint256) { return tokenSupply; } function myTokens(bool _stakeable) public view returns (uint256) { address _customerAddress = msg.sender; return balanceOf(_customerAddress, _stakeable); } function balanceOf(address _customerAddress, bool _stakeable) public view returns (uint256) { if (_stakeable == false) { return tokenBalanceLedger[_customerAddress]; } else if (_stakeable == true) { uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(magnitude)) / tokenPrice; return (tokenBalanceLedger[_customerAddress].sub(_lockedToken)); } } function sellPrice(bool _includeFees) public view returns (uint256) { uint256 _fee = 0; if (_includeFees) { _fee = tokenPrice.mul(sellOutFee).div(100); } return (tokenPrice.sub(_fee)); } function buyPrice(bool _includeFees) public view returns(uint256) { uint256 _fee = 0; uint256 _devFee = 0; uint256 _hexTewFee = 0; if (_includeFees) { _fee = tokenPrice.mul(buyInFee).div(100); _devFee = tokenPrice.mul(devFee).div(100); _hexTewFee = tokenPrice.mul(hexTewFee).div(100); } return (tokenPrice.add(_fee).add(_devFee).add(_hexTewFee)); } function calculateTokensReceived(uint256 _hexToSpend, bool _includeFees) public view returns (uint256) { uint256 _fee = 0; uint256 _devFee = 0; uint256 _hexTewFee = 0; if (_includeFees) { _fee = _hexToSpend.mul(buyInFee).div(100); _devFee = _hexToSpend.mul(devFee).div(100); _hexTewFee = _hexToSpend.mul(hexTewFee).div(100); } uint256 _taxedHEX = _hexToSpend.sub(_fee).sub(_devFee).sub(_hexTewFee); uint256 _amountOfTokens = (_taxedHEX.mul(magnitude)) / tokenPrice; return _amountOfTokens; } function hexBalanceOf(address _customerAddress, bool _stakeable) public view returns(uint256) { uint256 _price = sellPrice(true); uint256 _balance = balanceOf(_customerAddress, _stakeable); uint256 _value = (_balance.mul(_price)) / magnitude; return _value; } function hexBalanceOfNoFee(address _customerAddress, bool _stakeable) public view returns(uint256) { uint256 _price = sellPrice(false); uint256 _balance = balanceOf(_customerAddress, _stakeable); uint256 _value = (_balance.mul(_price)) / magnitude; return _value; } function hexToSendFund() public view returns(uint256) { return totalFundCollected.sub(totalFundReceived); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_includeFees","type":"bool"}],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHexBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFundReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"appreciateTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedHexBalanceLedger","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"stakeLists","outputs":[{"name":"stakeID","type":"uint40"},{"name":"hexAmount","type":"uint256"},{"name":"stakeShares","type":"uint72"},{"name":"lockedDay","type":"uint16"},{"name":"stakedDays","type":"uint16"},{"name":"unlockedDay","type":"uint16"},{"name":"started","type":"bool"},{"name":"ended","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakeBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFundCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_hexToSpend","type":"uint256"},{"name":"_includeFees","type":"bool"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakeActivated","type":"bool"}],"name":"setHexStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_days","type":"uint256"}],"name":"stakeStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_stakeable","type":"bool"}],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeFees","type":"bool"}],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_stakeable","type":"bool"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"payFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_stakeable","type":"bool"}],"name":"hexBalanceOfNoFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_stakeIndex","type":"uint256"},{"name":"_stakeIdParam","type":"uint40"},{"name":"_uniqueID","type":"uint256"}],"name":"_stakeEnd","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"playerStats","outputs":[{"name":"deposits","type":"uint256"},{"name":"withdrawals","type":"uint256"},{"name":"staked","type":"uint256"},{"name":"activeStakes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_stakeable","type":"bool"}],"name":"hexBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hexToSendFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakeIndex","type":"uint256"},{"name":"_stakeIdParam","type":"uint40"},{"name":"_uniqueID","type":"uint256"}],"name":"stakeEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingHEX","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"hexEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenPrice","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenAppreciation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"uniqueID","type":"uint256"},{"indexed":false,"name":"currentTokens","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onStakeStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"uniqueID","type":"uint256"},{"indexed":false,"name":"returnAmount","type":"uint256"},{"indexed":false,"name":"difference","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onStakeEnd","type":"event"}]
Contract Creation Code
635e51c08060015560c0604052600760808190527f484558524953450000000000000000000000000000000000000000000000000060a09081526200004891600291906200015c565b506040805180820190915260048082527f484558330000000000000000000000000000000000000000000000000000000060209092019182526200008f916003916200015c565b506000600781905560088190556009819055600a819055600b819055600c819055600d556305f5e100600e556010805460a060020a60ff02191674010000000000000000000000000000000000000000179055348015620000ef57600080fd5b5060008054600160a060020a031990811673aefeb36820bd832038e8e4f73edbd5f48d3b4e5017909155600f8054821673d495cc8c7c29c7fa3e027a5759561ab68c36360917905560108054909116732b591e99afe9f32eaa6214f7b7629768c40eeb3917905562000201565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019f57805160ff1916838001178555620001cf565b82800160010185558215620001cf579182015b82811115620001cf578251825591602001919060010190620001b2565b50620001dd929150620001e1565b5090565b620001fe91905b80821115620001dd5760008155600101620001e8565b90565b6128a380620002116000396000f3006080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305a3f88581146101b057806306fdde03146101dc5780630b9c51b114610266578063171b846f1461027b57806318160ddd1461029057806320b48517146102a557806321c7f162146102bf5780632607443b146102e0578063313ce5671461036157806334949cc11461038c57806334ecfbb8146103a1578063386b3d90146103b65780634b82cab7146103d357806352a438b8146103ed57806362cc2cfe14610408578063667e460614610422578063772865e21461043c5780638974372d146104625780638da5cb5b1461047757806395d89b41146104a85780639cdb88f9146104bd578063a3a8573a146104e3578063a9059cbb14610507578063b60126551461053f578063b84c82461461057b578063c47f0027146105d4578063c494a0801461062d578063cdafbbb614610642578063d96a094a14610689578063e4849b32146106a1578063e7fa534e146106b9578063ee2ac05f146106df578063ee80daf4146106f4578063feed18ff14610709575b600080fd5b3480156101bc57600080fd5b506101ca600435151561072e565b60408051918252519081900360200190f35b3480156101e857600080fd5b506101f161077b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022b578181015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b506101ca610806565b34801561028757600080fd5b506101ca61089d565b34801561029c57600080fd5b506101ca6108a3565b3480156102b157600080fd5b506102bd6004356108a9565b005b3480156102cb57600080fd5b506101ca600160a060020a0360043516610a05565b3480156102ec57600080fd5b50610304600160a060020a0360043516602435610a17565b6040805164ffffffffff9099168952602089019790975268ffffffffffffffffff9095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b34801561036d57600080fd5b50610376610abd565b6040805160ff9092168252519081900360200190f35b34801561039857600080fd5b506101ca610ac2565b3480156103ad57600080fd5b506101ca610ac8565b3480156103c257600080fd5b506101ca6004356024351515610ace565b3480156103df57600080fd5b506102bd6004351515610b76565b3480156103f957600080fd5b506102bd600435602435610bcd565b34801561041457600080fd5b506101ca60043515156111b1565b34801561042e57600080fd5b506101ca60043515156111be565b34801561044857600080fd5b506101ca600160a060020a03600435166024351515611255565b34801561046e57600080fd5b506102bd6112fb565b34801561048357600080fd5b5061048c61146d565b60408051600160a060020a039092168252519081900360200190f35b3480156104b457600080fd5b506101f161147c565b3480156104c957600080fd5b506101ca600160a060020a036004351660243515156114d7565b3480156104ef57600080fd5b506101ca600435600160a060020a036024351661151e565b34801561051357600080fd5b5061052b600160a060020a036004351660243561153c565b604080519115158252519081900360200190f35b34801561054b57600080fd5b5061056460043564ffffffffff6024351660443561178e565b6040805161ffff9092168252519081900360200190f35b34801561058757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bd943694929360249392840191908190840183828082843750949750611a6c9650505050505050565b3480156105e057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bd943694929360249392840191908190840183828082843750949750611a9a9650505050505050565b34801561063957600080fd5b506101ca611ac4565b34801561064e57600080fd5b50610663600160a060020a0360043516611aca565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561069557600080fd5b506101ca600435611af1565b3480156106ad57600080fd5b506102bd600435611b06565b3480156106c557600080fd5b506101ca600160a060020a03600435166024351515611e17565b3480156106eb57600080fd5b506101ca611e27565b34801561070057600080fd5b506101ca611e2d565b34801561071557600080fd5b506102bd60043564ffffffffff60243516604435611e4b565b600080821561076157600e5461075e9060649061075290600463ffffffff61233a16565b9063ffffffff61236316565b90505b600e54610774908263ffffffff61237816565b9392505050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107fe5780601f106107d3576101008083540402835291602001916107fe565b820191906000526020600020905b8154815290600101906020018083116107e157829003601f168201915b505050505081565b601054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561086b57600080fd5b505af115801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b505190505b90565b600a5481565b600c5490565b6001544210156108b857600080fd5b60015460780142116108d65764174876e8003a11156108d657600080fd5b6000811161094557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6d757374206265206120706f7369746976652076616c75650000000000000000604482015290519081900360640190fd5b61094e8161238a565b600d54610961908263ffffffff61249c16565b600d556009805482019055600c546305f5e10010156109a257600c54600d54610994906305f5e10063ffffffff61233a16565b81151561099d57fe5b04600e555b60408051828152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a150565b60056020526000908152604090205481565b601160209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff909116919068ffffffffffffffffff81169061ffff690100000000000000000082048116916b01000000000000000000000081048216916d01000000000000000000000000008204169060ff6f01000000000000000000000000000000820481169170010000000000000000000000000000000090041688565b600881565b60075481565b600b5481565b600080808080808615610b2457610af160646107528a600463ffffffff61233a16565b9450610b0960646107528a600163ffffffff61233a16565b9350610b2160646107528a600163ffffffff61233a16565b92505b610b4683610b3a86818c8a63ffffffff61237816565b9063ffffffff61237816565b600e54909250610b60836305f5e10063ffffffff61233a16565b811515610b6957fe5b0498975050505050505050565b600054600160a060020a03163314610b8d57600080fd5b60108054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600080600080600080601060149054906101000a900460ff16151560011515141515610bf857600080fd5b68ffffffffffffffffff881115610c0e57600080fd5b87610c1a3360016114d7565b1015610c2557600080fd5b601054604080517f52a438b8000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a90529051600160a060020a03909216916352a438b89160448082019260009290919082900301818387803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b5050601054604080517f33060d900000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0390921693506333060d9092506024808201926020929091908290030181600087803b158015610d1057600080fd5b505af1158015610d24573d6000803e3d6000fd5b505050506040513d6020811015610d3a57600080fd5b50519550610d49866001612378565b601054604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929850600160a060020a0390911691632607443b9160448082019260e0929091908290030181600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d60e0811015610de357600080fd5b508051604080830151606084015160809094015182517b0100000000000000000000000000000000000000000000000000000064ffffffffff8616026020828101919091527701000000000000000000000000000000000000000000000068ffffffffffffffffff85160260258301528451600e818403018152602e909201948590528151959b509299509497509550909182918401908083835b60208310610e9d5780518252601f199092019160209182019101610e7e565b51815160209384036101000a600019018019909216911617905260408051929094018290039091203360009081526011835284812082825290925292902060020154919450506f01000000000000000000000000000000900460ff16159150610f07905057600080fd5b60016011600033600160a060020a0316600160a060020a031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff021916908315150217905550610100604051908101604052808664ffffffffff1681526020018981526020018568ffffffffffffffffff1681526020018461ffff1681526020018361ffff168152602001600061ffff168152602001600115158152602001600015158152506011600033600160a060020a0316600160a060020a03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a81548168ffffffffffffffffff021916908368ffffffffffffffffff16021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555090505061110b6007548961249c565b600755336000908152600660209081526040808320600381018054600101905560020180548c0190556005909152902054611146908961249c565b33600081815260056020526040812092909255907fa1b3ce42ae14b20db76f482a3801388c971b15477c77c380941e9f2e6c088731908390611189908c90610ace565b6040805192835260208301919091524282820152519081900360600190a25050505050505050565b6000336107748184611255565b6000808080841561122357600e546111e49060649061075290600463ffffffff61233a16565b600e549093506112029060649061075290600163ffffffff61233a16565b600e549092506112209060649061075290600163ffffffff61233a16565b90505b61124c816112408461124087600e5461249c90919063ffffffff16565b9063ffffffff61249c16565b95945050505050565b60008082151561127f57600160a060020a03841660009081526004602052604090205491506112f4565b600183151514156112f457600e54600160a060020a0385166000908152600560205260409020546112ba906305f5e10063ffffffff61233a16565b8115156112c357fe5b600160a060020a03861660009081526004602052604090205491900491506112f1908263ffffffff61237816565b91505b5092915050565b6000611314600a54600b5461237890919063ffffffff16565b90506000811161132357600080fd5b600a54611336908263ffffffff61249c16565b600a55601054600f54604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156113ab57600080fd5b505af11580156113bf573d6000803e3d6000fd5b505050506040513d60208110156113d557600080fd5b5050600f54604080517f91c05b0b000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916391c05b0b916024808201926020929091908290030181600087803b15801561143e57600080fd5b505af1158015611452573d6000803e3d6000fd5b505050506040513d602081101561146857600080fd5b505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107fe5780601f106107d3576101008083540402835291602001916107fe565b6000806000806114e7600061072e565b92506114f38686611255565b91506305f5e10061150a838563ffffffff61233a16565b81151561151357fe5b049695505050505050565b60006115298361238a565b61153382846124a9565b90505b92915050565b6000806000806000600154421015151561155557600080fd5b60015460780142116115735764174876e8003a111561157357600080fd5b600061157f60016111b1565b1161158957600080fd5b600e54336000818152600560205260409020549095506115b3906305f5e10063ffffffff61233a16565b8115156115bc57fe5b0492506000861180156115f75750600160a060020a0384166000908152600460205260409020546115f3908463ffffffff61237816565b8611155b151561160257600080fd5b611618606461075288600163ffffffff61233a16565b915061162a868363ffffffff61237816565b600160a060020a038516600090815260046020526040902054909150611656908763ffffffff61237816565b600160a060020a03808616600090815260046020526040808220939093559089168152205461168b908263ffffffff61249c16565b600160a060020a038816600090815260046020526040902055600c546116b7908363ffffffff61237816565b600c8190556305f5e10010156116ef57600c54600d546116e1906305f5e10063ffffffff61233a16565b8115156116ea57fe5b04600e555b604080518381529051600091600160a060020a038716916000805160206128588339815191529181900360200190a386600160a060020a031684600160a060020a0316600080516020612858833981519152836040518082815260200191505060405180910390a3600e546040805191825242602083015280516000805160206128388339815191529281900390910190a15060019695505050505050565b601054604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018690529051600092839283928392839283928392600160a060020a031691632607443b9160448083019260e092919082900301818787803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d60e081101561183057600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b505050505050506011600033600160a060020a0316600160a060020a031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff1615156001151514801561192257503360009081526011602090815260408083208b8452909152902060020154700100000000000000000000000000000000900460ff16155b151561192d57600080fd5b3360009081526011602090815260408083208b845290915290205464ffffffffff8a8116911614801561196d57508564ffffffffff168964ffffffffff16145b151561197857600080fd5b3360009081526011602090815260408083208b845290915290206001015468ffffffffffffffffff8616146119ac57600080fd5b3360009081526011602090815260408083208b845290915290206002015468ffffffffffffffffff8581169116146119e357600080fd5b3360009081526011602090815260408083208b845290915290206002015461ffff84811669010000000000000000009092041614611a2057600080fd5b3360009081526011602090815260408083208b845290915290206002015461ffff8381166b0100000000000000000000009092041614611a5f57600080fd5b9998505050505050505050565b600054600160a060020a03163314611a8357600080fd5b8051611a9690600390602084019061279f565b5050565b600054600160a060020a03163314611ab157600080fd5b8051611a9690600290602084019061279f565b60085481565b60066020526000908152604090208054600182015460028301546003909301549192909184565b6000611afc8261238a565b61153633836124a9565b6000806000806001544210151515611b1d57600080fd5b6001546078014211611b3b5764174876e8003a1115611b3b57600080fd5b6000611b4760016111b1565b11611b5157600080fd5b600e5433600081815260056020526040902054909550611b7b906305f5e10063ffffffff61233a16565b811515611b8457fe5b049250600085118015611bbf5750600160a060020a038416600090815260046020526040902054611bbb908463ffffffff61237816565b8511155b1515611bca57600080fd5b611be76305f5e100610752600e548861233a90919063ffffffff16565b9150611bff606461075284600463ffffffff61233a16565b600c54909150611c15908663ffffffff61237816565b600c55600160a060020a038416600090815260046020526040902054611c41908663ffffffff61237816565b600160a060020a038516600090815260046020526040902055611c6a828263ffffffff61237816565b600d54909250611c80908363ffffffff61237816565b600d55600c546305f5e1001015611cb957600c54600d54611cab906305f5e10063ffffffff61233a16565b811515611cb457fe5b04600e555b601054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d2857600080fd5b505af1158015611d3c573d6000803e3d6000fd5b505050506040513d6020811015611d5257600080fd5b5050600160a060020a038416600081815260066020908152604080832060010180548701905580518981529051929392600080516020612858833981519152929181900390910190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a15050505050565b6000806000806114e7600161072e565b60095481565b6000611e46600a54600b5461237890919063ffffffff16565b905090565b6000806000806000611e5e88888861178e565b945061ffff85161515611f5757601060009054906101000a9004600160a060020a0316600160a060020a0316635c9302c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b505050506040513d6020811015611f0157600080fd5b50513360009081526011602090815260408083208a84529091529020600201805461ffff9092166d0100000000000000000000000000026effff0000000000000000000000000019909216919091179055611fa1565b336000908152601160209081526040808320898452909152902060020180546effff0000000000000000000000000019166d010000000000000000000000000061ffff8816021790555b601054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561200757600080fd5b505af115801561201b573d6000803e3d6000fd5b505050506040513d602081101561203157600080fd5b5051601054604080517f343009a2000000000000000000000000000000000000000000000000000000008152600481018c905264ffffffffff8b1660248201529051929650600160a060020a039091169163343009a29160448082019260009290919082900301818387803b1580156120a957600080fd5b505af11580156120bd573d6000803e3d6000fd5b50503360009081526011602090815260408083208b84528252808320600201805470ff00000000000000000000000000000000191670010000000000000000000000000000000017905560105481517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152915161219f9650600160a060020a039190911694506370a0823193602480840194938390030190829087803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b505185612378565b3360009081526011602090815260408083208a84529091529020600101549093509150818311612275576121d38284612378565b600d549091506121e9908263ffffffff61237816565b600d55600e54612203826305f5e10063ffffffff61233a16565b81151561220c57fe5b04905061221b600c5482612378565b600c55336000908152600460205260409020546122389082612378565b33600081815260046020908152604080832094909455835185815293519193600080516020612858833981519152929081900390910190a3612296565b81831115612296576122878383612378565b905061229333826124a9565b90505b6122a260075483612378565b600755336000908152600660209081526040808320600301805460001901905560059091529020546122d49083612378565b336000818152600560209081526040918290209390935580518981529283018690528281018490524260608401525190917f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba248919081900360800190a25050505050505050565b600082151561234b57506000611536565b5081810281838281151561235b57fe5b041461153657fe5b6000818381151561237057fe5b049392505050565b60008282111561238457fe5b50900390565b601054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156123fd57600080fd5b505af1158015612411573d6000803e3d6000fd5b505050506040513d602081101561242757600080fd5b5051151560011461249957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b8181018281101561153657fe5b600080600080600060015442101515156124c257600080fd5b60015460780142116124e05764174876e8003a11156124e057600080fd5b600160a060020a0387166000908152600660205260409020541515612509576008805460010190555b600160a060020a0387166000908152600660205260408120805488019055861161253257600080fd5b612548606461075288600163ffffffff61233a16565b9350612560606461075288600163ffffffff61233a16565b9250612578606461075288600463ffffffff61233a16565b60005490925061259190600160a060020a0316856126be565b50600b546125a5908463ffffffff61249c16565b600b556125c7876125c285610b3a88818c8963ffffffff61237816565b6126be565b90506125eb6125dc878563ffffffff61237816565b600d549063ffffffff61249c16565b600d5564e8d4a510006125fc611e2d565b10612609576126096112fb565b6305f5e100600c54111561263f57600c54600d54612631906305f5e10063ffffffff61233a16565b81151561263a57fe5b04600e555b604080518781526020810183905242818301529051600160a060020a038916917f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c205019919081900360600190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a19695505050505050565b600e5460009081906126da846305f5e10063ffffffff61233a16565b8115156126e357fe5b0490506000811180156127065750600c54612704828263ffffffff61249c16565b115b151561271157600080fd5b600160a060020a03841660009081526004602052604090205461273a908263ffffffff61249c16565b600160a060020a038516600090815260046020526040902055600c54612766908263ffffffff61249c16565b600c55604080518281529051600160a060020a038616916000916000805160206128588339815191529181900360200190a39392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127e057805160ff191683800117855561280d565b8280016001018555821561280d579182015b8281111561280d5782518255916020019190600101906127f2565b5061281992915061281d565b5090565b61089a91905b80821115612819576000815560010161282356000d257a4fe7c6968563ed5ac588cf5b4ddb95868eb9b8fe412c2000cb6f2843acddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820f12424168afbdea4a3c620fe797778cbbc88a78473ecac9131e22173da2668fd0029
Deployed Bytecode
0x6080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305a3f88581146101b057806306fdde03146101dc5780630b9c51b114610266578063171b846f1461027b57806318160ddd1461029057806320b48517146102a557806321c7f162146102bf5780632607443b146102e0578063313ce5671461036157806334949cc11461038c57806334ecfbb8146103a1578063386b3d90146103b65780634b82cab7146103d357806352a438b8146103ed57806362cc2cfe14610408578063667e460614610422578063772865e21461043c5780638974372d146104625780638da5cb5b1461047757806395d89b41146104a85780639cdb88f9146104bd578063a3a8573a146104e3578063a9059cbb14610507578063b60126551461053f578063b84c82461461057b578063c47f0027146105d4578063c494a0801461062d578063cdafbbb614610642578063d96a094a14610689578063e4849b32146106a1578063e7fa534e146106b9578063ee2ac05f146106df578063ee80daf4146106f4578063feed18ff14610709575b600080fd5b3480156101bc57600080fd5b506101ca600435151561072e565b60408051918252519081900360200190f35b3480156101e857600080fd5b506101f161077b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022b578181015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b506101ca610806565b34801561028757600080fd5b506101ca61089d565b34801561029c57600080fd5b506101ca6108a3565b3480156102b157600080fd5b506102bd6004356108a9565b005b3480156102cb57600080fd5b506101ca600160a060020a0360043516610a05565b3480156102ec57600080fd5b50610304600160a060020a0360043516602435610a17565b6040805164ffffffffff9099168952602089019790975268ffffffffffffffffff9095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b34801561036d57600080fd5b50610376610abd565b6040805160ff9092168252519081900360200190f35b34801561039857600080fd5b506101ca610ac2565b3480156103ad57600080fd5b506101ca610ac8565b3480156103c257600080fd5b506101ca6004356024351515610ace565b3480156103df57600080fd5b506102bd6004351515610b76565b3480156103f957600080fd5b506102bd600435602435610bcd565b34801561041457600080fd5b506101ca60043515156111b1565b34801561042e57600080fd5b506101ca60043515156111be565b34801561044857600080fd5b506101ca600160a060020a03600435166024351515611255565b34801561046e57600080fd5b506102bd6112fb565b34801561048357600080fd5b5061048c61146d565b60408051600160a060020a039092168252519081900360200190f35b3480156104b457600080fd5b506101f161147c565b3480156104c957600080fd5b506101ca600160a060020a036004351660243515156114d7565b3480156104ef57600080fd5b506101ca600435600160a060020a036024351661151e565b34801561051357600080fd5b5061052b600160a060020a036004351660243561153c565b604080519115158252519081900360200190f35b34801561054b57600080fd5b5061056460043564ffffffffff6024351660443561178e565b6040805161ffff9092168252519081900360200190f35b34801561058757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bd943694929360249392840191908190840183828082843750949750611a6c9650505050505050565b3480156105e057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bd943694929360249392840191908190840183828082843750949750611a9a9650505050505050565b34801561063957600080fd5b506101ca611ac4565b34801561064e57600080fd5b50610663600160a060020a0360043516611aca565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561069557600080fd5b506101ca600435611af1565b3480156106ad57600080fd5b506102bd600435611b06565b3480156106c557600080fd5b506101ca600160a060020a03600435166024351515611e17565b3480156106eb57600080fd5b506101ca611e27565b34801561070057600080fd5b506101ca611e2d565b34801561071557600080fd5b506102bd60043564ffffffffff60243516604435611e4b565b600080821561076157600e5461075e9060649061075290600463ffffffff61233a16565b9063ffffffff61236316565b90505b600e54610774908263ffffffff61237816565b9392505050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107fe5780601f106107d3576101008083540402835291602001916107fe565b820191906000526020600020905b8154815290600101906020018083116107e157829003601f168201915b505050505081565b601054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561086b57600080fd5b505af115801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b505190505b90565b600a5481565b600c5490565b6001544210156108b857600080fd5b60015460780142116108d65764174876e8003a11156108d657600080fd5b6000811161094557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6d757374206265206120706f7369746976652076616c75650000000000000000604482015290519081900360640190fd5b61094e8161238a565b600d54610961908263ffffffff61249c16565b600d556009805482019055600c546305f5e10010156109a257600c54600d54610994906305f5e10063ffffffff61233a16565b81151561099d57fe5b04600e555b60408051828152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a150565b60056020526000908152604090205481565b601160209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff909116919068ffffffffffffffffff81169061ffff690100000000000000000082048116916b01000000000000000000000081048216916d01000000000000000000000000008204169060ff6f01000000000000000000000000000000820481169170010000000000000000000000000000000090041688565b600881565b60075481565b600b5481565b600080808080808615610b2457610af160646107528a600463ffffffff61233a16565b9450610b0960646107528a600163ffffffff61233a16565b9350610b2160646107528a600163ffffffff61233a16565b92505b610b4683610b3a86818c8a63ffffffff61237816565b9063ffffffff61237816565b600e54909250610b60836305f5e10063ffffffff61233a16565b811515610b6957fe5b0498975050505050505050565b600054600160a060020a03163314610b8d57600080fd5b60108054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600080600080600080601060149054906101000a900460ff16151560011515141515610bf857600080fd5b68ffffffffffffffffff881115610c0e57600080fd5b87610c1a3360016114d7565b1015610c2557600080fd5b601054604080517f52a438b8000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a90529051600160a060020a03909216916352a438b89160448082019260009290919082900301818387803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b5050601054604080517f33060d900000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0390921693506333060d9092506024808201926020929091908290030181600087803b158015610d1057600080fd5b505af1158015610d24573d6000803e3d6000fd5b505050506040513d6020811015610d3a57600080fd5b50519550610d49866001612378565b601054604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929850600160a060020a0390911691632607443b9160448082019260e0929091908290030181600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d60e0811015610de357600080fd5b508051604080830151606084015160809094015182517b0100000000000000000000000000000000000000000000000000000064ffffffffff8616026020828101919091527701000000000000000000000000000000000000000000000068ffffffffffffffffff85160260258301528451600e818403018152602e909201948590528151959b509299509497509550909182918401908083835b60208310610e9d5780518252601f199092019160209182019101610e7e565b51815160209384036101000a600019018019909216911617905260408051929094018290039091203360009081526011835284812082825290925292902060020154919450506f01000000000000000000000000000000900460ff16159150610f07905057600080fd5b60016011600033600160a060020a0316600160a060020a031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff021916908315150217905550610100604051908101604052808664ffffffffff1681526020018981526020018568ffffffffffffffffff1681526020018461ffff1681526020018361ffff168152602001600061ffff168152602001600115158152602001600015158152506011600033600160a060020a0316600160a060020a03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a81548168ffffffffffffffffff021916908368ffffffffffffffffff16021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555090505061110b6007548961249c565b600755336000908152600660209081526040808320600381018054600101905560020180548c0190556005909152902054611146908961249c565b33600081815260056020526040812092909255907fa1b3ce42ae14b20db76f482a3801388c971b15477c77c380941e9f2e6c088731908390611189908c90610ace565b6040805192835260208301919091524282820152519081900360600190a25050505050505050565b6000336107748184611255565b6000808080841561122357600e546111e49060649061075290600463ffffffff61233a16565b600e549093506112029060649061075290600163ffffffff61233a16565b600e549092506112209060649061075290600163ffffffff61233a16565b90505b61124c816112408461124087600e5461249c90919063ffffffff16565b9063ffffffff61249c16565b95945050505050565b60008082151561127f57600160a060020a03841660009081526004602052604090205491506112f4565b600183151514156112f457600e54600160a060020a0385166000908152600560205260409020546112ba906305f5e10063ffffffff61233a16565b8115156112c357fe5b600160a060020a03861660009081526004602052604090205491900491506112f1908263ffffffff61237816565b91505b5092915050565b6000611314600a54600b5461237890919063ffffffff16565b90506000811161132357600080fd5b600a54611336908263ffffffff61249c16565b600a55601054600f54604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156113ab57600080fd5b505af11580156113bf573d6000803e3d6000fd5b505050506040513d60208110156113d557600080fd5b5050600f54604080517f91c05b0b000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916391c05b0b916024808201926020929091908290030181600087803b15801561143e57600080fd5b505af1158015611452573d6000803e3d6000fd5b505050506040513d602081101561146857600080fd5b505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107fe5780601f106107d3576101008083540402835291602001916107fe565b6000806000806114e7600061072e565b92506114f38686611255565b91506305f5e10061150a838563ffffffff61233a16565b81151561151357fe5b049695505050505050565b60006115298361238a565b61153382846124a9565b90505b92915050565b6000806000806000600154421015151561155557600080fd5b60015460780142116115735764174876e8003a111561157357600080fd5b600061157f60016111b1565b1161158957600080fd5b600e54336000818152600560205260409020549095506115b3906305f5e10063ffffffff61233a16565b8115156115bc57fe5b0492506000861180156115f75750600160a060020a0384166000908152600460205260409020546115f3908463ffffffff61237816565b8611155b151561160257600080fd5b611618606461075288600163ffffffff61233a16565b915061162a868363ffffffff61237816565b600160a060020a038516600090815260046020526040902054909150611656908763ffffffff61237816565b600160a060020a03808616600090815260046020526040808220939093559089168152205461168b908263ffffffff61249c16565b600160a060020a038816600090815260046020526040902055600c546116b7908363ffffffff61237816565b600c8190556305f5e10010156116ef57600c54600d546116e1906305f5e10063ffffffff61233a16565b8115156116ea57fe5b04600e555b604080518381529051600091600160a060020a038716916000805160206128588339815191529181900360200190a386600160a060020a031684600160a060020a0316600080516020612858833981519152836040518082815260200191505060405180910390a3600e546040805191825242602083015280516000805160206128388339815191529281900390910190a15060019695505050505050565b601054604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018690529051600092839283928392839283928392600160a060020a031691632607443b9160448083019260e092919082900301818787803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d60e081101561183057600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b505050505050506011600033600160a060020a0316600160a060020a031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff1615156001151514801561192257503360009081526011602090815260408083208b8452909152902060020154700100000000000000000000000000000000900460ff16155b151561192d57600080fd5b3360009081526011602090815260408083208b845290915290205464ffffffffff8a8116911614801561196d57508564ffffffffff168964ffffffffff16145b151561197857600080fd5b3360009081526011602090815260408083208b845290915290206001015468ffffffffffffffffff8616146119ac57600080fd5b3360009081526011602090815260408083208b845290915290206002015468ffffffffffffffffff8581169116146119e357600080fd5b3360009081526011602090815260408083208b845290915290206002015461ffff84811669010000000000000000009092041614611a2057600080fd5b3360009081526011602090815260408083208b845290915290206002015461ffff8381166b0100000000000000000000009092041614611a5f57600080fd5b9998505050505050505050565b600054600160a060020a03163314611a8357600080fd5b8051611a9690600390602084019061279f565b5050565b600054600160a060020a03163314611ab157600080fd5b8051611a9690600290602084019061279f565b60085481565b60066020526000908152604090208054600182015460028301546003909301549192909184565b6000611afc8261238a565b61153633836124a9565b6000806000806001544210151515611b1d57600080fd5b6001546078014211611b3b5764174876e8003a1115611b3b57600080fd5b6000611b4760016111b1565b11611b5157600080fd5b600e5433600081815260056020526040902054909550611b7b906305f5e10063ffffffff61233a16565b811515611b8457fe5b049250600085118015611bbf5750600160a060020a038416600090815260046020526040902054611bbb908463ffffffff61237816565b8511155b1515611bca57600080fd5b611be76305f5e100610752600e548861233a90919063ffffffff16565b9150611bff606461075284600463ffffffff61233a16565b600c54909150611c15908663ffffffff61237816565b600c55600160a060020a038416600090815260046020526040902054611c41908663ffffffff61237816565b600160a060020a038516600090815260046020526040902055611c6a828263ffffffff61237816565b600d54909250611c80908363ffffffff61237816565b600d55600c546305f5e1001015611cb957600c54600d54611cab906305f5e10063ffffffff61233a16565b811515611cb457fe5b04600e555b601054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d2857600080fd5b505af1158015611d3c573d6000803e3d6000fd5b505050506040513d6020811015611d5257600080fd5b5050600160a060020a038416600081815260066020908152604080832060010180548701905580518981529051929392600080516020612858833981519152929181900390910190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a15050505050565b6000806000806114e7600161072e565b60095481565b6000611e46600a54600b5461237890919063ffffffff16565b905090565b6000806000806000611e5e88888861178e565b945061ffff85161515611f5757601060009054906101000a9004600160a060020a0316600160a060020a0316635c9302c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b505050506040513d6020811015611f0157600080fd5b50513360009081526011602090815260408083208a84529091529020600201805461ffff9092166d0100000000000000000000000000026effff0000000000000000000000000019909216919091179055611fa1565b336000908152601160209081526040808320898452909152902060020180546effff0000000000000000000000000019166d010000000000000000000000000061ffff8816021790555b601054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561200757600080fd5b505af115801561201b573d6000803e3d6000fd5b505050506040513d602081101561203157600080fd5b5051601054604080517f343009a2000000000000000000000000000000000000000000000000000000008152600481018c905264ffffffffff8b1660248201529051929650600160a060020a039091169163343009a29160448082019260009290919082900301818387803b1580156120a957600080fd5b505af11580156120bd573d6000803e3d6000fd5b50503360009081526011602090815260408083208b84528252808320600201805470ff00000000000000000000000000000000191670010000000000000000000000000000000017905560105481517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152915161219f9650600160a060020a039190911694506370a0823193602480840194938390030190829087803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b505185612378565b3360009081526011602090815260408083208a84529091529020600101549093509150818311612275576121d38284612378565b600d549091506121e9908263ffffffff61237816565b600d55600e54612203826305f5e10063ffffffff61233a16565b81151561220c57fe5b04905061221b600c5482612378565b600c55336000908152600460205260409020546122389082612378565b33600081815260046020908152604080832094909455835185815293519193600080516020612858833981519152929081900390910190a3612296565b81831115612296576122878383612378565b905061229333826124a9565b90505b6122a260075483612378565b600755336000908152600660209081526040808320600301805460001901905560059091529020546122d49083612378565b336000818152600560209081526040918290209390935580518981529283018690528281018490524260608401525190917f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba248919081900360800190a25050505050505050565b600082151561234b57506000611536565b5081810281838281151561235b57fe5b041461153657fe5b6000818381151561237057fe5b049392505050565b60008282111561238457fe5b50900390565b601054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156123fd57600080fd5b505af1158015612411573d6000803e3d6000fd5b505050506040513d602081101561242757600080fd5b5051151560011461249957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b8181018281101561153657fe5b600080600080600060015442101515156124c257600080fd5b60015460780142116124e05764174876e8003a11156124e057600080fd5b600160a060020a0387166000908152600660205260409020541515612509576008805460010190555b600160a060020a0387166000908152600660205260408120805488019055861161253257600080fd5b612548606461075288600163ffffffff61233a16565b9350612560606461075288600163ffffffff61233a16565b9250612578606461075288600463ffffffff61233a16565b60005490925061259190600160a060020a0316856126be565b50600b546125a5908463ffffffff61249c16565b600b556125c7876125c285610b3a88818c8963ffffffff61237816565b6126be565b90506125eb6125dc878563ffffffff61237816565b600d549063ffffffff61249c16565b600d5564e8d4a510006125fc611e2d565b10612609576126096112fb565b6305f5e100600c54111561263f57600c54600d54612631906305f5e10063ffffffff61233a16565b81151561263a57fe5b04600e555b604080518781526020810183905242818301529051600160a060020a038916917f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c205019919081900360600190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a19695505050505050565b600e5460009081906126da846305f5e10063ffffffff61233a16565b8115156126e357fe5b0490506000811180156127065750600c54612704828263ffffffff61249c16565b115b151561271157600080fd5b600160a060020a03841660009081526004602052604090205461273a908263ffffffff61249c16565b600160a060020a038516600090815260046020526040902055600c54612766908263ffffffff61249c16565b600c55604080518281529051600160a060020a038616916000916000805160206128588339815191529181900360200190a39392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127e057805160ff191683800117855561280d565b8280016001018555821561280d579182015b8281111561280d5782518255916020019190600101906127f2565b5061281992915061281d565b5090565b61089a91905b80821115612819576000815560010161282356000d257a4fe7c6968563ed5ac588cf5b4ddb95868eb9b8fe412c2000cb6f2843acddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820f12424168afbdea4a3c620fe797778cbbc88a78473ecac9131e22173da2668fd0029
Deployed Bytecode Sourcemap
1842:16172:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4986:8;;;15916:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15916:244:0;;;;;;;;;;;;;;;;;;;;;;;3341:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3341:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3341:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15062:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15062:113:0;;;;4163:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4163:36:0;;;;15183:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15183:89:0;;;;5187:488;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5187:488:0;;;;;;;3787:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3787:57:0;-1:-1:-1;;;;;3787:57:0;;;;;4679:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4679:68:0;-1:-1:-1;;;;;4679:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:34:0;;;;;;;;;;;;;;;;;;;;;;;4044:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4044:36:0;;;;4206:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4206:37:0;;;;16638:618;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16638:618:0;;;;;;;;;14936:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14936:118:0;;;;;;;10437:1429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10437:1429:0;;;;;;;15280:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15280:178:0;;;;;;;16168:462;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16168:462:0;;;;;;;15466:442;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15466:442:0;-1:-1:-1;;;;;15466:442:0;;;;;;;;;5683:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5683:288:0;;;;1639:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1639:20:0;;;;;;;;-1:-1:-1;;;;;1639:20:0;;;;;;;;;;;;;;3378:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3378:29:0;;;;17574:308;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17574:308:0;-1:-1:-1;;;;;17574:308:0;;;;;;;;;6142:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6142:190:0;;;-1:-1:-1;;;;;6142:190:0;;;;;9300:1129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9300:1129:0;-1:-1:-1;;;;;9300:1129:0;;;;;;;;;;;;;;;;;;;;;;;;;11874:1011;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11874:1011:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14836:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14836:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14836:92:0;;-1:-1:-1;14836:92:0;;-1:-1:-1;;;;;;;14836:92:0;14744:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14744:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14744:84:0;;-1:-1:-1;14744:84:0;;-1:-1:-1;;;;;;;14744:84:0;4087:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4087:30:0;;;;3991:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3991:44:0;-1:-1:-1;;;;;3991:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5979:155:0;;;;;8124:1168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8124:1168:0;;;;;17264:302;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17264:302:0;-1:-1:-1;;;;;17264:302:0;;;;;;;;;4124:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4124:32:0;;;;17890:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17890:121:0;;;;12893:1843;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12893:1843:0;;;;;;;;;;;15916:244;15975:7;;16024:87;;;;16064:10;;:35;;16095:3;;16064:26;;3631:1;16064:26;:14;:26;:::i;:::-;:30;:35;:30;:35;:::i;:::-;16057:42;;16024:87;16131:10;;:20;;16146:4;16131:20;:14;:20;:::i;:::-;16123:29;15916:244;-1:-1:-1;;;15916:244:0:o;3341:30::-;;;;;;;;;;;;;;-1:-1:-1;;3341:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15062:113::-;15137:5;;:30;;;;;;15161:4;15137:30;;;;;;15110:7;;-1:-1:-1;;;;;15137:5:0;;:15;;:30;;;;;;;;;;;;;;15110:7;15137:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15137:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15137:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15137:30:0;;-1:-1:-1;15062:113:0;;:::o;4163:36::-;;;;:::o;15183:89::-;15253:11;;15183:89;:::o;5187:488::-;1997:15;;1990:3;:22;;1982:31;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;5282:1;5272:11;;5264:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5323:28;5343:7;5323:19;:28::i;:::-;5378:13;;:26;;5396:7;5378:26;:17;:26;:::i;:::-;5362:13;:42;5415:13;:24;;;;;;5456:11;;3493:3;-1:-1:-1;5452:113:0;;;5542:11;;5510:13;;:28;;3493:3;5510:28;:17;:28;:::i;:::-;5509:44;;;;;;;;5496:10;:57;5452:113;5582:33;;;;;;;;5595:10;;5582:33;;;;;;;;;;5651:10;;5631:36;;;;;;5663:3;5631:36;;;;;;-1:-1:-1;;;;;;;;;;;5631:36:0;;;;;;;;;5187:488;:::o;3787:57::-;;;;;;;;;;;;;:::o;4679:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3414:34::-;3447:1;3414:34;:::o;4044:36::-;;;;:::o;4206:37::-;;;;:::o;16638:618::-;16732:7;;;;;;16844:211;;;;16884:34;16914:3;16884:25;:11;3586:1;16884:25;:15;:25;:::i;:34::-;16877:41;-1:-1:-1;16943:32:0;16971:3;16943:23;:11;3672:1;16943:23;:15;:23;:::i;:32::-;16933:42;-1:-1:-1;17003:35:0;17034:3;17003:26;:11;3716:1;17003:26;:15;:26;:::i;:35::-;16990:48;;16844:211;17087:50;17126:10;17087:34;17113:7;17087:34;:11;17103:4;17087:21;:15;:21;:::i;:::-;:25;:34;:25;:34;:::i;:50::-;17203:10;;17067:70;;-1:-1:-1;17175:24:0;17067:70;3493:3;17175:24;:13;:24;:::i;:::-;17174:39;;;;;;;;;16638:618;-1:-1:-1;;;;;;;;16638:618:0:o;14936:118::-;1815:5;;-1:-1:-1;;;;;1815:5:0;1801:10;:19;1793:28;;;;;;15014:14;:32;;;;;;;-1:-1:-1;;15014:32:0;;;;;;;;;14936:118::o;10437:1429::-;10711:19;10741:15;10767:19;10797:17;10825:18;11076:17;2294:14;;;;;;;;;;;:22;;2312:4;2294:22;;;2286:31;;;;;;;;10543:22;10532:33;;;10524:42;;;;;;10624:7;10585:35;10603:10;10615:4;10585:17;:35::i;:::-;:46;;10577:55;;;;;;10645:5;;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10645:5:0;;;;:16;;:32;;;;;:5;;:32;;;;;;;;:5;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;10645:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10870:5:0;;:31;;;;;;10895:4;10870:31;;;;;;-1:-1:-1;;;;;10870:5:0;;;;-1:-1:-1;10870:16:0;;-1:-1:-1;10870:31:0;;;;;;;;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;10870:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10870:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10870:31:0;;-1:-1:-1;10926:28:0;10870:31;10952:1;10926:12;:28::i;:::-;11019:5;;:44;;;;;;11044:4;11019:44;;;;;;;;;;;;10912:42;;-1:-1:-1;;;;;;11019:5:0;;;;:16;;:44;;;;;;;;;;;;;;;:5;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;11019:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11019:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11019:44:0;;;;;;;;;;;;;;;;11115:40;;;;;;;11019:44;11115:40;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;11115:40:0;;;;;;;;11105:51;;11019:44;;-1:-1:-1;11019:44:0;;-1:-1:-1;11019:44:0;;-1:-1:-1;11019:44:0;-1:-1:-1;11115:40:0;;;;11105:51;;;;11115:40;11105:51;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11105:51:0;;;;;;;;;;;;;11204:10;-1:-1:-1;11193:22:0;;;:10;:22;;;;;:33;;;;;;;;;:41;;;11105:51;;-1:-1:-1;;11193:41:0;;;;;:50;;-1:-1:-1;11185:59:0;;-1:-1:-1;11185:59:0;;;;;11328:4;11284:10;:22;11295:10;-1:-1:-1;;;;;11284:22:0;-1:-1:-1;;;;;11284:22:0;;;;;;;;;;;;:33;11307:9;11284:33;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;11381:92;;;;;;;;;11392:8;11381:92;;;;;;11402:7;11381:92;;;;11411:12;11381:92;;;;;;11425:10;11381:92;;;;;;11437:11;11381:92;;;;;;11457:1;11381:92;;;;;;11461:4;11381:92;;;;;;11467:5;11381:92;;;;;11345:10;:22;11356:10;-1:-1:-1;;;;;11345:22:0;-1:-1:-1;;;;;11345:22:0;;;;;;;;;;;;:33;11368:9;11345:33;;;;;;;;;;;:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11506:40;11519:17;;11538:7;11506:12;:40::i;:::-;11486:17;:60;11571:10;11559:23;;;;:11;:23;;;;;;;;:36;;;:41;;11599:1;11559:41;;;11611:30;;:41;;;;;;11715:22;:34;;;;;;11702:57;;11645:7;11702:12;:57::i;:::-;11688:10;11665:34;;;;:22;:34;;;;;:94;;;;11688:10;11777:81;;11802:9;;11813:39;;11837:7;;11813:23;:39::i;:::-;11777:81;;;;;;;;;;;;;11854:3;11777:81;;;;;;;;;;;;;10437:1429;;;;;;;;:::o;15280:178::-;15336:7;15383:10;15411:39;15383:10;15439;15411:9;:39::i;16168:462::-;16225:7;;;;16337:215;;;;16377:10;;:33;;16406:3;;16377:24;;3586:1;16377:24;:14;:24;:::i;:33::-;16435:10;;16370:40;;-1:-1:-1;16435:31:0;;16462:3;;16435:22;;3672:1;16435:22;:14;:22;:::i;:31::-;16494:10;;16425:41;;-1:-1:-1;16494:34:0;;16524:3;;16494:25;;3716:1;16494:25;:14;:25;:::i;:34::-;16481:47;;16337:215;16572:49;16610:10;16572:33;16597:7;16572:20;16587:4;16572:10;;:14;;:20;;;;:::i;:::-;:24;:33;:24;:33;:::i;:49::-;16564:58;16168:462;-1:-1:-1;;;;;16168:462:0:o;15466:442::-;15549:7;;15573:19;;;15569:332;;-1:-1:-1;;;;;15616:36:0;;;;;;:18;:36;;;;;;;-1:-1:-1;15609:43:0;;15569:332;15697:4;15683:18;;;;15679:222;;;15801:10;;-1:-1:-1;;;;;15742:40:0;;;;;;:22;:40;;;;;;:55;;3493:3;15742:55;:44;:55;:::i;:::-;15741:70;;;;;;;-1:-1:-1;;;;;15834:36:0;;;;;;:18;:36;;;;;;15741:70;;;;-1:-1:-1;15834:54:0;;15741:70;15834:54;:40;:54;:::i;:::-;15826:63;;15679:222;15466:442;;;;;:::o;5683:288::-;5720:17;5740:41;5763:17;;5740:18;;:22;;:41;;;;:::i;:::-;5720:61;-1:-1:-1;5812:1:0;5800:13;;5792:22;;;;;;5845:17;;:32;;5867:9;5845:32;:21;:32;:::i;:::-;5825:17;:52;5888:5;;5902:8;;5888:34;;;;;;-1:-1:-1;;;;;5902:8:0;;;5888:34;;;;;;;;;;;;:5;;;;;:13;;:34;;;;;;;;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;5888:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5888:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;5933:8:0;;:30;;;;;;;;;;;;;;-1:-1:-1;;;;;5933:8:0;;;;:19;;:30;;;;;5888:34;;5933:30;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5933:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5933:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;5683:288:0:o;1639:20::-;;;-1:-1:-1;;;;;1639:20:0;;:::o;3378:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3378:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17574:308;17664:7;17684:14;17728:16;17797:14;17701:16;17711:5;17701:9;:16::i;:::-;17684:33;;17747:39;17757:16;17775:10;17747:9;:39::i;:::-;17728:58;-1:-1:-1;3493:3:0;17815:20;17728:58;17828:6;17815:20;:12;:20;:::i;:::-;17814:34;;;;;;;;;17574:308;-1:-1:-1;;;;;;17574:308:0:o;6142:190::-;6217:7;6237:28;6257:7;6237:19;:28::i;:::-;6283:41;6298:16;6316:7;6283:14;:41::i;:::-;6276:48;;6142:190;;;;;:::o;9300:1129::-;9410:4;9427:24;9475:20;9699:17;9771:20;1997:15;;1990:3;:22;;1982:31;;;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;2219:1;2202:14;2211:4;2202:8;:14::i;:::-;:18;2194:27;;;;;;9558:10;;9454;9499:40;;;;:22;:40;;;;;;9454:10;;-1:-1:-1;9499:55:0;;3493:3;9499:55;:44;:55;:::i;:::-;9498:70;;;;;;;;9475:93;;9607:1;9589:15;:19;:96;;;;-1:-1:-1;;;;;;9631:36:0;;;;;;:18;:36;;;;;;:54;;9672:12;9631:54;:40;:54;:::i;:::-;9612:15;:73;;9589:96;9581:105;;;;;;;;9719:41;9756:3;9719:32;:15;3543:1;9719:32;:19;:32;:::i;:41::-;9699:61;-1:-1:-1;9794:30:0;:15;9699:61;9794:30;:19;:30;:::i;:::-;-1:-1:-1;;;;;9876:36:0;;;;;;:18;:36;;;;;;9771:53;;-1:-1:-1;9876:57:0;;9917:15;9876:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;9837:36:0;;;;;;;:18;:36;;;;;;:96;;;;9977:30;;;;;;;:48;;10012:12;9977:48;:34;:48;:::i;:::-;-1:-1:-1;;;;;9944:30:0;;;;;;:18;:30;;;;;:81;10052:11;;:26;;10068:9;10052:26;:15;:26;:::i;:::-;10038:11;:40;;;3493:3;-1:-1:-1;10091:120:0;;;10188:11;;10156:13;;:28;;3493:3;10156:28;:17;:28;:::i;:::-;10155:44;;;;;;;;10142:10;:57;10091:120;10228:49;;;;;;;;10263:1;;-1:-1:-1;;;;;10228:49:0;;;-1:-1:-1;;;;;;;;;;;10228:49:0;;;;;;;;10320:10;-1:-1:-1;;;;;10293:52:0;10302:16;-1:-1:-1;;;;;10293:52:0;-1:-1:-1;;;;;;;;;;;10332:12:0;10293:52;;;;;;;;;;;;;;;;;;10381:10;;10361:36;;;;;;10393:3;10361:36;;;;;;-1:-1:-1;;;;;;;;;;;10361:36:0;;;;;;;;;-1:-1:-1;10417:4:0;;9300:1129;-1:-1:-1;;;;;;9300:1129:0:o;11874:1011::-;12247:5;;:44;;;;;;12272:4;12247:44;;;;;;;;;;;;11976:6;;;;;;;;;;;;;;-1:-1:-1;;;;;12247:5:0;;:16;;:44;;;;;;;;;;;;;;11976:6;12247:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;12247:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12247:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;12247:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12170:121;;;;;;;;;;;;;;;;;;;;;;;;;12310:10;:22;12321:10;-1:-1:-1;;;;;12310:22:0;-1:-1:-1;;;;;12310:22:0;;;;;;;;;;;;:33;12333:9;12310:33;;;;;;;;;;;:41;;;;;;;;;;;;:49;;12355:4;12310:49;;;:101;;;;-1:-1:-1;12374:10:0;12363:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;;;;;;;:48;12310:101;12302:110;;;;;;;;12442:10;12431:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:41;:58;;;;:41;;:58;:87;;;;;12510:8;12493:25;;:13;:25;;;12431:87;12423:96;;;;;;;;12549:10;12538:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;12585:22;;;12538:69;12530:78;;;;;;12638:10;12627:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;;:61;;;;:45;;:61;12619:70;;;;;;12719:10;12708:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;:57;;;;:43;;;;;:57;12700:66;;;;;;12796:10;12785:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:44;;;:59;;;;:44;;;;;:59;12777:68;;;;;;12865:12;11874:1011;-1:-1:-1;;;;;;;;;11874:1011:0:o;14836:92::-;1815:5;;-1:-1:-1;;;;;1815:5:0;1801:10;:19;1793:28;;;;;;14904:16;;;;:6;;:16;;;;;:::i;:::-;;14836:92;:::o;14744:84::-;1815:5;;-1:-1:-1;;;;;1815:5:0;1801:10;:19;1793:28;;;;;;14808:12;;;;:4;;:12;;;;;:::i;4087:30::-;;;;:::o;3991:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5979:155::-;6025:7;6045:28;6065:7;6045:19;:28::i;:::-;6091:35;6106:10;6118:7;6091:14;:35::i;8124:1168::-;8210:24;8258:20;8482:12;8554;1997:15;;1990:3;:22;;1982:31;;;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;2219:1;2202:14;2211:4;2202:8;:14::i;:::-;:18;2194:27;;;;;;8341:10;;8237;8282:40;;;;:22;:40;;;;;;8237:10;;-1:-1:-1;8282:55:0;;3493:3;8282:55;:44;:55;:::i;:::-;8281:70;;;;;;;;8258:93;;8390:1;8372:15;:19;:96;;;;-1:-1:-1;;;;;;8414:36:0;;;;;;:18;:36;;;;;;:54;;8455:12;8414:54;:40;:54;:::i;:::-;8395:15;:73;;8372:96;8364:105;;;;;;;;8497:46;3493:3;8497:31;8517:10;;8497:15;:19;;:31;;;;:::i;:46::-;8482:61;-1:-1:-1;8569:29:0;8594:3;8569:20;8482:61;3631:1;8569:20;:8;:20;:::i;:29::-;8625:11;;8554:44;;-1:-1:-1;8625:32:0;;8641:15;8625:32;:15;:32;:::i;:::-;8611:11;:46;-1:-1:-1;;;;;8707:36:0;;;;;;:18;:36;;;;;;:57;;8748:15;8707:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;8668:36:0;;;;;;:18;:36;;;;;:96;8784:14;:4;8793;8784:14;:8;:14;:::i;:::-;8827:13;;8777:21;;-1:-1:-1;8827:23:0;;8777:21;8827:23;:17;:23;:::i;:::-;8811:13;:39;8867:11;;3493:3;-1:-1:-1;8863:113:0;;;8953:11;;8921:13;;:28;;3493:3;8921:28;:17;:28;:::i;:::-;8920:44;;;;;;;;8907:10;:57;8863:113;8988:5;;:38;;;;;;-1:-1:-1;;;;;8988:38:0;;;;;;;;;;;;;;;:5;;;;;:14;;:38;;;;;;;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;8988:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8988:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;9037:29:0;;;;;;:11;8988:38;9037:29;;;;;;;:41;;:49;;;;;;9104:55;;;;;;;9037:29;;;-1:-1:-1;;;;;;;;;;;9104:55:0;;;;;;;;;;9175:57;;;;;;;;;;;;9228:3;9175:57;;;;;;-1:-1:-1;;;;;9175:57:0;;;;;;;;;;;;;9268:10;;9248:36;;;;;;9280:3;9248:36;;;;;;-1:-1:-1;;;;;;;;;;;9248:36:0;;;;;;;;;8124:1168;;;;;:::o;17264:302::-;17349:7;17369:14;17412:16;17481:14;17386:15;17396:4;17386:9;:15::i;4124:32::-;;;;:::o;17890:121::-;17935:7;17962:41;17985:17;;17962:18;;:22;;:41;;;;:::i;:::-;17955:48;;17890:121;:::o;12893:1843::-;12991:19;13331:16;13559:15;13642:21;13720:19;13013:48;13023:11;13036:13;13051:9;13013;:48::i;:::-;12991:70;-1:-1:-1;13078:17:0;;;;13074:245;;;13166:5;;;;;;;;;-1:-1:-1;;;;;13166:5:0;-1:-1:-1;;;;;13166:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13166:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13166:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13166:18:0;13122:10;13111:22;;;;:10;13166:18;13111:22;;;;;;;:33;;;;;;;;:45;;:74;;;;;;;;-1:-1:-1;;13111:74:0;;;;;;;;;13074:245;;;13258:10;13247:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;:60;;-1:-1:-1;;13247:60:0;;;;;;;;;13074:245;13350:5;;:30;;;;;;13374:4;13350:30;;;;;;-1:-1:-1;;;;;13350:5:0;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13350:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13350:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13350:30:0;13393:5;;:42;;;;;;;;;;;;;;;;;;;;;13350:30;;-1:-1:-1;;;;;;13393:5:0;;;;:14;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;13393:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13511:10:0;13500:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;:46;;-1:-1:-1;;13500:46:0;;;;;:39;13590:5;:30;;;;;13614:4;13590:30;;;;;;13577:54;;-1:-1:-1;;;;;;13590:5:0;;;;;-1:-1:-1;13590:15:0;;:30;;;;;13500:22;13590:30;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13590:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13590:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13590:30:0;13622:8;13577:12;:54::i;:::-;13677:10;13666:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;13559:72;;-1:-1:-1;13666:43:0;-1:-1:-1;13756:24:0;;;13752:655;;13811:36;13824:13;13839:7;13811:12;:36::i;:::-;13878:13;;13797:50;;-1:-1:-1;13878:30:0;;13797:50;13878:30;:17;:30;:::i;:::-;13862:13;:46;13968:10;;13938:26;:11;3493:3;13938:26;:15;:26;:::i;:::-;13937:41;;;;;;;;13923:55;;14007:38;14020:11;;14033;14007:12;:38::i;:::-;13993:11;:52;14125:10;14106:30;;;;:18;:30;;;;;;14093:57;;14138:11;14093:12;:57::i;:::-;14079:10;14060:30;;;;:18;:30;;;;;;;;:90;;;;14170:45;;;;;;;14060:30;;-1:-1:-1;;;;;;;;;;;14170:45:0;;;;;;;;;;13752:655;;;14247:13;14237:7;:23;14233:174;;;14291:36;14304:7;14313:13;14291:12;:36::i;:::-;14277:50;;14356:39;14371:10;14383:11;14356:14;:39::i;:::-;14342:53;;14233:174;14439:46;14452:17;;14471:13;14439:12;:46::i;:::-;14419:17;:66;14508:10;14496:23;;;;:11;:23;;;;;;;;:36;;:41;;-1:-1:-1;;14496:41:0;;;14600:22;:34;;;;;;14587:63;;14636:13;14587:12;:63::i;:::-;14573:10;14550:34;;;;:22;:34;;;;;;;;;:100;;;;14668:60;;;;;;;;;;;;;;;;;14724:3;14668:60;;;;;14573:10;;14668:60;;;;;;;;;;12893:1843;;;;;;;;:::o;50:174::-;108:9;130:6;;126:37;;;-1:-1:-1;154:1:0;147:8;;126:37;-1:-1:-1;173:5:0;;;177:1;173;:5;192;;;;;;;;:10;185:18;;;230:92;288:7;315:1;311;:5;;;;;;;;;230:92;-1:-1:-1;;;230:92:0:o;328:113::-;386:7;409:6;;;;402:14;;;;-1:-1:-1;430:5:0;;;328:113::o;5010:169::-;5083:5;;:54;;;;;;5102:10;5083:54;;;;5122:4;5083:54;;;;;;;;;;;;-1:-1:-1;;;;;5083:5:0;;;;:18;;:54;;;;;;;;;;;;;;;:5;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;5083:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5083:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5083:54:0;:62;;5141:4;5083:62;5075:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5010:169;:::o;447:127::-;527:5;;;546:6;;;;539:14;;;6899:1217;7000:7;7226:15;7288:18;7356:12;7529:23;1997:15;;1990:3;:22;;1982:31;;;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;-1:-1:-1;;;;;7024:29:0;;;;;;:11;:29;;;;;:38;:43;7020:89;;;7084:11;:13;;;;;;7020:89;-1:-1:-1;;;;;7121:29:0;;;;;;:11;:29;;;;;:54;;;;;;7196:16;;7188:25;;;;;;7244:33;7273:3;7244:24;:12;3672:1;7244:24;:16;:24;:::i;:33::-;7226:51;-1:-1:-1;7309:36:0;7341:3;7309:27;:12;3716:1;7309:27;:16;:27;:::i;:36::-;7288:57;-1:-1:-1;7371:35:0;7402:3;7371:26;:12;3586:1;7371:26;:16;:26;:::i;:35::-;7435:5;;7356:50;;-1:-1:-1;7419:31:0;;-1:-1:-1;;;;;7435:5:0;7442:7;7419:15;:31::i;:::-;-1:-1:-1;7482:18:0;;:34;;7505:10;7482:34;:22;:34;:::i;:::-;7461:18;:55;7555:86;7571:16;7589:51;7629:10;7589:35;7616:7;7589:35;:12;7606:4;7589:22;:16;:22;:::i;:51::-;7555:15;:86::i;:::-;7529:112;-1:-1:-1;7682:47:0;7700:28;:12;7717:10;7700:28;:16;:28;:::i;:::-;7682:13;;;:47;:17;:47;:::i;:::-;7666:13;:63;7765:7;7746:15;:13;:15::i;:::-;:26;7742:68;;7789:9;:7;:9::i;:::-;3493:3;7826:11;;:23;7822:113;;;7912:11;;7880:13;;:28;;3493:3;7880:28;:17;:28;:::i;:::-;7879:44;;;;;;;;7866:10;:57;7822:113;7952:69;;;;;;;;;;;;8017:3;7952:69;;;;;;-1:-1:-1;;;;;7952:69:0;;;;;;;;;;;;;8057:10;;8037:36;;;;;;8069:3;8037:36;;;;;;-1:-1:-1;;;;;;;;;;;8037:36:0;;;;;;;;;8093:15;6899:1217;-1:-1:-1;;;;;;6899:1217:0:o;6340:551::-;6507:10;;6429:7;;;;6476:27;:12;3493:3;6476:27;:16;:27;:::i;:::-;6475:42;;;;;;;;6449:68;;6556:1;6538:15;:19;:69;;;;-1:-1:-1;6596:11:0;;6561:32;:15;6596:11;6561:32;:19;:32;:::i;:::-;:46;6538:69;6530:78;;;;;;;;-1:-1:-1;;;;;6661:36:0;;;;;;:18;:36;;;;;;:57;;6702:15;6661:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;6621:36:0;;;;;;:18;:36;;;;;:97;6743:11;;:32;;6759:15;6743:32;:15;:32;:::i;:::-;6729:11;:46;6793:55;;;;;;;;-1:-1:-1;;;;;6793:55:0;;;6810:1;;-1:-1:-1;;;;;;;;;;;6793:55:0;;;;;;;;6868:15;6340:551;-1:-1:-1;;;6340:551:0:o;1842:16172::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1842:16172:0;;;-1:-1:-1;1842:16172:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://f12424168afbdea4a3c620fe797778cbbc88a78473ecac9131e22173da2668fd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.