Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 29 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 21192382 | 103 days ago | IN | 0 ETH | 0.00143149 | ||||
Transfer | 21036776 | 124 days ago | IN | 0 ETH | 0.00150229 | ||||
Transfer | 20650885 | 178 days ago | IN | 0 ETH | 0.00013325 | ||||
Transfer | 20479325 | 202 days ago | IN | 0 ETH | 0.00032203 | ||||
Transfer | 20479009 | 202 days ago | IN | 0 ETH | 0.00046413 | ||||
Transfer | 20350339 | 220 days ago | IN | 0 ETH | 0.00026097 | ||||
Transfer | 20349848 | 220 days ago | IN | 0 ETH | 0.00024052 | ||||
Transfer | 20304874 | 226 days ago | IN | 0 ETH | 0.00019255 | ||||
Transfer | 20304818 | 226 days ago | IN | 0 ETH | 0.00028277 | ||||
Transfer | 20270737 | 231 days ago | IN | 0 ETH | 0.00043044 | ||||
Set Excluded Fro... | 20238290 | 236 days ago | IN | 0 ETH | 0.00057169 | ||||
Transfer | 20235755 | 236 days ago | IN | 0 ETH | 0.00055244 | ||||
Transfer | 20198684 | 241 days ago | IN | 0 ETH | 0.00019463 | ||||
Transfer | 19999824 | 269 days ago | IN | 0 ETH | 0.0006889 | ||||
Transfer | 19992236 | 270 days ago | IN | 0 ETH | 0.0008664 | ||||
Transfer | 19920978 | 280 days ago | IN | 0 ETH | 0.0007677 | ||||
Transfer | 19919892 | 280 days ago | IN | 0 ETH | 0.00215707 | ||||
Transfer | 19919872 | 280 days ago | IN | 0 ETH | 0.00229415 | ||||
Transfer | 19917467 | 281 days ago | IN | 0 ETH | 0.00057166 | ||||
Transfer | 19905553 | 282 days ago | IN | 0 ETH | 0.00040849 | ||||
Transfer | 19898680 | 283 days ago | IN | 0 ETH | 0.00032008 | ||||
Transfer | 19898225 | 283 days ago | IN | 0 ETH | 0.00047287 | ||||
Transfer | 19897979 | 283 days ago | IN | 0 ETH | 0.00061887 | ||||
Transfer | 19677760 | 314 days ago | IN | 0 ETH | 0.0009709 | ||||
Transfer | 19677013 | 314 days ago | IN | 0 ETH | 0.00172416 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ArtenaNetwork
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-14 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; 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 { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ 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); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor (address initialOwner) { _owner = initialOwner; emit OwnershipTransferred(address(0), initialOwner); } function owner() public view 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; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ArtenaNetwork is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromAutoLiquidity; address[] private _excluded; address public _marketingWallet; address public _developerWallet; address public _LiquidityWallet; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 280000000 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = "Artena Network"; string private _symbol = "ANK"; uint8 private _decimals = 18; uint256 public _taxFee = 10; uint256 public _liquidityFee = 10; uint256 public maxWalletToken = _tTotal; uint256 public _maxTxAmount = _tTotal; uint256 private _minTokenBalance = 280 * 10**18; // auto liquidity bool public _swapAndLiquifyEnabled = false; bool _inSwapAndLiquify; IUniswapV2Router02 public _uniswapV2Router; address public _uniswapV2Pair; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event MarketingFeeSent(address to, uint256 ethSent); modifier lockTheSwap { _inSwapAndLiquify = true; _; _inSwapAndLiquify = false; } constructor (address cOwner, address marketingWallet, address developerWallet, address liquidityWallet) Ownable(cOwner) { _marketingWallet = marketingWallet; _developerWallet = developerWallet; _LiquidityWallet = liquidityWallet; _rOwned[cOwner] = _rTotal; // uniswap IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _uniswapV2Router = uniswapV2Router; _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()) .createPair(address(this), uniswapV2Router.WETH()); // exclude system contracts _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingWallet] = true; _isExcludedFromFee[_developerWallet] = true; _isExcludedFromFee[_LiquidityWallet] = true; _isExcludedFromAutoLiquidity[_uniswapV2Pair] = true; _isExcludedFromAutoLiquidity[address(_uniswapV2Router)] = true; emit Transfer(address(0), cOwner, _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view 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 tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(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 totalFees() public view returns (uint256) { return _tFeeTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount,,) = _getRValues(tAmount, tFee, tLiquidity, currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); (, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); uint256 currentRate = _getRate(); if (!deductTransferFee) { (uint256 rAmount,,) = _getRValues(tAmount, tFee, tLiquidity, currentRate); return rAmount; } else { (, uint256 rTransferAmount,) = _getRValues(tAmount, tFee, tLiquidity, currentRate); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } 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 includeInReward(address account) external onlyOwner { require(_isExcluded[account], "Account is already 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 setMarketingWallet(address marketingWallet) external onlyOwner { _marketingWallet = marketingWallet; } function setDeveloperWallet(address developerWallet) external onlyOwner { _developerWallet = developerWallet; } function setLiquidityWallet(address LiquidityWallet) external onlyOwner { _LiquidityWallet = LiquidityWallet; } function setMinimumTokenBalance (uint256 minimumToken) external onlyOwner { _minTokenBalance = minimumToken; } function setExcludedFromFee(address account, bool e) external onlyOwner { _isExcludedFromFee[account] = e; } function setTaxFeePercent(uint256 taxFee) external onlyOwner { require(taxFee <= 10, "Holder Reflection cannot exceed 1%"); _taxFee = taxFee; } function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner { require(liquidityFee <= 10, "Liquidity Fee cannot exceed 1%"); _liquidityFee = liquidityFee; } function setMaxWalletTokens(uint256 _maxToken) external onlyOwner { maxWalletToken = _maxToken ; } function setmaxTxAmount(uint256 maxTxAmount) external onlyOwner { _maxTxAmount = maxTxAmount ; } function setSwapAndLiquifyEnabled(bool e) public onlyOwner { _swapAndLiquifyEnabled = e; emit SwapAndLiquifyEnabledUpdated(e); } receive() external payable {} function setUniswapRouter(address r) external onlyOwner { IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(r); _uniswapV2Router = uniswapV2Router; } function setUniswapPair(address p) external onlyOwner { _uniswapV2Pair = p; } function setExcludedFromAutoLiquidity(address a, bool b) external onlyOwner { _isExcludedFromAutoLiquidity[a] = b; } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) { uint256 tFee = calculateFee(tAmount, _taxFee); uint256 tLiquidity = calculateFee(tAmount, _liquidityFee); uint256 tTransferAmount = tAmount.sub(tFee); tTransferAmount = tTransferAmount.sub(tLiquidity); return (tTransferAmount, tFee, tLiquidity); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); rTransferAmount = rTransferAmount.sub(rLiquidity); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(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.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function takeTransactionFee(address to, uint256 tAmount, uint256 currentRate) private { if (tAmount <= 0) { return; } uint256 rAmount = tAmount.mul(currentRate); _rOwned[to] = _rOwned[to].add(rAmount); if (_isExcluded[to]) { _tOwned[to] = _tOwned[to].add(tAmount); } } function calculateFee(uint256 amount, uint256 fee) private pure returns (uint256) { return amount.mul(fee).div(1000); } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } 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(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"); if (from != owner() && to != owner() && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if ( from != owner() && to != owner() && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && to != address(0) && to != address(0xdead) && to != _uniswapV2Pair ) { uint256 contractBalanceRecepient = balanceOf(to); require( contractBalanceRecepient + amount <= maxWalletToken, "Exceeds maximum wallet token amount." ); } bool isOverMinTokenBalance = contractTokenBalance >= _minTokenBalance; if ( isOverMinTokenBalance && !_inSwapAndLiquify && !_isExcludedFromAutoLiquidity[from] && _swapAndLiquifyEnabled ) { swapAndLiquify(contractTokenBalance); } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { // split contract balance into halves uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForETH(half); // this is the amount of ETH that we just swapped into uint256 newBalance = address(this).balance.sub(initialBalance); // take marketing fee uint256 marketingFee = newBalance.mul(50).div(100); uint256 ethForLiquidity = newBalance.sub(marketingFee); if (marketingFee > 0) { payable(_developerWallet).transfer(marketingFee); emit MarketingFeeSent(_developerWallet, marketingFee); } // add liquidity to uniswap addLiquidity(otherHalf, ethForLiquidity); emit SwapAndLiquify(half, ethForLiquidity, otherHalf); } function swapTokensForETH(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); // make the swap _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(_uniswapV2Router), tokenAmount); // add the liquidity _uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable _developerWallet, block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private { uint256 previousTaxFee = _taxFee; uint256 previousLiquidityFee = _liquidityFee; if (!takeFee) { _taxFee = 0; _liquidityFee = 0; } if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if (!takeFee) { _taxFee = previousTaxFee; _liquidityFee = previousLiquidityFee; } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); takeTransactionFee(address(this), tLiquidity, currentRate); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); takeTransactionFee(address(this), tLiquidity, currentRate); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); takeTransactionFee(address(this), tLiquidity, currentRate); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); takeTransactionFee(address(this), tLiquidity, currentRate); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"cOwner","type":"address"},{"internalType":"address","name":"marketingWallet","type":"address"},{"internalType":"address","name":"developerWallet","type":"address"},{"internalType":"address","name":"liquidityWallet","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":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethSent","type":"uint256"}],"name":"MarketingFeeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"_LiquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromAutoLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","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":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","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":"maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"developerWallet","type":"address"}],"name":"setDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bool","name":"b","type":"bool"}],"name":"setExcludedFromAutoLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"e","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"LiquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxToken","type":"uint256"}],"name":"setMaxWalletTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minimumToken","type":"uint256"}],"name":"setMinimumTokenBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"p","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"r","type":"address"}],"name":"setUniswapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setmaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"totalFees","outputs":[{"internalType":"uint256","name":"","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526ae79c4e6a3023e818000000600d81905562000023906000196200041d565b620000319060001962000440565b600e556040518060400160405280600e81526020016d417274656e61204e6574776f726b60901b815250601090816200006b91906200050d565b50604080518082019091526003815262414e4b60e81b60208201526011906200009590826200050d565b506012805460ff199081168217909155600a6013819055601455600d546015819055601655680f2dc7d47f15600000601755601880549091169055348015620000dd57600080fd5b50604051620030fc380380620030fc8339810160408190526200010091620005f6565b600080546001600160a01b0319166001600160a01b03861690811782556040518692907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b03199081166001600160a01b0386811691909117909255600b80548216858416179055600c8054909116838316179055600e54908516600090815260036020908152604091829020929092556018805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d0000179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d919062000653565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b1919062000653565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000325919062000653565b601980546001600160a01b0319166001600160a01b039283161781556000805483168152600560209081526040808320805460ff1990811660019081179092553085528285208054821683179055600a54871685528285208054821683179055600b54871685528285208054821683179055600c5487168552828520805482168317905594548616845260088352818420805486168217905560185462010000900486168452818420805490951617909355600d54835190815292519389169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505050505062000678565b6000826200043b57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200046257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200049357607f821691505b602082108103620004b457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200050857600081815260208120601f850160051c81016020861015620004e35750805b601f850160051c820191505b818110156200050457828155600101620004ef565b5050505b505050565b81516001600160401b0381111562000529576200052962000468565b62000541816200053a84546200047e565b84620004ba565b602080601f831160018114620005795760008415620005605750858301515b600019600386901b1c1916600185901b17855562000504565b600085815260208120601f198616915b82811015620005aa5788860151825594840194600190910190840162000589565b5085821015620005c95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b0381168114620005f157600080fd5b919050565b600080600080608085870312156200060d57600080fd5b6200061885620005d9565b93506200062860208601620005d9565b92506200063860408601620005d9565b91506200064860608601620005d9565b905092959194509250565b6000602082840312156200066657600080fd5b6200067182620005d9565b9392505050565b612a7480620006886000396000f3fe6080604052600436106102815760003560e01c80636bc87c3a1161014f578063a457c2d7116100c1578063d5aed6bf1161007a578063d5aed6bf146107c4578063dd62ed3e146107e4578063e5b55c6b1461082a578063e6c75f711461084a578063f2fde38b14610860578063f3f52ec71461088057600080fd5b8063a457c2d7146106fa578063a9059cbb1461071a578063baa043981461073a578063bea9849e1461076a578063c49b9a801461078a578063cbecede0146107aa57600080fd5b806388f820201161011357806388f820201461062e5780638da5cb5b146106675780638ee88c531461068557806395d89b41146106a5578063962dfc75146106ba5780639c74daf0146106da57600080fd5b80636bc87c3a146105ad5780636cd56878146105c357806370a08231146105e3578063715018a6146106035780637d1db4a51461061857600080fd5b80633685d419116101f35780635342acb4116101ac5780635342acb4146104b6578063583e0568146104ef5780635d098b381461052d5780635d83b4541461054d57806365e47de21461056d5780636612e66f1461058d57600080fd5b80633685d4191461040057806339509351146104205780633b124fe7146104405780633bd5d173146104565780634549b0391461047657806352390c021461049657600080fd5b806318160ddd1161024557806318160ddd1461034957806323b872dd1461035e578063296f0a0c1461037e5780632d8381191461039e5780632ff9c145146103be578063313ce567146103de57600080fd5b8063061c82d01461028d57806306fdde03146102af578063095ea7b3146102da5780630fec5dd01461030a57806313114a9d1461032a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a8366004612642565b6108a0565b005b3480156102bb57600080fd5b506102c4610934565b6040516102d1919061265b565b60405180910390f35b3480156102e657600080fd5b506102fa6102f53660046126c1565b6109c6565b60405190151581526020016102d1565b34801561031657600080fd5b506102ad610325366004612642565b6109dd565b34801561033657600080fd5b50600f545b6040519081526020016102d1565b34801561035557600080fd5b50600d5461033b565b34801561036a57600080fd5b506102fa6103793660046126ed565b610a0c565b34801561038a57600080fd5b506102ad61039936600461272e565b610a75565b3480156103aa57600080fd5b5061033b6103b9366004612642565b610ac1565b3480156103ca57600080fd5b506102ad6103d9366004612642565b610b45565b3480156103ea57600080fd5b5060125460405160ff90911681526020016102d1565b34801561040c57600080fd5b506102ad61041b36600461272e565b610b74565b34801561042c57600080fd5b506102fa61043b3660046126c1565b610d2a565b34801561044c57600080fd5b5061033b60135481565b34801561046257600080fd5b506102ad610471366004612642565b610d60565b34801561048257600080fd5b5061033b610491366004612760565b610e69565b3480156104a257600080fd5b506102ad6104b136600461272e565b610f18565b3480156104c257600080fd5b506102fa6104d136600461272e565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104fb57600080fd5b50601854610515906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016102d1565b34801561053957600080fd5b506102ad61054836600461272e565b61106b565b34801561055957600080fd5b506102ad61056836600461278c565b6110b7565b34801561057957600080fd5b506102ad610588366004612642565b61110c565b34801561059957600080fd5b506102ad6105a836600461278c565b61113b565b3480156105b957600080fd5b5061033b60145481565b3480156105cf57600080fd5b506102ad6105de36600461272e565b611190565b3480156105ef57600080fd5b5061033b6105fe36600461272e565b6111dc565b34801561060f57600080fd5b506102ad61123b565b34801561062457600080fd5b5061033b60165481565b34801561063a57600080fd5b506102fa61064936600461272e565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561067357600080fd5b506000546001600160a01b0316610515565b34801561069157600080fd5b506102ad6106a0366004612642565b6112af565b3480156106b157600080fd5b506102c461132f565b3480156106c657600080fd5b50600a54610515906001600160a01b031681565b3480156106e657600080fd5b50601954610515906001600160a01b031681565b34801561070657600080fd5b506102fa6107153660046126c1565b61133e565b34801561072657600080fd5b506102fa6107353660046126c1565b61138d565b34801561074657600080fd5b506102fa61075536600461272e565b60086020526000908152604090205460ff1681565b34801561077657600080fd5b506102ad61078536600461272e565b61139a565b34801561079657600080fd5b506102ad6107a53660046127b8565b6113ee565b3480156107b657600080fd5b506018546102fa9060ff1681565b3480156107d057600080fd5b506102ad6107df36600461272e565b61145f565b3480156107f057600080fd5b5061033b6107ff3660046127d3565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561083657600080fd5b50600b54610515906001600160a01b031681565b34801561085657600080fd5b5061033b60155481565b34801561086c57600080fd5b506102ad61087b36600461272e565b6114ab565b34801561088c57600080fd5b50600c54610515906001600160a01b031681565b6000546001600160a01b031633146108d35760405162461bcd60e51b81526004016108ca9061280c565b60405180910390fd5b600a81111561092f5760405162461bcd60e51b815260206004820152602260248201527f486f6c646572205265666c656374696f6e2063616e6e6f742065786365656420604482015261312560f01b60648201526084016108ca565b601355565b60606010805461094390612841565b80601f016020809104026020016040519081016040528092919081815260200182805461096f90612841565b80156109bc5780601f10610991576101008083540402835291602001916109bc565b820191906000526020600020905b81548152906001019060200180831161099f57829003601f168201915b5050505050905090565b60006109d3338484611595565b5060015b92915050565b6000546001600160a01b03163314610a075760405162461bcd60e51b81526004016108ca9061280c565b601555565b6000610a198484846116b9565b610a6b8433610a66856040518060600160405280602881526020016129f2602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611acd565b611595565b5060019392505050565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016108ca9061280c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000600e54821115610b285760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108ca565b6000610b32611af9565b9050610b3e8382611b1c565b9392505050565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b81526004016108ca9061280c565b601755565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03811660009081526006602052604090205460ff16610c065760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108ca565b60005b600954811015610d2657816001600160a01b031660098281548110610c3057610c3061287b565b6000918252602090912001546001600160a01b031603610d145760098054610c5a906001906128a7565b81548110610c6a57610c6a61287b565b600091825260209091200154600980546001600160a01b039092169183908110610c9657610c9661287b565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556009805480610cee57610cee6128ba565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d1e816128d0565b915050610c09565b5050565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916109d3918590610a669086611b28565b3360008181526006602052604090205460ff1615610dd55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016108ca565b600080610de184611b34565b92509250506000610df0611af9565b90506000610e0086858585611b7e565b50506001600160a01b038616600090815260036020526040902054909150610e289082611bd6565b6001600160a01b038616600090815260036020526040902055600e54610e4e9082611bd6565b600e55600f54610e5e9087611b28565b600f55505050505050565b6000600d54831115610ebd5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108ca565b600080610ec985611b34565b92509250506000610ed8611af9565b905084610efc576000610eed87858585611b7e565b509095506109d7945050505050565b6000610f0a87858585611b7e565b5095506109d7945050505050565b6000546001600160a01b03163314610f425760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03811660009081526006602052604090205460ff1615610fab5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108ca565b6001600160a01b03811660009081526003602052604090205415611005576001600160a01b038116600090815260036020526040902054610feb90610ac1565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146110955760405162461bcd60e51b81526004016108ca9061280c565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110e15760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111365760405162461bcd60e51b81526004016108ca9061280c565b601655565b6000546001600160a01b031633146111655760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111ba5760405162461bcd60e51b81526004016108ca9061280c565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526006602052604081205460ff161561121957506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546109d790610ac1565b6000546001600160a01b031633146112655760405162461bcd60e51b81526004016108ca9061280c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112d95760405162461bcd60e51b81526004016108ca9061280c565b600a81111561132a5760405162461bcd60e51b815260206004820152601e60248201527f4c6971756964697479204665652063616e6e6f7420657863656564203125000060448201526064016108ca565b601455565b60606011805461094390612841565b60006109d33384610a6685604051806060016040528060258152602001612a1a602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611acd565b60006109d33384846116b9565b6000546001600160a01b031633146113c45760405162461bcd60e51b81526004016108ca9061280c565b601880546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6000546001600160a01b031633146114185760405162461bcd60e51b81526004016108ca9061280c565b6018805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b6000546001600160a01b031633146114895760405162461bcd60e51b81526004016108ca9061280c565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114d55760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03811661153a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ca565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115f75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ca565b6001600160a01b0382166116585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ca565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661171d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ca565b6001600160a01b03821661177f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ca565b600081116117e15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108ca565b6000546001600160a01b0384811691161480159061180d57506000546001600160a01b03838116911614155b801561183257506001600160a01b03831660009081526005602052604090205460ff16155b801561185757506001600160a01b03821660009081526005602052604090205460ff16155b156118bf576016548111156118bf5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108ca565b60006118ca306111dc565b905060165481106118da57506016545b6000546001600160a01b0385811691161480159061190657506000546001600160a01b03848116911614155b801561192b57506001600160a01b03841660009081526005602052604090205460ff16155b801561195057506001600160a01b03831660009081526005602052604090205460ff16155b801561196457506001600160a01b03831615155b801561197b57506001600160a01b03831661dead14155b801561199557506019546001600160a01b03848116911614155b15611a115760006119a5846111dc565b6015549091506119b584836128e9565b1115611a0f5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016108ca565b505b60175481108015908190611a2d5750601854610100900460ff16155b8015611a5257506001600160a01b03851660009081526008602052604090205460ff16155b8015611a60575060185460ff165b15611a6e57611a6e82611be2565b6001600160a01b03851660009081526005602052604090205460019060ff1680611ab057506001600160a01b03851660009081526005602052604090205460ff165b15611ab9575060005b611ac586868684611d35565b505050505050565b60008184841115611af15760405162461bcd60e51b81526004016108ca919061265b565b505050900390565b6000806000611b06611eb3565b9092509050611b158282611b1c565b9250505090565b6000610b3e82846128fc565b6000610b3e82846128e9565b600080600080611b4685601354612035565b90506000611b5686601454612035565b90506000611b648784611bd6565b9050611b708183611bd6565b979296509094509092505050565b6000808080611b8d8886612043565b90506000611b9b8887612043565b90506000611ba98888612043565b90506000611bb78484611bd6565b9050611bc38183611bd6565b939b939a50919850919650505050505050565b6000610b3e82846128a7565b6018805461ff0019166101001790556000611bfe826002611b1c565b90506000611c0c8383611bd6565b905047611c188361204f565b6000611c244783611bd6565b90506000611c3e6064611c38846032612043565b90611b1c565b90506000611c4c8383611bd6565b90508115611cd657600b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c8e573d6000803e3d6000fd5b50600b54604080516001600160a01b039092168252602082018490527f1af6c280083a73c311541c1467fa5fed97da7b6fd18e594778af9bdb5793b5c4910160405180910390a15b611ce085826121c6565b60408051878152602081018390529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506018805461ff00191690555050505050565b60135460145482611d4b57600060138190556014555b6001600160a01b03861660009081526006602052604090205460ff168015611d8c57506001600160a01b03851660009081526006602052604090205460ff16155b15611da157611d9c868686612286565b611e9f565b6001600160a01b03861660009081526006602052604090205460ff16158015611de257506001600160a01b03851660009081526006602052604090205460ff165b15611df257611d9c8686866123c7565b6001600160a01b03861660009081526006602052604090205460ff16158015611e3457506001600160a01b03851660009081526006602052604090205460ff16155b15611e4457611d9c868686612488565b6001600160a01b03861660009081526006602052604090205460ff168015611e8457506001600160a01b03851660009081526006602052604090205460ff165b15611e9457611d9c8686866124e4565b611e9f868686612488565b82611ac55760139190915560145550505050565b600e54600d546000918291825b60095481101561200557826003600060098481548110611ee257611ee261287b565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f4d5750816004600060098481548110611f2657611f2661287b565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f6357600e54600d54945094505050509091565b611fa96003600060098481548110611f7d57611f7d61287b565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611bd6565b9250611ff16004600060098481548110611fc557611fc561287b565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611bd6565b915080611ffd816128d0565b915050611ec0565b50600d54600e5461201591611b1c565b82101561202c57600e54600d549350935050509091565b90939092509050565b6000610b3e6103e8611c3885855b6000610b3e828461291e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120845761208461287b565b60200260200101906001600160a01b031690816001600160a01b031681525050601860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211b9190612935565b8160018151811061212e5761212e61287b565b6001600160a01b03928316602091820292909201015260185461215a9130916201000090041684611595565b60185460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612198908590600090869030904290600401612952565b600060405180830381600087803b1580156121b257600080fd5b505af1158015611ac5573d6000803e3d6000fd5b6018546121e49030906201000090046001600160a01b031684611595565b601854600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af115801561225a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061227f91906129c3565b5050505050565b600080600061229484611b34565b92509250925060006122a4611af9565b905060008060006122b788878787611b7e565b6001600160a01b038d1660009081526004602052604090205492955090935091506122e29089611bd6565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546123119084611bd6565b6001600160a01b03808c1660009081526003602052604080822093909355908b16815220546123409083611b28565b6001600160a01b038a1660009081526003602052604090205561236430868661256f565b61236e818761261e565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040516123b391815260200190565b60405180910390a350505050505050505050565b60008060006123d584611b34565b92509250925060006123e5611af9565b905060008060006123f888878787611b7e565b6001600160a01b038d1660009081526003602052604090205492955090935091506124239084611bd6565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152600490915220546124599088611b28565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546123409083611b28565b600080600061249684611b34565b92509250925060006124a6611af9565b905060008060006124b988878787611b7e565b6001600160a01b038d1660009081526003602052604090205492955090935091506123119084611bd6565b60008060006124f284611b34565b9250925092506000612502611af9565b9050600080600061251588878787611b7e565b6001600160a01b038d1660009081526004602052604090205492955090935091506125409089611bd6565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546124239084611bd6565b6000821161257c57505050565b60006125888383612043565b6001600160a01b0385166000908152600360205260409020549091506125ae9082611b28565b6001600160a01b03851660009081526003602090815260408083209390935560069052205460ff1615612618576001600160a01b0384166000908152600460205260409020546125fe9084611b28565b6001600160a01b0385166000908152600460205260409020555b50505050565b600e5461262b9083611bd6565b600e55600f5461263b9082611b28565b600f555050565b60006020828403121561265457600080fd5b5035919050565b600060208083528351808285015260005b818110156126885785810183015185820160400152820161266c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146126be57600080fd5b50565b600080604083850312156126d457600080fd5b82356126df816126a9565b946020939093013593505050565b60008060006060848603121561270257600080fd5b833561270d816126a9565b9250602084013561271d816126a9565b929592945050506040919091013590565b60006020828403121561274057600080fd5b8135610b3e816126a9565b8035801515811461275b57600080fd5b919050565b6000806040838503121561277357600080fd5b823591506127836020840161274b565b90509250929050565b6000806040838503121561279f57600080fd5b82356127aa816126a9565b91506127836020840161274b565b6000602082840312156127ca57600080fd5b610b3e8261274b565b600080604083850312156127e657600080fd5b82356127f1816126a9565b91506020830135612801816126a9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061285557607f821691505b60208210810361287557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156109d7576109d7612891565b634e487b7160e01b600052603160045260246000fd5b6000600182016128e2576128e2612891565b5060010190565b808201808211156109d7576109d7612891565b60008261291957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176109d7576109d7612891565b60006020828403121561294757600080fd5b8151610b3e816126a9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129a25784516001600160a01b03168352938301939183019160010161297d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129d857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a85dc6b1861d4c5101597d7ab4341b049fb465d0e6fa10ccbc43025d8d13ad3e64736f6c634300081200330000000000000000000000004155d99914fac931021e5c5ca82f50a53c15b72900000000000000000000000030a1a2b4f2c6267a626ffd8533aae8512318aab30000000000000000000000009e5462479d82ca6ad86a082f9387deaa1a222103000000000000000000000000506a429054328d17517d9939650a6835ac9e26d9
Deployed Bytecode
0x6080604052600436106102815760003560e01c80636bc87c3a1161014f578063a457c2d7116100c1578063d5aed6bf1161007a578063d5aed6bf146107c4578063dd62ed3e146107e4578063e5b55c6b1461082a578063e6c75f711461084a578063f2fde38b14610860578063f3f52ec71461088057600080fd5b8063a457c2d7146106fa578063a9059cbb1461071a578063baa043981461073a578063bea9849e1461076a578063c49b9a801461078a578063cbecede0146107aa57600080fd5b806388f820201161011357806388f820201461062e5780638da5cb5b146106675780638ee88c531461068557806395d89b41146106a5578063962dfc75146106ba5780639c74daf0146106da57600080fd5b80636bc87c3a146105ad5780636cd56878146105c357806370a08231146105e3578063715018a6146106035780637d1db4a51461061857600080fd5b80633685d419116101f35780635342acb4116101ac5780635342acb4146104b6578063583e0568146104ef5780635d098b381461052d5780635d83b4541461054d57806365e47de21461056d5780636612e66f1461058d57600080fd5b80633685d4191461040057806339509351146104205780633b124fe7146104405780633bd5d173146104565780634549b0391461047657806352390c021461049657600080fd5b806318160ddd1161024557806318160ddd1461034957806323b872dd1461035e578063296f0a0c1461037e5780632d8381191461039e5780632ff9c145146103be578063313ce567146103de57600080fd5b8063061c82d01461028d57806306fdde03146102af578063095ea7b3146102da5780630fec5dd01461030a57806313114a9d1461032a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a8366004612642565b6108a0565b005b3480156102bb57600080fd5b506102c4610934565b6040516102d1919061265b565b60405180910390f35b3480156102e657600080fd5b506102fa6102f53660046126c1565b6109c6565b60405190151581526020016102d1565b34801561031657600080fd5b506102ad610325366004612642565b6109dd565b34801561033657600080fd5b50600f545b6040519081526020016102d1565b34801561035557600080fd5b50600d5461033b565b34801561036a57600080fd5b506102fa6103793660046126ed565b610a0c565b34801561038a57600080fd5b506102ad61039936600461272e565b610a75565b3480156103aa57600080fd5b5061033b6103b9366004612642565b610ac1565b3480156103ca57600080fd5b506102ad6103d9366004612642565b610b45565b3480156103ea57600080fd5b5060125460405160ff90911681526020016102d1565b34801561040c57600080fd5b506102ad61041b36600461272e565b610b74565b34801561042c57600080fd5b506102fa61043b3660046126c1565b610d2a565b34801561044c57600080fd5b5061033b60135481565b34801561046257600080fd5b506102ad610471366004612642565b610d60565b34801561048257600080fd5b5061033b610491366004612760565b610e69565b3480156104a257600080fd5b506102ad6104b136600461272e565b610f18565b3480156104c257600080fd5b506102fa6104d136600461272e565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104fb57600080fd5b50601854610515906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016102d1565b34801561053957600080fd5b506102ad61054836600461272e565b61106b565b34801561055957600080fd5b506102ad61056836600461278c565b6110b7565b34801561057957600080fd5b506102ad610588366004612642565b61110c565b34801561059957600080fd5b506102ad6105a836600461278c565b61113b565b3480156105b957600080fd5b5061033b60145481565b3480156105cf57600080fd5b506102ad6105de36600461272e565b611190565b3480156105ef57600080fd5b5061033b6105fe36600461272e565b6111dc565b34801561060f57600080fd5b506102ad61123b565b34801561062457600080fd5b5061033b60165481565b34801561063a57600080fd5b506102fa61064936600461272e565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561067357600080fd5b506000546001600160a01b0316610515565b34801561069157600080fd5b506102ad6106a0366004612642565b6112af565b3480156106b157600080fd5b506102c461132f565b3480156106c657600080fd5b50600a54610515906001600160a01b031681565b3480156106e657600080fd5b50601954610515906001600160a01b031681565b34801561070657600080fd5b506102fa6107153660046126c1565b61133e565b34801561072657600080fd5b506102fa6107353660046126c1565b61138d565b34801561074657600080fd5b506102fa61075536600461272e565b60086020526000908152604090205460ff1681565b34801561077657600080fd5b506102ad61078536600461272e565b61139a565b34801561079657600080fd5b506102ad6107a53660046127b8565b6113ee565b3480156107b657600080fd5b506018546102fa9060ff1681565b3480156107d057600080fd5b506102ad6107df36600461272e565b61145f565b3480156107f057600080fd5b5061033b6107ff3660046127d3565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561083657600080fd5b50600b54610515906001600160a01b031681565b34801561085657600080fd5b5061033b60155481565b34801561086c57600080fd5b506102ad61087b36600461272e565b6114ab565b34801561088c57600080fd5b50600c54610515906001600160a01b031681565b6000546001600160a01b031633146108d35760405162461bcd60e51b81526004016108ca9061280c565b60405180910390fd5b600a81111561092f5760405162461bcd60e51b815260206004820152602260248201527f486f6c646572205265666c656374696f6e2063616e6e6f742065786365656420604482015261312560f01b60648201526084016108ca565b601355565b60606010805461094390612841565b80601f016020809104026020016040519081016040528092919081815260200182805461096f90612841565b80156109bc5780601f10610991576101008083540402835291602001916109bc565b820191906000526020600020905b81548152906001019060200180831161099f57829003601f168201915b5050505050905090565b60006109d3338484611595565b5060015b92915050565b6000546001600160a01b03163314610a075760405162461bcd60e51b81526004016108ca9061280c565b601555565b6000610a198484846116b9565b610a6b8433610a66856040518060600160405280602881526020016129f2602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611acd565b611595565b5060019392505050565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016108ca9061280c565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000600e54821115610b285760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108ca565b6000610b32611af9565b9050610b3e8382611b1c565b9392505050565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b81526004016108ca9061280c565b601755565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03811660009081526006602052604090205460ff16610c065760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108ca565b60005b600954811015610d2657816001600160a01b031660098281548110610c3057610c3061287b565b6000918252602090912001546001600160a01b031603610d145760098054610c5a906001906128a7565b81548110610c6a57610c6a61287b565b600091825260209091200154600980546001600160a01b039092169183908110610c9657610c9661287b565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600690925220805460ff191690556009805480610cee57610cee6128ba565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d1e816128d0565b915050610c09565b5050565b3360008181526007602090815260408083206001600160a01b038716845290915281205490916109d3918590610a669086611b28565b3360008181526006602052604090205460ff1615610dd55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016108ca565b600080610de184611b34565b92509250506000610df0611af9565b90506000610e0086858585611b7e565b50506001600160a01b038616600090815260036020526040902054909150610e289082611bd6565b6001600160a01b038616600090815260036020526040902055600e54610e4e9082611bd6565b600e55600f54610e5e9087611b28565b600f55505050505050565b6000600d54831115610ebd5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016108ca565b600080610ec985611b34565b92509250506000610ed8611af9565b905084610efc576000610eed87858585611b7e565b509095506109d7945050505050565b6000610f0a87858585611b7e565b5095506109d7945050505050565b6000546001600160a01b03163314610f425760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03811660009081526006602052604090205460ff1615610fab5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108ca565b6001600160a01b03811660009081526003602052604090205415611005576001600160a01b038116600090815260036020526040902054610feb90610ac1565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146110955760405162461bcd60e51b81526004016108ca9061280c565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110e15760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111365760405162461bcd60e51b81526004016108ca9061280c565b601655565b6000546001600160a01b031633146111655760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111ba5760405162461bcd60e51b81526004016108ca9061280c565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526006602052604081205460ff161561121957506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546109d790610ac1565b6000546001600160a01b031633146112655760405162461bcd60e51b81526004016108ca9061280c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112d95760405162461bcd60e51b81526004016108ca9061280c565b600a81111561132a5760405162461bcd60e51b815260206004820152601e60248201527f4c6971756964697479204665652063616e6e6f7420657863656564203125000060448201526064016108ca565b601455565b60606011805461094390612841565b60006109d33384610a6685604051806060016040528060258152602001612a1a602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611acd565b60006109d33384846116b9565b6000546001600160a01b031633146113c45760405162461bcd60e51b81526004016108ca9061280c565b601880546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6000546001600160a01b031633146114185760405162461bcd60e51b81526004016108ca9061280c565b6018805460ff19168215159081179091556040519081527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599060200160405180910390a150565b6000546001600160a01b031633146114895760405162461bcd60e51b81526004016108ca9061280c565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114d55760405162461bcd60e51b81526004016108ca9061280c565b6001600160a01b03811661153a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ca565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115f75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ca565b6001600160a01b0382166116585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ca565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661171d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ca565b6001600160a01b03821661177f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ca565b600081116117e15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108ca565b6000546001600160a01b0384811691161480159061180d57506000546001600160a01b03838116911614155b801561183257506001600160a01b03831660009081526005602052604090205460ff16155b801561185757506001600160a01b03821660009081526005602052604090205460ff16155b156118bf576016548111156118bf5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108ca565b60006118ca306111dc565b905060165481106118da57506016545b6000546001600160a01b0385811691161480159061190657506000546001600160a01b03848116911614155b801561192b57506001600160a01b03841660009081526005602052604090205460ff16155b801561195057506001600160a01b03831660009081526005602052604090205460ff16155b801561196457506001600160a01b03831615155b801561197b57506001600160a01b03831661dead14155b801561199557506019546001600160a01b03848116911614155b15611a115760006119a5846111dc565b6015549091506119b584836128e9565b1115611a0f5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016108ca565b505b60175481108015908190611a2d5750601854610100900460ff16155b8015611a5257506001600160a01b03851660009081526008602052604090205460ff16155b8015611a60575060185460ff165b15611a6e57611a6e82611be2565b6001600160a01b03851660009081526005602052604090205460019060ff1680611ab057506001600160a01b03851660009081526005602052604090205460ff165b15611ab9575060005b611ac586868684611d35565b505050505050565b60008184841115611af15760405162461bcd60e51b81526004016108ca919061265b565b505050900390565b6000806000611b06611eb3565b9092509050611b158282611b1c565b9250505090565b6000610b3e82846128fc565b6000610b3e82846128e9565b600080600080611b4685601354612035565b90506000611b5686601454612035565b90506000611b648784611bd6565b9050611b708183611bd6565b979296509094509092505050565b6000808080611b8d8886612043565b90506000611b9b8887612043565b90506000611ba98888612043565b90506000611bb78484611bd6565b9050611bc38183611bd6565b939b939a50919850919650505050505050565b6000610b3e82846128a7565b6018805461ff0019166101001790556000611bfe826002611b1c565b90506000611c0c8383611bd6565b905047611c188361204f565b6000611c244783611bd6565b90506000611c3e6064611c38846032612043565b90611b1c565b90506000611c4c8383611bd6565b90508115611cd657600b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c8e573d6000803e3d6000fd5b50600b54604080516001600160a01b039092168252602082018490527f1af6c280083a73c311541c1467fa5fed97da7b6fd18e594778af9bdb5793b5c4910160405180910390a15b611ce085826121c6565b60408051878152602081018390529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506018805461ff00191690555050505050565b60135460145482611d4b57600060138190556014555b6001600160a01b03861660009081526006602052604090205460ff168015611d8c57506001600160a01b03851660009081526006602052604090205460ff16155b15611da157611d9c868686612286565b611e9f565b6001600160a01b03861660009081526006602052604090205460ff16158015611de257506001600160a01b03851660009081526006602052604090205460ff165b15611df257611d9c8686866123c7565b6001600160a01b03861660009081526006602052604090205460ff16158015611e3457506001600160a01b03851660009081526006602052604090205460ff16155b15611e4457611d9c868686612488565b6001600160a01b03861660009081526006602052604090205460ff168015611e8457506001600160a01b03851660009081526006602052604090205460ff165b15611e9457611d9c8686866124e4565b611e9f868686612488565b82611ac55760139190915560145550505050565b600e54600d546000918291825b60095481101561200557826003600060098481548110611ee257611ee261287b565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f4d5750816004600060098481548110611f2657611f2661287b565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f6357600e54600d54945094505050509091565b611fa96003600060098481548110611f7d57611f7d61287b565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611bd6565b9250611ff16004600060098481548110611fc557611fc561287b565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611bd6565b915080611ffd816128d0565b915050611ec0565b50600d54600e5461201591611b1c565b82101561202c57600e54600d549350935050509091565b90939092509050565b6000610b3e6103e8611c3885855b6000610b3e828461291e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120845761208461287b565b60200260200101906001600160a01b031690816001600160a01b031681525050601860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211b9190612935565b8160018151811061212e5761212e61287b565b6001600160a01b03928316602091820292909201015260185461215a9130916201000090041684611595565b60185460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790612198908590600090869030904290600401612952565b600060405180830381600087803b1580156121b257600080fd5b505af1158015611ac5573d6000803e3d6000fd5b6018546121e49030906201000090046001600160a01b031684611595565b601854600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af115801561225a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061227f91906129c3565b5050505050565b600080600061229484611b34565b92509250925060006122a4611af9565b905060008060006122b788878787611b7e565b6001600160a01b038d1660009081526004602052604090205492955090935091506122e29089611bd6565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546123119084611bd6565b6001600160a01b03808c1660009081526003602052604080822093909355908b16815220546123409083611b28565b6001600160a01b038a1660009081526003602052604090205561236430868661256f565b61236e818761261e565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040516123b391815260200190565b60405180910390a350505050505050505050565b60008060006123d584611b34565b92509250925060006123e5611af9565b905060008060006123f888878787611b7e565b6001600160a01b038d1660009081526003602052604090205492955090935091506124239084611bd6565b6001600160a01b03808c16600090815260036020908152604080832094909455918c168152600490915220546124599088611b28565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546123409083611b28565b600080600061249684611b34565b92509250925060006124a6611af9565b905060008060006124b988878787611b7e565b6001600160a01b038d1660009081526003602052604090205492955090935091506123119084611bd6565b60008060006124f284611b34565b9250925092506000612502611af9565b9050600080600061251588878787611b7e565b6001600160a01b038d1660009081526004602052604090205492955090935091506125409089611bd6565b6001600160a01b038b166000908152600460209081526040808320939093556003905220546124239084611bd6565b6000821161257c57505050565b60006125888383612043565b6001600160a01b0385166000908152600360205260409020549091506125ae9082611b28565b6001600160a01b03851660009081526003602090815260408083209390935560069052205460ff1615612618576001600160a01b0384166000908152600460205260409020546125fe9084611b28565b6001600160a01b0385166000908152600460205260409020555b50505050565b600e5461262b9083611bd6565b600e55600f5461263b9082611b28565b600f555050565b60006020828403121561265457600080fd5b5035919050565b600060208083528351808285015260005b818110156126885785810183015185820160400152820161266c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146126be57600080fd5b50565b600080604083850312156126d457600080fd5b82356126df816126a9565b946020939093013593505050565b60008060006060848603121561270257600080fd5b833561270d816126a9565b9250602084013561271d816126a9565b929592945050506040919091013590565b60006020828403121561274057600080fd5b8135610b3e816126a9565b8035801515811461275b57600080fd5b919050565b6000806040838503121561277357600080fd5b823591506127836020840161274b565b90509250929050565b6000806040838503121561279f57600080fd5b82356127aa816126a9565b91506127836020840161274b565b6000602082840312156127ca57600080fd5b610b3e8261274b565b600080604083850312156127e657600080fd5b82356127f1816126a9565b91506020830135612801816126a9565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061285557607f821691505b60208210810361287557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156109d7576109d7612891565b634e487b7160e01b600052603160045260246000fd5b6000600182016128e2576128e2612891565b5060010190565b808201808211156109d7576109d7612891565b60008261291957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176109d7576109d7612891565b60006020828403121561294757600080fd5b8151610b3e816126a9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129a25784516001600160a01b03168352938301939183019160010161297d565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129d857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a85dc6b1861d4c5101597d7ab4341b049fb465d0e6fa10ccbc43025d8d13ad3e64736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004155d99914fac931021e5c5ca82f50a53c15b72900000000000000000000000030a1a2b4f2c6267a626ffd8533aae8512318aab30000000000000000000000009e5462479d82ca6ad86a082f9387deaa1a222103000000000000000000000000506a429054328d17517d9939650a6835ac9e26d9
-----Decoded View---------------
Arg [0] : cOwner (address): 0x4155D99914FAC931021e5c5cA82F50A53C15b729
Arg [1] : marketingWallet (address): 0x30A1a2b4F2C6267A626FfD8533aae8512318aAB3
Arg [2] : developerWallet (address): 0x9E5462479D82CA6Ad86A082F9387DEAA1a222103
Arg [3] : liquidityWallet (address): 0x506A429054328D17517D9939650a6835AC9E26d9
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000004155d99914fac931021e5c5ca82f50a53c15b729
Arg [1] : 00000000000000000000000030a1a2b4f2c6267a626ffd8533aae8512318aab3
Arg [2] : 0000000000000000000000009e5462479d82ca6ad86a082f9387deaa1a222103
Arg [3] : 000000000000000000000000506a429054328d17517d9939650a6835ac9e26d9
Deployed Bytecode Sourcemap
18689:19748:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26612:166;;;;;;;;;;-1:-1:-1;26612:166:0;;;;;:::i;:::-;;:::i;:::-;;21582:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22494:161;;;;;;;;;;-1:-1:-1;22494:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;22494:161:0;1208:187:1;26986:110:0;;;;;;;;;;-1:-1:-1;26986:110:0;;;;;:::i;:::-;;:::i;23615:87::-;;;;;;;;;;-1:-1:-1;23684:10:0;;23615:87;;;1546:25:1;;;1534:2;1519:18;23615:87:0;1400:177:1;21859:95:0;;;;;;;;;;-1:-1:-1;21939:7:0;;21859:95;;22663:313;;;;;;;;;;-1:-1:-1;22663:313:0;;;;;:::i;:::-;;:::i;26221:125::-;;;;;;;;;;-1:-1:-1;26221:125:0;;;;;:::i;:::-;;:::i;24874:254::-;;;;;;;;;;-1:-1:-1;24874:254:0;;;;;:::i;:::-;;:::i;26352:124::-;;;;;;;;;;-1:-1:-1;26352:124:0;;;;;:::i;:::-;;:::i;21768:83::-;;;;;;;;;;-1:-1:-1;21834:9:0;;21768:83;;21834:9;;;;2437:36:1;;2425:2;2410:18;21768:83:0;2295:184:1;25478:479:0;;;;;;;;;;-1:-1:-1;25478:479:0;;;;;:::i;:::-;;:::i;22984:218::-;;;;;;;;;;-1:-1:-1;22984:218:0;;;;;:::i;:::-;;:::i;19603:27::-;;;;;;;;;;;;;;;;23710:536;;;;;;;;;;-1:-1:-1;23710:536:0;;;;;:::i;:::-;;:::i;24254:612::-;;;;;;;;;;-1:-1:-1;24254:612:0;;;;;:::i;:::-;;:::i;25136:334::-;;;;;;;;;;-1:-1:-1;25136:334:0;;;;;:::i;:::-;;:::i;30098:123::-;;;;;;;;;;-1:-1:-1;30098:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;30186:27:0;30162:4;30186:27;;;:18;:27;;;;;;;;;30098:123;19934:42;;;;;;;;;;-1:-1:-1;19934:42:0;;;;;;;-1:-1:-1;;;;;19934:42:0;;;;;;-1:-1:-1;;;;;3093:32:1;;;3075:51;;3063:2;3048:18;19934:42:0;2902:230:1;25965:125:0;;;;;;;;;;-1:-1:-1;25965:125:0;;;;;:::i;:::-;;:::i;27696:130::-;;;;;;;;;;-1:-1:-1;27696:130:0;;;;;:::i;:::-;;:::i;27101:108::-;;;;;;;;;;-1:-1:-1;27101:108:0;;;;;:::i;:::-;;:::i;26482:122::-;;;;;;;;;;-1:-1:-1;26482:122:0;;;;;:::i;:::-;;:::i;19637:33::-;;;;;;;;;;;;;;;;26093:125;;;;;;;;;;-1:-1:-1;26093:125:0;;;;;:::i;:::-;;:::i;21962:198::-;;;;;;;;;;-1:-1:-1;21962:198:0;;;;;:::i;:::-;;:::i;10315:148::-;;;;;;;;;;;;;:::i;19728:42::-;;;;;;;;;;;;;;;;23487:120;;;;;;;;;;-1:-1:-1;23487:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;23579:20:0;23555:4;23579:20;;;:11;:20;;;;;;;;;23487:120;10101:79;;;;;;;;;;-1:-1:-1;10139:7:0;10166:6;-1:-1:-1;;;;;10166:6:0;10101:79;;26786:192;;;;;;;;;;-1:-1:-1;26786:192:0;;;;;:::i;:::-;;:::i;21673:87::-;;;;;;;;;;;;;:::i;19175:31::-;;;;;;;;;;-1:-1:-1;19175:31:0;;;;-1:-1:-1;;;;;19175:31:0;;;19983:40;;;;;;;;;;-1:-1:-1;19983:40:0;;;;-1:-1:-1;;;;;19983:40:0;;;23210:269;;;;;;;;;;-1:-1:-1;23210:269:0;;;;;:::i;:::-;;:::i;22168:167::-;;;;;;;;;;-1:-1:-1;22168:167:0;;;;;:::i;:::-;;:::i;19071:61::-;;;;;;;;;;-1:-1:-1;19071:61:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;27411:178;;;;;;;;;;-1:-1:-1;27411:178:0;;;;;:::i;:::-;;:::i;27215:151::-;;;;;;;;;;-1:-1:-1;27215:151:0;;;;;:::i;:::-;;:::i;19856:42::-;;;;;;;;;;-1:-1:-1;19856:42:0;;;;;;;;27597:91;;;;;;;;;;-1:-1:-1;27597:91:0;;;;;:::i;:::-;;:::i;22343:143::-;;;;;;;;;;-1:-1:-1;22343:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;22451:18:0;;;22424:7;22451:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;22343:143;19210:31;;;;;;;;;;-1:-1:-1;19210:31:0;;;;-1:-1:-1;;;;;19210:31:0;;;19682:39;;;;;;;;;;;;;;;;10471:244;;;;;;;;;;-1:-1:-1;10471:244:0;;;;;:::i;:::-;;:::i;19245:31::-;;;;;;;;;;-1:-1:-1;19245:31:0;;;;-1:-1:-1;;;;;19245:31:0;;;26612:166;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;;;;;;;;;26702:2:::1;26692:6;:12;;26684:59;;;::::0;-1:-1:-1;;;26684:59:0;;4806:2:1;26684:59:0::1;::::0;::::1;4788:21:1::0;4845:2;4825:18;;;4818:30;4884:34;4864:18;;;4857:62;-1:-1:-1;;;4935:18:1;;;4928:32;4977:19;;26684:59:0::1;4604:398:1::0;26684:59:0::1;26754:7;:16:::0;26612:166::o;21582:83::-;21619:13;21652:5;21645:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21582:83;:::o;22494:161::-;22569:4;22586:39;9461:10;22609:7;22618:6;22586:8;:39::i;:::-;-1:-1:-1;22643:4:0;22494:161;;;;;:::o;26986:110::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;27062:14:::1;:26:::0;26986:110::o;22663:313::-;22761:4;22778:36;22788:6;22796:9;22807:6;22778:9;:36::i;:::-;22825:121;22834:6;9461:10;22856:89;22894:6;22856:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22856:19:0;;;;;;:11;:19;;;;;;;;9461:10;22856:33;;;;;;;;;;:37;:89::i;:::-;22825:8;:121::i;:::-;-1:-1:-1;22964:4:0;22663:313;;;;;:::o;26221:125::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;26304:16:::1;:34:::0;;-1:-1:-1;;;;;;26304:34:0::1;-1:-1:-1::0;;;;;26304:34:0;;;::::1;::::0;;;::::1;::::0;;26221:125::o;24874:254::-;24940:7;24979;;24968;:18;;24960:73;;;;-1:-1:-1;;;24960:73:0;;5594:2:1;24960:73:0;;;5576:21:1;5633:2;5613:18;;;5606:30;5672:34;5652:18;;;5645:62;-1:-1:-1;;;5723:18:1;;;5716:40;5773:19;;24960:73:0;5392:406:1;24960:73:0;25046:19;25068:10;:8;:10::i;:::-;25046:32;-1:-1:-1;25096:24:0;:7;25046:32;25096:11;:24::i;:::-;25089:31;24874:254;-1:-1:-1;;;24874:254:0:o;26352:124::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;26437:16:::1;:31:::0;26352:124::o;25478:479::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25558:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;25550:60;;;::::0;-1:-1:-1;;;25550:60:0;;6005:2:1;25550:60:0::1;::::0;::::1;5987:21:1::0;6044:2;6024:18;;;6017:30;6083:29;6063:18;;;6056:57;6130:18;;25550:60:0::1;5803:351:1::0;25550:60:0::1;25628:9;25623:327;25647:9;:16:::0;25643:20;::::1;25623:327;;;25705:7;-1:-1:-1::0;;;;;25689:23:0::1;:9;25699:1;25689:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;25689:12:0::1;:23:::0;25685:254:::1;;25748:9;25758:16:::0;;:20:::1;::::0;25777:1:::1;::::0;25758:20:::1;:::i;:::-;25748:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;25733:9:::1;:12:::0;;-1:-1:-1;;;;;25748:31:0;;::::1;::::0;25743:1;;25733:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;25733:46:0::1;-1:-1:-1::0;;;;;25733:46:0;;::::1;;::::0;;25798:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;25837:11:::1;:20:::0;;;;:28;;-1:-1:-1;;25837:28:0::1;::::0;;25884:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;25884:15:0;;;;;-1:-1:-1;;;;;;25884:15:0::1;::::0;;;;;25623:327:::1;25478:479:::0;:::o;25685:254::-:1;25665:3:::0;::::1;::::0;::::1;:::i;:::-;;;;25623:327;;;;25478:479:::0;:::o;22984:218::-;9461:10;23072:4;23121:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;23121:34:0;;;;;;;;;;23072:4;;23089:83;;23112:7;;23121:50;;23160:10;23121:38;:50::i;23710:536::-;9461:10;23762:14;23811:19;;;:11;:19;;;;;;;;23810:20;23802:77;;;;-1:-1:-1;;;23802:77:0;;7030:2:1;23802:77:0;;;7012:21:1;7069:2;7049:18;;;7042:30;7108:34;7088:18;;;7081:62;-1:-1:-1;;;7159:18:1;;;7152:42;7211:19;;23802:77:0;6828:408:1;23802:77:0;23895:12;23909:18;23931:20;23943:7;23931:11;:20::i;:::-;23892:59;;;;;23962:19;23984:10;:8;:10::i;:::-;23962:32;;24006:15;24027:51;24039:7;24048:4;24054:10;24066:11;24027;:51::i;:::-;-1:-1:-1;;;;;;;24109:15:0;;;;;;:7;:15;;;;;;24005:73;;-1:-1:-1;24109:28:0;;24005:73;24109:19;:28::i;:::-;-1:-1:-1;;;;;24091:15:0;;;;;;:7;:15;;;;;:46;24166:7;;:20;;24178:7;24166:11;:20::i;:::-;24148:7;:38;24215:10;;:23;;24230:7;24215:14;:23::i;:::-;24197:10;:41;-1:-1:-1;;;;;;23710:536:0:o;24254:612::-;24344:7;24383;;24372;:18;;24364:62;;;;-1:-1:-1;;;24364:62:0;;7443:2:1;24364:62:0;;;7425:21:1;7482:2;7462:18;;;7455:30;7521:33;7501:18;;;7494:61;7572:18;;24364:62:0;7241:355:1;24364:62:0;24440:12;24454:18;24476:20;24488:7;24476:11;:20::i;:::-;24437:59;;;;;24507:19;24529:10;:8;:10::i;:::-;24507:32;;24557:17;24552:307;;24592:15;24613:51;24625:7;24634:4;24640:10;24652:11;24613;:51::i;:::-;-1:-1:-1;24591:73:0;;-1:-1:-1;24679:14:0;;-1:-1:-1;;;;;24679:14:0;24552:307;24731:23;24759:51;24771:7;24780:4;24786:10;24798:11;24759;:51::i;:::-;-1:-1:-1;24728:82:0;-1:-1:-1;24825:22:0;;-1:-1:-1;;;;;24825:22:0;25136:334;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25217:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;25216:21;25208:61;;;::::0;-1:-1:-1;;;25208:61:0;;6005:2:1;25208:61:0::1;::::0;::::1;5987:21:1::0;6044:2;6024:18;;;6017:30;6083:29;6063:18;;;6056:57;6130:18;;25208:61:0::1;5803:351:1::0;25208:61:0::1;-1:-1:-1::0;;;;;25286:16:0;::::1;25305:1;25286:16:::0;;;:7:::1;:16;::::0;;;;;:20;25282:109:::1;;-1:-1:-1::0;;;;;25362:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;25342:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;25323:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;25282:109:::1;-1:-1:-1::0;;;;;25401:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;25401:27:0::1;25424:4;25401:27:::0;;::::1;::::0;;;25439:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;25439:23:0::1;::::0;;::::1;::::0;;25136:334::o;25965:125::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;26048:16:::1;:34:::0;;-1:-1:-1;;;;;;26048:34:0::1;-1:-1:-1::0;;;;;26048:34:0;;;::::1;::::0;;;::::1;::::0;;25965:125::o;27696:130::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27783:31:0;;;::::1;;::::0;;;:28:::1;:31;::::0;;;;:35;;-1:-1:-1;;27783:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27696:130::o;27101:108::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;27175:12:::1;:26:::0;27101:108::o;26482:122::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26565:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:31;;-1:-1:-1;;26565:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26482:122::o;26093:125::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;26176:16:::1;:34:::0;;-1:-1:-1;;;;;;26176:34:0::1;-1:-1:-1::0;;;;;26176:34:0;;;::::1;::::0;;;::::1;::::0;;26093:125::o;21962:198::-;-1:-1:-1;;;;;22052:20:0;;22028:7;22052:20;;;:11;:20;;;;;;;;22048:49;;;-1:-1:-1;;;;;;22081:16:0;;;;;:7;:16;;;;;;;21962:198::o;22048:49::-;-1:-1:-1;;;;;22135:16:0;;;;;;:7;:16;;;;;;22115:37;;:19;:37::i;10315:148::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;10422:1:::1;10406:6:::0;;10385:40:::1;::::0;-1:-1:-1;;;;;10406:6:0;;::::1;::::0;10385:40:::1;::::0;10422:1;;10385:40:::1;10453:1;10436:19:::0;;-1:-1:-1;;;;;;10436:19:0::1;::::0;;10315:148::o;26786:192::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;26894:2:::1;26878:12;:18;;26870:61;;;::::0;-1:-1:-1;;;26870:61:0;;7803:2:1;26870:61:0::1;::::0;::::1;7785:21:1::0;7842:2;7822:18;;;7815:30;7881:32;7861:18;;;7854:60;7931:18;;26870:61:0::1;7601:354:1::0;26870:61:0::1;26942:13;:28:::0;26786:192::o;21673:87::-;21712:13;21745:7;21738:14;;;;;:::i;23210:269::-;23303:4;23320:129;9461:10;23343:7;23352:96;23391:15;23352:96;;;;;;;;;;;;;;;;;9461:10;23352:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;23352:34:0;;;;;;;;;;;;:38;:96::i;22168:167::-;22246:4;22263:42;9461:10;22287:9;22298:6;22263:9;:42::i;27411:178::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;27547:16:::1;:34:::0;;-1:-1:-1;;;;;27547:34:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;27547:34:0;;::::1;::::0;;;::::1;::::0;;27411:178::o;27215:151::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;27285:22:::1;:26:::0;;-1:-1:-1;;27285:26:0::1;::::0;::::1;;::::0;;::::1;::::0;;;27327:31:::1;::::0;1348:41:1;;;27327:31:0::1;::::0;1336:2:1;1321:18;27327:31:0::1;;;;;;;27215:151:::0;:::o;27597:91::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;27662:14:::1;:18:::0;;-1:-1:-1;;;;;;27662:18:0::1;-1:-1:-1::0;;;;;27662:18:0;;;::::1;::::0;;;::::1;::::0;;27597:91::o;10471:244::-;10228:6;;-1:-1:-1;;;;;10228:6:0;9461:10;10228:22;10220:67;;;;-1:-1:-1;;;10220:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10560:22:0;::::1;10552:73;;;::::0;-1:-1:-1;;;10552:73:0;;8162:2:1;10552:73:0::1;::::0;::::1;8144:21:1::0;8201:2;8181:18;;;8174:30;8240:34;8220:18;;;8213:62;-1:-1:-1;;;8291:18:1;;;8284:36;8337:19;;10552:73:0::1;7960:402:1::0;10552:73:0::1;10662:6;::::0;;10641:38:::1;::::0;-1:-1:-1;;;;;10641:38:0;;::::1;::::0;10662:6;::::1;::::0;10641:38:::1;::::0;::::1;10690:6;:17:::0;;-1:-1:-1;;;;;;10690:17:0::1;-1:-1:-1::0;;;;;10690:17:0;;;::::1;::::0;;;::::1;::::0;;10471:244::o;30229:337::-;-1:-1:-1;;;;;30322:19:0;;30314:68;;;;-1:-1:-1;;;30314:68:0;;8569:2:1;30314:68:0;;;8551:21:1;8608:2;8588:18;;;8581:30;8647:34;8627:18;;;8620:62;-1:-1:-1;;;8698:18:1;;;8691:34;8742:19;;30314:68:0;8367:400:1;30314:68:0;-1:-1:-1;;;;;30401:21:0;;30393:68;;;;-1:-1:-1;;;30393:68:0;;8974:2:1;30393:68:0;;;8956:21:1;9013:2;8993:18;;;8986:30;9052:34;9032:18;;;9025:62;-1:-1:-1;;;9103:18:1;;;9096:32;9145:19;;30393:68:0;8772:398:1;30393:68:0;-1:-1:-1;;;;;30474:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;30526:32;;1546:25:1;;;30526:32:0;;1519:18:1;30526:32:0;;;;;;;30229:337;;;:::o;30574:1756::-;-1:-1:-1;;;;;30696:18:0;;30688:68;;;;-1:-1:-1;;;30688:68:0;;9377:2:1;30688:68:0;;;9359:21:1;9416:2;9396:18;;;9389:30;9455:34;9435:18;;;9428:62;-1:-1:-1;;;9506:18:1;;;9499:35;9551:19;;30688:68:0;9175:401:1;30688:68:0;-1:-1:-1;;;;;30775:16:0;;30767:64;;;;-1:-1:-1;;;30767:64:0;;9783:2:1;30767:64:0;;;9765:21:1;9822:2;9802:18;;;9795:30;9861:34;9841:18;;;9834:62;-1:-1:-1;;;9912:18:1;;;9905:33;9955:19;;30767:64:0;9581:399:1;30767:64:0;30859:1;30850:6;:10;30842:64;;;;-1:-1:-1;;;30842:64:0;;10187:2:1;30842:64:0;;;10169:21:1;10226:2;10206:18;;;10199:30;10265:34;10245:18;;;10238:62;-1:-1:-1;;;10316:18:1;;;10309:39;10365:19;;30842:64:0;9985:405:1;30842:64:0;10139:7;10166:6;-1:-1:-1;;;;;30923:15:0;;;10166:6;;30923:15;;;;:32;;-1:-1:-1;10139:7:0;10166:6;-1:-1:-1;;;;;30942:13:0;;;10166:6;;30942:13;;30923:32;:61;;;;-1:-1:-1;;;;;;30960:24:0;;;;;;:18;:24;;;;;;;;30959:25;30923:61;:88;;;;-1:-1:-1;;;;;;30989:22:0;;;;;;:18;:22;;;;;;;;30988:23;30923:88;30919:196;;;31046:12;;31036:6;:22;;31028:75;;;;-1:-1:-1;;;31028:75:0;;10597:2:1;31028:75:0;;;10579:21:1;10636:2;10616:18;;;10609:30;10675:34;10655:18;;;10648:62;-1:-1:-1;;;10726:18:1;;;10719:38;10774:19;;31028:75:0;10395:404:1;31028:75:0;31127:28;31158:24;31176:4;31158:9;:24::i;:::-;31127:55;;31223:12;;31199:20;:36;31195:104;;-1:-1:-1;31275:12:0;;31195:104;10139:7;10166:6;-1:-1:-1;;;;;31327:15:0;;;10166:6;;31327:15;;;;:45;;-1:-1:-1;10139:7:0;10166:6;-1:-1:-1;;;;;31359:13:0;;;10166:6;;31359:13;;31327:45;:78;;;;-1:-1:-1;;;;;;31381:24:0;;;;;;:18;:24;;;;;;;;31380:25;31327:78;:109;;;;-1:-1:-1;;;;;;31414:22:0;;;;;;:18;:22;;;;;;;;31413:23;31327:109;:142;;;;-1:-1:-1;;;;;;31453:16:0;;;;31327:142;:180;;;;-1:-1:-1;;;;;;31486:21:0;;31500:6;31486:21;;31327:180;:217;;;;-1:-1:-1;31530:14:0;;-1:-1:-1;;;;;31524:20:0;;;31530:14;;31524:20;;31327:217;31309:490;;;31573:32;31608:13;31618:2;31608:9;:13::i;:::-;31699:14;;31573:48;;-1:-1:-1;31662:33:0;31689:6;31573:48;31662:33;:::i;:::-;:51;;31636:149;;;;-1:-1:-1;;;31636:149:0;;11136:2:1;31636:149:0;;;11118:21:1;11175:2;11155:18;;;11148:30;11214:34;11194:18;;;11187:62;-1:-1:-1;;;11265:18:1;;;11258:34;11309:19;;31636:149:0;10934:400:1;31636:149:0;31556:243;31309:490;31862:16;;31838:40;;;;;;;31907:56;;-1:-1:-1;31946:17:0;;;;;;;31945:18;31907:56;:108;;;;-1:-1:-1;;;;;;31981:34:0;;;;;;:28;:34;;;;;;;;31980:35;31907:108;:147;;;;-1:-1:-1;32032:22:0;;;;31907:147;31889:240;;;32081:36;32096:20;32081:14;:36::i;:::-;-1:-1:-1;;;;;32177:24:0;;32143:12;32177:24;;;:18;:24;;;;;;32158:4;;32177:24;;;:50;;-1:-1:-1;;;;;;32205:22:0;;;;;;:18;:22;;;;;;;;32177:50;32173:98;;;-1:-1:-1;32254:5:0;32173:98;32281:41;32296:4;32302:2;32306:6;32314:7;32281:14;:41::i;:::-;30677:1653;;;30574:1756;;;:::o;5379:206::-;5465:7;5526:12;5518:6;;;;5510:29;;;;-1:-1:-1;;;5510:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;5561:5:0;;;5379:206::o;28882:163::-;28923:7;28944:15;28961;28980:19;:17;:19::i;:::-;28943:56;;-1:-1:-1;28943:56:0;-1:-1:-1;29017:20:0;28943:56;;29017:11;:20::i;:::-;29010:27;;;;28882:163;:::o;4237:98::-;4295:7;4322:5;4326:1;4322;:5;:::i;3100:98::-;3158:7;3185:5;3189:1;3185;:5;:::i;27992:392::-;28052:7;28061;28070;28090:12;28111:30;28124:7;28133;;28111:12;:30::i;:::-;28090:51;;28152:18;28173:36;28186:7;28195:13;;28173:12;:36::i;:::-;28152:57;-1:-1:-1;28220:23:0;28246:17;:7;28258:4;28246:11;:17::i;:::-;28220:43;-1:-1:-1;28292:31:0;28220:43;28312:10;28292:19;:31::i;:::-;28274:49;28359:4;;-1:-1:-1;28365:10:0;;-1:-1:-1;27992:392:0;;-1:-1:-1;;;27992:392:0:o;28392:482::-;28507:7;;;;28566:24;:7;28578:11;28566;:24::i;:::-;28545:45;-1:-1:-1;28601:12:0;28622:21;:4;28631:11;28622:8;:21::i;:::-;28601:42;-1:-1:-1;28654:18:0;28675:27;:10;28690:11;28675:14;:27::i;:::-;28654:48;-1:-1:-1;28713:23:0;28739:17;:7;28751:4;28739:11;:17::i;:::-;28713:43;-1:-1:-1;28785:31:0;28713:43;28805:10;28785:19;:31::i;:::-;28835:7;;;;-1:-1:-1;28861:4:0;;-1:-1:-1;28392:482:0;;-1:-1:-1;;;;;;;28392:482:0:o;3481:98::-;3539:7;3566:5;3570:1;3566;:5;:::i;32338:1010::-;20378:17;:24;;-1:-1:-1;;20378:24:0;;;;;;32490:27:::1;:20:::0;32515:1:::1;32490:24;:27::i;:::-;32470:47:::0;-1:-1:-1;32528:17:0::1;32548:30;:20:::0;32470:47;32548:24:::1;:30::i;:::-;32528:50:::0;-1:-1:-1;32614:21:0::1;32680:22;32697:4:::0;32680:16:::1;:22::i;:::-;32779:18;32800:41;:21;32826:14:::0;32800:25:::1;:41::i;:::-;32779:62:::0;-1:-1:-1;32885:20:0::1;32917:27;32940:3;32917:18;32779:62:::0;32932:2:::1;32917:14;:18::i;:::-;:22:::0;::::1;:27::i;:::-;32885:59:::0;-1:-1:-1;32955:23:0::1;32981:28;:10:::0;32885:59;32981:14:::1;:28::i;:::-;32955:54:::0;-1:-1:-1;33024:16:0;;33020:165:::1;;33065:16;::::0;33057:48:::1;::::0;-1:-1:-1;;;;;33065:16:0;;::::1;::::0;33057:48;::::1;;;::::0;33092:12;;33065:16:::1;33057:48:::0;33065:16;33057:48;33092:12;33065:16;33057:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;33142:16:0::1;::::0;33125:48:::1;::::0;;-1:-1:-1;;;;;33142:16:0;;::::1;11735:51:1::0;;11817:2;11802:18;;11795:34;;;33125:48:0::1;::::0;11708:18:1;33125:48:0::1;;;;;;;33020:165;33234:40;33247:9;33258:15;33234:12;:40::i;:::-;33292:48;::::0;;12042:25:1;;;12098:2;12083:18;;12076:34;;;12126:18;;;12119:34;;;33292:48:0::1;::::0;12030:2:1;12015:18;33292:48:0::1;;;;;;;-1:-1:-1::0;;20425:17:0;:25;;-1:-1:-1;;20425:25:0;;;-1:-1:-1;;;;;32338:1010:0:o;34484:1061::-;34622:7;;34671:13;;34702:7;34697:90;;34742:1;34726:7;:17;;;34758:13;:17;34697:90;-1:-1:-1;;;;;34803:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;34827:22:0;;;;;;:11;:22;;;;;;;;34826:23;34803:46;34799:605;;;34866:48;34888:6;34896:9;34907:6;34866:21;:48::i;:::-;34799:605;;;-1:-1:-1;;;;;34939:19:0;;;;;;:11;:19;;;;;;;;34938:20;:46;;;;-1:-1:-1;;;;;;34962:22:0;;;;;;:11;:22;;;;;;;;34938:46;34934:470;;;35001:46;35021:6;35029:9;35040:6;35001:19;:46::i;34934:470::-;-1:-1:-1;;;;;35072:19:0;;;;;;:11;:19;;;;;;;;35071:20;:47;;;;-1:-1:-1;;;;;;35096:22:0;;;;;;:11;:22;;;;;;;;35095:23;35071:47;35067:337;;;35135:44;35153:6;35161:9;35172:6;35135:17;:44::i;35067:337::-;-1:-1:-1;;;;;35203:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;35226:22:0;;;;;;:11;:22;;;;;;;;35203:45;35199:205;;;35265:48;35287:6;35295:9;35306:6;35265:21;:48::i;35199:205::-;35348:44;35366:6;35374:9;35385:6;35348:17;:44::i;:::-;35421:7;35416:122;;35445:7;:30;;;;35490:13;:36;-1:-1:-1;;;;34484:1061:0:o;29053:555::-;29150:7;;29186;;29103;;;;;29204:289;29228:9;:16;29224:20;;29204:289;;;29294:7;29270;:21;29278:9;29288:1;29278:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;29278:12:0;29270:21;;;;;;;;;;;;;:31;;:66;;;29329:7;29305;:21;29313:9;29323:1;29313:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;29313:12:0;29305:21;;;;;;;;;;;;;:31;29270:66;29266:97;;;29346:7;;29355;;29338:25;;;;;;;29053:555;;:::o;29266:97::-;29388:34;29400:7;:21;29408:9;29418:1;29408:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;29408:12:0;29400:21;;;;;;;;;;;;;29388:7;;:11;:34::i;:::-;29378:44;;29447:34;29459:7;:21;29467:9;29477:1;29467:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;29467:12:0;29459:21;;;;;;;;;;;;;29447:7;;:11;:34::i;:::-;29437:44;-1:-1:-1;29246:3:0;;;;:::i;:::-;;;;29204:289;;;-1:-1:-1;29529:7:0;;29517;;:20;;:11;:20::i;:::-;29507:7;:30;29503:61;;;29547:7;;29556;;29539:25;;;;;;29053:555;;:::o;29503:61::-;29583:7;;29592;;-1:-1:-1;29053:555:0;-1:-1:-1;29053:555:0:o;29957:133::-;30030:7;30057:25;30077:4;30057:15;:6;30068:3;3838:98;3896:7;3923:5;3927:1;3923;:5;:::i;33354:592::-;33504:16;;;33518:1;33504:16;;;;;;;;33480:21;;33504:16;;;;;;;;;;-1:-1:-1;33504:16:0;33480:40;;33549:4;33531;33536:1;33531:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;33531:23:0;;;-1:-1:-1;;;;;33531:23:0;;;;;33575:16;;;;;;;;;-1:-1:-1;;;;;33575:16:0;-1:-1:-1;;;;;33575:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33565:4;33570:1;33565:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;33565:33:0;;;:7;;;;;;;;;:33;33643:16;;33611:63;;33628:4;;33643:16;;;;33662:11;33611:8;:63::i;:::-;33713:16;;:225;;-1:-1:-1;;;33713:225:0;;:16;;;;-1:-1:-1;;;;;33713:16:0;;:67;;:225;;33795:11;;33821:1;;33865:4;;33892;;33912:15;;33713:225;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33952:524;34132:16;;34100:63;;34117:4;;34132:16;;;-1:-1:-1;;;;;34132:16:0;34151:11;34100:8;:63::i;:::-;34206:16;;34411;;34206:262;;-1:-1:-1;;;34206:262:0;;34279:4;34206:262;;;14051:34:1;14101:18;;;14094:34;;;34325:1:0;14144:18:1;;;14137:34;;;14187:18;;;14180:34;-1:-1:-1;;;;;34411:16:0;;;14230:19:1;;;14223:44;34442:15:0;14283:19:1;;;14276:35;34206:16:0;;;;;;:32;;34246:9;;13985:19:1;;34206:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;33952:524;;:::o;37726:708::-;37829:23;37854:12;37868:18;37890:20;37902:7;37890:11;:20::i;:::-;37828:82;;;;;;37921:19;37943:10;:8;:10::i;:::-;37921:32;;37965:15;37982:23;38007:12;38023:51;38035:7;38044:4;38050:10;38062:11;38023;:51::i;:::-;-1:-1:-1;;;;;38105:15:0;;;;;;:7;:15;;;;;;37964:110;;-1:-1:-1;37964:110:0;;-1:-1:-1;37964:110:0;-1:-1:-1;38105:28:0;;38125:7;38105:19;:28::i;:::-;-1:-1:-1;;;;;38087:15:0;;;;;;:7;:15;;;;;;;;:46;;;;38162:7;:15;;;;:28;;38182:7;38162:19;:28::i;:::-;-1:-1:-1;;;;;38144:15:0;;;;;;;:7;:15;;;;;;:46;;;;38222:18;;;;;;;:39;;38245:15;38222:22;:39::i;:::-;-1:-1:-1;;;;;38201:18:0;;;;;;:7;:18;;;;;:60;38274:58;38301:4;38308:10;38320:11;38274:18;:58::i;:::-;38343:23;38355:4;38361;38343:11;:23::i;:::-;38399:9;-1:-1:-1;;;;;38382:44:0;38391:6;-1:-1:-1;;;;;38382:44:0;;38410:15;38382:44;;;;1546:25:1;;1534:2;1519:18;;1400:177;38382:44:0;;;;;;;;37817:617;;;;;;;37726:708;;;:::o;36998:720::-;37099:23;37124:12;37138:18;37160:20;37172:7;37160:11;:20::i;:::-;37098:82;;;;;;37191:19;37213:10;:8;:10::i;:::-;37191:32;;37235:15;37252:23;37277:12;37293:51;37305:7;37314:4;37320:10;37332:11;37293;:51::i;:::-;-1:-1:-1;;;;;37375:15:0;;;;;;:7;:15;;;;;;37234:110;;-1:-1:-1;37234:110:0;;-1:-1:-1;37234:110:0;-1:-1:-1;37375:28:0;;37234:110;37375:19;:28::i;:::-;-1:-1:-1;;;;;37357:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;37435:18;;;;;:7;:18;;;;;:39;;37458:15;37435:22;:39::i;:::-;-1:-1:-1;;;;;37414:18:0;;;;;;:7;:18;;;;;;;;:60;;;;37506:7;:18;;;;:39;;37529:15;37506:22;:39::i;35553:650::-;35652:23;35677:12;35691:18;35713:20;35725:7;35713:11;:20::i;:::-;35651:82;;;;;;35744:19;35766:10;:8;:10::i;:::-;35744:32;;35788:15;35805:23;35830:12;35846:51;35858:7;35867:4;35873:10;35885:11;35846;:51::i;:::-;-1:-1:-1;;;;;35931:15:0;;;;;;:7;:15;;;;;;35787:110;;-1:-1:-1;35787:110:0;;-1:-1:-1;35787:110:0;-1:-1:-1;35931:28:0;;35787:110;35931:19;:28::i;36211:779::-;36314:23;36339:12;36353:18;36375:20;36387:7;36375:11;:20::i;:::-;36313:82;;;;;;36406:19;36428:10;:8;:10::i;:::-;36406:32;;36450:15;36467:23;36492:12;36508:51;36520:7;36529:4;36535:10;36547:11;36508;:51::i;:::-;-1:-1:-1;;;;;36590:15:0;;;;;;:7;:15;;;;;;36449:110;;-1:-1:-1;36449:110:0;;-1:-1:-1;36449:110:0;-1:-1:-1;36590:28:0;;36610:7;36590:19;:28::i;:::-;-1:-1:-1;;;;;36572:15:0;;;;;;:7;:15;;;;;;;;:46;;;;36647:7;:15;;;;:28;;36667:7;36647:19;:28::i;29616:333::-;29728:1;29717:7;:12;29713:29;;29616:333;;;:::o;29713:29::-;29754:15;29772:24;:7;29784:11;29772;:24::i;:::-;-1:-1:-1;;;;;29821:11:0;;;;;;:7;:11;;;;;;29754:42;;-1:-1:-1;29821:24:0;;29754:42;29821:15;:24::i;:::-;-1:-1:-1;;;;;29807:11:0;;;;;;:7;:11;;;;;;;;:38;;;;29860:11;:15;;;;;;29856:86;;;-1:-1:-1;;;;;29906:11:0;;;;;;:7;:11;;;;;;:24;;29922:7;29906:15;:24::i;:::-;-1:-1:-1;;;;;29892:11:0;;;;;;:7;:11;;;;;:38;29856:86;29702:247;29616:333;;;:::o;27834:150::-;27915:7;;:17;;27927:4;27915:11;:17::i;:::-;27902:7;:30;27956:10;;:20;;27971:4;27956:14;:20::i;:::-;27943:10;:33;-1:-1:-1;;27834:150:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;807:70;752:131;:::o;888:315::-;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2484:160::-;2549:20;;2605:13;;2598:21;2588:32;;2578:60;;2634:1;2631;2624:12;2578:60;2484:160;;;:::o;2649:248::-;2714:6;2722;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2827:9;2814:23;2804:33;;2856:35;2887:2;2876:9;2872:18;2856:35;:::i;:::-;2846:45;;2649:248;;;;;:::o;3137:315::-;3202:6;3210;3263:2;3251:9;3242:7;3238:23;3234:32;3231:52;;;3279:1;3276;3269:12;3231:52;3318:9;3305:23;3337:31;3362:5;3337:31;:::i;:::-;3387:5;-1:-1:-1;3411:35:1;3442:2;3427:18;;3411:35;:::i;3665:180::-;3721:6;3774:2;3762:9;3753:7;3749:23;3745:32;3742:52;;;3790:1;3787;3780:12;3742:52;3813:26;3829:9;3813:26;:::i;3850:388::-;3918:6;3926;3979:2;3967:9;3958:7;3954:23;3950:32;3947:52;;;3995:1;3992;3985:12;3947:52;4034:9;4021:23;4053:31;4078:5;4053:31;:::i;:::-;4103:5;-1:-1:-1;4160:2:1;4145:18;;4132:32;4173:33;4132:32;4173:33;:::i;:::-;4225:7;4215:17;;;3850:388;;;;;:::o;4243:356::-;4445:2;4427:21;;;4464:18;;;4457:30;4523:34;4518:2;4503:18;;4496:62;4590:2;4575:18;;4243:356::o;5007:380::-;5086:1;5082:12;;;;5129;;;5150:61;;5204:4;5196:6;5192:17;5182:27;;5150:61;5257:2;5249:6;5246:14;5226:18;5223:38;5220:161;;5303:10;5298:3;5294:20;5291:1;5284:31;5338:4;5335:1;5328:15;5366:4;5363:1;5356:15;5220:161;;5007:380;;;:::o;6159:127::-;6220:10;6215:3;6211:20;6208:1;6201:31;6251:4;6248:1;6241:15;6275:4;6272:1;6265:15;6291:127;6352:10;6347:3;6343:20;6340:1;6333:31;6383:4;6380:1;6373:15;6407:4;6404:1;6397:15;6423:128;6490:9;;;6511:11;;;6508:37;;;6525:18;;:::i;6556:127::-;6617:10;6612:3;6608:20;6605:1;6598:31;6648:4;6645:1;6638:15;6672:4;6669:1;6662:15;6688:135;6727:3;6748:17;;;6745:43;;6768:18;;:::i;:::-;-1:-1:-1;6815:1:1;6804:13;;6688:135::o;10804:125::-;10869:9;;;10890:10;;;10887:36;;;10903:18;;:::i;11339:217::-;11379:1;11405;11395:132;;11449:10;11444:3;11440:20;11437:1;11430:31;11484:4;11481:1;11474:15;11512:4;11509:1;11502:15;11395:132;-1:-1:-1;11541:9:1;;11339:217::o;12164:168::-;12237:9;;;12268;;12285:15;;;12279:22;;12265:37;12255:71;;12306:18;;:::i;12469:251::-;12539:6;12592:2;12580:9;12571:7;12567:23;12563:32;12560:52;;;12608:1;12605;12598:12;12560:52;12640:9;12634:16;12659:31;12684:5;12659:31;:::i;12725:980::-;12987:4;13035:3;13024:9;13020:19;13066:6;13055:9;13048:25;13092:2;13130:6;13125:2;13114:9;13110:18;13103:34;13173:3;13168:2;13157:9;13153:18;13146:31;13197:6;13232;13226:13;13263:6;13255;13248:22;13301:3;13290:9;13286:19;13279:26;;13340:2;13332:6;13328:15;13314:29;;13361:1;13371:195;13385:6;13382:1;13379:13;13371:195;;;13450:13;;-1:-1:-1;;;;;13446:39:1;13434:52;;13541:15;;;;13506:12;;;;13482:1;13400:9;13371:195;;;-1:-1:-1;;;;;;;13622:32:1;;;;13617:2;13602:18;;13595:60;-1:-1:-1;;;13686:3:1;13671:19;13664:35;13583:3;12725:980;-1:-1:-1;;;12725:980:1:o;14322:306::-;14410:6;14418;14426;14479:2;14467:9;14458:7;14454:23;14450:32;14447:52;;;14495:1;14492;14485:12;14447:52;14524:9;14518:16;14508:26;;14574:2;14563:9;14559:18;14553:25;14543:35;;14618:2;14607:9;14603:18;14597:25;14587:35;;14322:306;;;;;:::o
Swarm Source
ipfs://a85dc6b1861d4c5101597d7ab4341b049fb465d0e6fa10ccbc43025d8d13ad3e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.