Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 16 from a total of 16 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 18420351 | 881 days ago | IN | 0 ETH | 0.00508977 | ||||
| Transfer | 18265252 | 902 days ago | IN | 0 ETH | 0.00165656 | ||||
| Transfer | 18265206 | 902 days ago | IN | 0 ETH | 0.0016102 | ||||
| Exclude From Fee | 18265187 | 902 days ago | IN | 0 ETH | 0.0008993 | ||||
| Transfer | 18260108 | 903 days ago | IN | 0 ETH | 0.00158795 | ||||
| Transfer Ownersh... | 17297175 | 1038 days ago | IN | 0 ETH | 0.00115699 | ||||
| Transfer | 17297156 | 1038 days ago | IN | 0 ETH | 0.00411857 | ||||
| Set Sell Tax Fee... | 17276291 | 1041 days ago | IN | 0 ETH | 0.00145977 | ||||
| Set Tax Fee Perc... | 17276288 | 1041 days ago | IN | 0 ETH | 0.00145558 | ||||
| Set Dev Fee Perc... | 17270395 | 1042 days ago | IN | 0 ETH | 0.00208854 | ||||
| Set Liquidity Fe... | 17269203 | 1042 days ago | IN | 0 ETH | 0.00271116 | ||||
| Transfer Ownersh... | 17248185 | 1045 days ago | IN | 0 ETH | 0.00120049 | ||||
| Transfer Ownersh... | 17242454 | 1046 days ago | IN | 0 ETH | 0.00165723 | ||||
| Transfer Ownersh... | 17242290 | 1046 days ago | IN | 0 ETH | 0.00188112 | ||||
| Transfer | 17141454 | 1060 days ago | IN | 0.315 ETH | 0.00066726 | ||||
| Transfer | 17141441 | 1060 days ago | IN | 0.32 ETH | 0.00066917 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60c06040 | 17136188 | 1061 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DxFeeToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-04-27
*/
/*
// Official DxFee Token
// To Mint your own token visit https://dx.app
// DxMint verified tokens are unruggable through code
// To view the audit certificate for this token search it in https://dx.app/dxmint
// Please ensure one wallet doesn't hold too much supply of tokens!
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
pragma experimental ABIEncoderV2;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
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 subtraction 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. 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;
}
}
}
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface UniSwapFactory {
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 IIUniSwapPair {
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 WBNB() external pure returns (address);
function WAVAX() external pure returns (address);
function WHT() 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 addLiquidityBNB(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function addLiquidityAVAX(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function addLiquidityHT(
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;
function swapExactTokensForBNBSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactTokensForAVAXSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactTokensForHTSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract DxFeeToken is Context, IERC20, Ownable {
using SafeMath for uint256;
address private dead = 0x000000000000000000000000000000000000dEaD;
uint256 public maxLiqFee = 10;
uint256 public maxTaxFee = 10;
uint256 public maxDevFee = 10;
uint256 public minMxTxPercentage = 50;
uint256 public maxSellTaxFee = 20;
uint256 public prevLiqFee;
uint256 public prevTaxFee;
uint256 public prevDevFee;
uint256 public prevSellFee;
mapping (address => uint256) private _rOwned;
mapping (address => uint256) private _tOwned;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private _isExcluded;
mapping (address => bool) private _isdevWallet;
address[] private _excluded;
address public _devWalletAddress; // team wallet here
address public router;
address public basePair;
uint256 private constant MAX = ~uint256(0);
uint256 private _tTotal;
uint256 private _rTotal;
uint256 private _tFeeTotal;
bool public mintedByDxsale = true;
string private _name;
string private _symbol;
uint8 private _decimals;
uint256 public _taxFee;
uint256 private _previousTaxFee;
uint256 public _liquidityFee;
uint256 private _previousLiquidityFee;
uint256 public _devFee;
uint256 private _previousDevFee = _devFee;
uint256 public _sellTaxFee;
uint256 private _previousSellFee;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
bool public inSwapAndLiquify;
bool public swapAndLiquifyEnabled;
uint256 public _maxTxAmount;
uint256 public numTokensSellToAddToLiquidity;
event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor (address tokenOwner,string memory name_, string memory symbol_,uint8 decimal_, uint256 amountOfTokenWei,uint8[4] memory setFees, uint256[5] memory maxFees, address devWalletAddress_, address _router, address _basePair) {
_name = name_;
_symbol = symbol_;
_decimals = decimal_;
_tTotal = amountOfTokenWei;
_rTotal = (MAX - (MAX % _tTotal));
router = _router;
basePair = _basePair;
_rOwned[tokenOwner] = _rTotal;
maxTaxFee = maxFees[0];
maxLiqFee = maxFees[1];
maxDevFee = maxFees[2];
minMxTxPercentage = maxFees[3];
maxSellTaxFee = maxFees[4];
_taxFee = setFees[0];
_previousTaxFee = _taxFee;
_liquidityFee = setFees[1];
_previousLiquidityFee = _liquidityFee;
_devFee = setFees[2];
_previousDevFee = _devFee;
_sellTaxFee = setFees[3];
_previousSellFee = _sellTaxFee;
_devWalletAddress = devWalletAddress_;
_maxTxAmount = amountOfTokenWei;
numTokensSellToAddToLiquidity = amountOfTokenWei.mul(1).div(1000);
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
// Create a uniswap pair for this new token
uniswapV2Pair = UniSwapFactory(_uniswapV2Router.factory())
.createPair(address(this), basePair);
// set the rest of the contract variables
uniswapV2Router = _uniswapV2Router;
//exclude owner and this contract from fee
_isExcludedFromFee[tokenOwner] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_devWalletAddress] = true;
//set wallet provided to true
_isdevWallet[_devWalletAddress] = true;
emit Transfer(address(0), tokenOwner, _tTotal);
}
function getWrapAddr() public view returns (address){
return basePair;
}
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 reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
require(tAmount <= _tTotal, "Amount must be less than supply");
if (!deductTransferFee) {
(uint256 rAmount,,,,,,) = _getValues(tAmount);
return rAmount;
} else {
(,uint256 rTransferAmount,,,,,) = _getValues(tAmount);
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 excludeFromFee(address account) public onlyOwner {
require(!_isExcludedFromFee[account], "Account is already excluded");
_isExcludedFromFee[account] = true;
}
function includeInFee(address account) public onlyOwner {
require(_isExcludedFromFee[account], "Account is already included");
_isExcludedFromFee[account] = false;
}
function setTaxFeePercent(uint256 taxFee) external onlyOwner() {
require(taxFee >= 0 && taxFee <=maxTaxFee,"taxFee out of range");
_taxFee = taxFee;
_previousTaxFee = _taxFee;
}
function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() {
require(liquidityFee >= 0 && liquidityFee <=maxLiqFee,"liquidityFee out of range");
_liquidityFee = liquidityFee;
_previousLiquidityFee = _liquidityFee;
}
function setDevFeePercent(uint256 devFee) external onlyOwner() {
require(devFee >= 0 && devFee <=maxDevFee,"teamFee out of range");
_devFee = devFee;
_previousDevFee = _devFee;
}
function setSellTaxFeePercent(uint256 sellTaxFee) external onlyOwner() {
require(sellTaxFee >= 0 && sellTaxFee <=maxSellTaxFee,"taxFee out of range");
_sellTaxFee = sellTaxFee;
_previousSellFee = _sellTaxFee;
}
function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
require(maxTxPercent >= minMxTxPercentage && maxTxPercent <=100,"maxTxPercent out of range");
_maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
}
function setDevWalletAddress(address _addr) internal virtual {
if (!_isExcludedFromFee[_addr]) {
excludeFromFee(_addr);
}
_isdevWallet[_addr] = true;
_devWalletAddress = _addr;
}
function replaceDevWalletAddress(address _addr, address _newAddr) public onlyOwner {
require(_isdevWallet[_addr], "Wallet address not set previously");
require(!_isdevWallet[_newAddr], "Wallet address already set");
if (_isExcludedFromFee[_addr]) {
includeInFee(_addr);
}
_isdevWallet[_addr] = false;
setDevWalletAddress(_newAddr);
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
(uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getTValues(tAmount);
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, tDev, _getRate());
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity, tDev);
}
function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
uint256 tFee = calculateTaxFee(tAmount);
uint256 tLiquidity = calculateLiquidityFee(tAmount);
uint256 tDev = calculateDevFee(tAmount);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity).sub(tDev);
return (tTransferAmount, tFee, tLiquidity, tDev);
}
function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rLiquidity = tLiquidity.mul(currentRate);
uint256 rDev = tDev.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity).sub(rDev);
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 _takeLiquidity(uint256 tLiquidity) private {
uint256 currentRate = _getRate();
uint256 rLiquidity = tLiquidity.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
if(_isExcluded[address(this)])
_tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
}
function _takeDev(uint256 tDev) private {
uint256 currentRate = _getRate();
uint256 rDev = tDev.mul(currentRate);
_rOwned[_devWalletAddress] = _rOwned[_devWalletAddress].add(rDev);
if(_isExcluded[_devWalletAddress])
_tOwned[_devWalletAddress] = _tOwned[_devWalletAddress].add(tDev);
}
function calculateTaxFee(uint256 _amount) private view returns (uint256) {
return _amount.mul(_taxFee).div(
10**2
);
}
function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
return _amount.mul(_liquidityFee).div(
10**2
);
}
function calculateDevFee(uint256 _amount) private view returns (uint256) {
return _amount.mul(_devFee).div(
10**2
);
}
function removeAllFee() private {
if(_taxFee == 0 && _liquidityFee == 0 && _devFee == 0) return;
_previousTaxFee = _taxFee;
_previousLiquidityFee = _liquidityFee;
_previousDevFee = _devFee;
_previousSellFee = _sellTaxFee;
_taxFee = 0;
_liquidityFee = 0;
_devFee = 0;
_sellTaxFee = 0;
}
function restoreAllFee() private {
_taxFee = _previousTaxFee;
_liquidityFee = _previousLiquidityFee;
_devFee = _previousDevFee;
_sellTaxFee = _previousSellFee;
}
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");
if(!_isExcludedFromFee[from]){
require(amount > 0, "Transfer amount must be greater than zero");
}
//Special case when sell is uniswapV2Pair
if (to == uniswapV2Pair){
_taxFee = _sellTaxFee;
}
if(from != owner() && to != owner())
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
// is the token balance of this contract address over the min number of
// tokens that we need to initiate a swap + liquidity lock?
// also, don't get caught in a circular liquidity event.
// also, don't swap & liquify if sender is uniswap pair.
uint256 contractTokenBalance = balanceOf(address(this));
if(contractTokenBalance >= _maxTxAmount)
{
contractTokenBalance = _maxTxAmount;
}
bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
if (
overMinTokenBalance &&
!inSwapAndLiquify &&
from != uniswapV2Pair &&
swapAndLiquifyEnabled
) {
contractTokenBalance = numTokensSellToAddToLiquidity;
//add liquidity
swapAndLiquify(contractTokenBalance);
}
//indicates if fee should be deducted from transfer
bool takeFee = true;
//if any account belongs to _isExcludedFromFee account then remove the fee
if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
takeFee = false;
}
//transfer amount, it will take tax, burn, liquidity fee
_tokenTransfer(from,to,amount,takeFee);
//reset tax fees
restoreAllFee();
}
function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
// split the contract balance into halves
uint256 half = contractTokenBalance.div(2);
uint256 otherHalf = contractTokenBalance.sub(half);
// capture the contract's current ETH balance.
// this is so that we can capture exactly the amount of ETH that the
// swap creates, and not make the liquidity event include any ETH that
// has been manually sent to the contract
uint256 initialBalance = address(this).balance;
// swap tokens for ETH
swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered
// how much ETH did we just swap into?
uint256 newBalance = address(this).balance.sub(initialBalance);
// add liquidity to uniswap
addLiquidity(otherHalf, newBalance);
emit SwapAndLiquify(half, newBalance, otherHalf);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> WHT
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = getWrapAddr();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
) {}
catch(bytes memory) {
try uniswapV2Router.swapExactTokensForBNBSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
) {}
catch(bytes memory) {
try uniswapV2Router.swapExactTokensForAVAXSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
){}
catch(bytes memory) {
try uniswapV2Router.swapExactTokensForHTSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
){}
catch(bytes memory) {
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
try uniswapV2Router.addLiquidityETH{value : ETHAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
dead,
block.timestamp
) {
}
catch (bytes memory) {
try uniswapV2Router.addLiquidityBNB{value : ETHAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
dead,
block.timestamp
) {
}
catch (bytes memory) {
try uniswapV2Router.addLiquidityAVAX{value : ETHAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
dead,
block.timestamp
) {
}
catch (bytes memory) {
try uniswapV2Router.addLiquidityHT{value : ETHAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
dead,
block.timestamp
) {
}
catch (bytes memory) {
uniswapV2Router.addLiquidityETH{value : ETHAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
dead,
block.timestamp
);
}
}
}
}
}
//this method is responsible for taking all fee, if takeFee is true
function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
if(!takeFee)
removeAllFee();
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);
}
}
function _transferStandard(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_takeDev(tDev);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_takeDev(tDev);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_takeDev(tDev);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity, uint256 tDev) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeLiquidity(tLiquidity);
_takeDev(tDev);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
function disableFees() public onlyOwner {
prevLiqFee = _liquidityFee;
prevTaxFee = _taxFee;
prevDevFee = _devFee;
prevSellFee = _sellTaxFee;
_maxTxAmount = _tTotal;
_liquidityFee = 0;
_taxFee = 0;
_devFee = 0;
_sellTaxFee = 0;
swapAndLiquifyEnabled = false;
}
function enableFees() public onlyOwner {
_maxTxAmount = _tTotal;
_liquidityFee = prevLiqFee;
_taxFee = prevTaxFee;
_devFee = prevDevFee;
_sellTaxFee = prevSellFee;
swapAndLiquifyEnabled = true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimal_","type":"uint8"},{"internalType":"uint256","name":"amountOfTokenWei","type":"uint256"},{"internalType":"uint8[4]","name":"setFees","type":"uint8[4]"},{"internalType":"uint256[5]","name":"maxFees","type":"uint256[5]"},{"internalType":"address","name":"devWalletAddress_","type":"address"},{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_basePair","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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":"_devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"basePair","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"disableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getWrapAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":"maxDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minMxTxPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintedByDxsale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prevTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_addr","type":"address"},{"internalType":"address","name":"_newAddr","type":"address"}],"name":"replaceDevWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setDevFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTaxFee","type":"uint256"}],"name":"setSellTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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"},{"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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c0604052600180546001600160a01b03191661dead178155600a60028190556003819055600455603260055560146006556018805460ff191690911790556020546021553480156200005157600080fd5b50604051620037bb380380620037bb83398101604081905262000074916200068e565b6200007f336200039c565b8851620000949060199060208c01906200040f565b508751620000aa90601a9060208b01906200040f565b50601b805460ff191660ff89161790556015869055620000cd866000196200084e565b620000db90600019620007f7565b6016819055601380546001600160a01b038581166001600160a01b031992831617909255601480548584169083161790558c82166000908152600b602090815260409182902094909455875160035587840151600255878101516004556060808901516005556080890151600655895160ff908116601c819055601d558a8601518116601e819055601f55918a01518216808655602155890151166022819055602355601280549091169186169190911790556025879055620001c9906103e890620001b5908990600190620003ec811b620012cc17901c565b6200040160201b620012d81790919060201c565b6026556013546040805163c45a015560e01b815290516001600160a01b0390921691829163c45a0155916004808301926020929190829003018186803b1580156200021357600080fd5b505afa15801562000228573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024e919062000670565b6014546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c6539690604401602060405180830381600087803b1580156200029b57600080fd5b505af1158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d6919062000670565b606090811b6001600160601b031990811660a0529082901b166080526001600160a01b038b81166000818152600e602090815260408083208054600160ff199182168117909255308552828520805482168317905560128054881686528386208054831684179055549096168452601083528184208054909616179094556015549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050505050505050620008a7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003fa8284620007d5565b9392505050565b6000620003fa8284620007be565b8280546200041d9062000811565b90600052602060002090601f0160209004810192826200044157600085556200048c565b82601f106200045c57805160ff19168380011785556200048c565b828001600101855582156200048c579182015b828111156200048c5782518255916020019190600101906200046f565b506200049a9291506200049e565b5090565b5b808211156200049a57600081556001016200049f565b80516001600160a01b0381168114620004cd57600080fd5b919050565b600082601f830112620004e457600080fd5b60405160a081016001600160401b038111828210171562000509576200050962000891565b604052808360a081018610156200051f57600080fd5b60005b60058110156200054357815183526020928301929091019060010162000522565b509195945050505050565b600082601f8301126200056057600080fd5b604051608081016001600160401b038111828210171562000585576200058562000891565b6040528083608081018610156200059b57600080fd5b60005b60048110156200054357620005b3826200065e565b835260209283019291909101906001016200059e565b600082601f830112620005db57600080fd5b81516001600160401b03811115620005f757620005f762000891565b60206200060d601f8301601f191682016200078b565b82815285828487010111156200062257600080fd5b60005b838110156200064257858101830151828201840152820162000625565b83811115620006545760008385840101525b5095945050505050565b805160ff81168114620004cd57600080fd5b6000602082840312156200068357600080fd5b620003fa82620004b5565b6000806000806000806000806000806102208b8d031215620006af57600080fd5b620006ba8b620004b5565b60208c0151909a506001600160401b0380821115620006d857600080fd5b620006e68e838f01620005c9565b9a5060408d0151915080821115620006fd57600080fd5b506200070c8d828e01620005c9565b9850506200071d60608c016200065e565b965060808b01519550620007358c60a08d016200054e565b9450620007478c6101208d01620004d2565b9350620007586101c08c01620004b5565b9250620007696101e08c01620004b5565b91506200077a6102008c01620004b5565b90509295989b9194979a5092959850565b604051601f8201601f191681016001600160401b0381118282101715620007b657620007b662000891565b604052919050565b600082620007d057620007d06200087b565b500490565b6000816000190483118215151615620007f257620007f262000865565b500290565b6000828210156200080c576200080c62000865565b500390565b600181811c908216806200082657607f821691505b602082108114156200084857634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200086057620008606200087b565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160601c612e8662000935600039600081816105e9015281816115ac01526116ba01526000818161040901528181611dc901528181611e0501528181611eb901528181611f6d01528181612021015281816120d50152818161215501528181612194015281816122700152818161234c0152818161242801526125040152612e866000f3fe6080604052600436106103395760003560e01c806370a08231116101ab578063b425bac3116100f7578063d51b31ac11610095578063dd62ed3e1161006f578063dd62ed3e14610937578063ea2f0b371461097d578063f2fde38b1461099d578063f887ea40146109bd57600080fd5b8063d51b31ac146108e1578063d543dbeb146108f7578063d7034bd61461091757600080fd5b8063c7992f9a116100d1578063c7992f9a14610880578063ce404b2314610896578063d0e03523146108ab578063d12a7688146108cb57600080fd5b8063b425bac31461082a578063bf2e2c521461084a578063c49b9a801461086057600080fd5b80638ee88c5311610164578063a457c2d71161013e578063a457c2d7146107be578063a9059cbb146107de578063aa45026b146107fe578063aceafe091461081457600080fd5b80638ee88c531461076b57806395d89b411461078b5780639b33d9d1146107a057600080fd5b806370a08231146106b3578063715018a6146106d3578063790ed1c3146106e85780637d1db4a5146106fe57806388f82020146107145780638da5cb5b1461074d57600080fd5b8063368f5bd511610285578063475877d9116102235780635342acb4116101fd5780635342acb41461062a57806355924646146106635780635930919b1461067d5780636bc87c3a1461069d57600080fd5b8063475877d9146105c157806349bd5a5e146105d75780634a74bb021461060b57600080fd5b80633b124fe71161025f5780633b124fe714610555578063430ca0901461056b578063437823ec146105815780634549b039146105a157600080fd5b8063368f5bd514610500578063379e291914610515578063395093511461053557600080fd5b806318160ddd116102f257806323b872dd116102cc57806323b872dd146104885780632d838119146104a8578063313ce567146104c8578063324f8dbf146104ea57600080fd5b806318160ddd14610443578063200a692d14610458578063220f66961461046e57600080fd5b8063061c82d01461034557806306fdde0314610367578063095ea7b31461039257806313114a9d146103c257806315ed604f146103e15780631694505e146103f757600080fd5b3661034057005b600080fd5b34801561035157600080fd5b50610365610360366004612ba6565b6109dd565b005b34801561037357600080fd5b5061037c610a3c565b6040516103899190612c4b565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004612b61565b610ace565b6040519015158152602001610389565b3480156103ce57600080fd5b506017545b604051908152602001610389565b3480156103ed57600080fd5b506103d360075481565b34801561040357600080fd5b5061042b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610389565b34801561044f57600080fd5b506015546103d3565b34801561046457600080fd5b506103d360225481565b34801561047a57600080fd5b506024546103b29060ff1681565b34801561049457600080fd5b506103b26104a3366004612b25565b610ae5565b3480156104b457600080fd5b506103d36104c3366004612ba6565b610b4e565b3480156104d457600080fd5b50601b5460405160ff9091168152602001610389565b3480156104f657600080fd5b506103d360055481565b34801561050c57600080fd5b50610365610bd2565b34801561052157600080fd5b50610365610530366004612ba6565b610c09565b34801561054157600080fd5b506103b2610550366004612b61565b610c64565b34801561056157600080fd5b506103d3601c5481565b34801561057757600080fd5b506103d360025481565b34801561058d57600080fd5b5061036561059c366004612ad7565b610c9a565b3480156105ad57600080fd5b506103d36105bc366004612bbf565b610d2f565b3480156105cd57600080fd5b506103d360085481565b3480156105e357600080fd5b5061042b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561061757600080fd5b506024546103b290610100900460ff1681565b34801561063657600080fd5b506103b2610645366004612ad7565b6001600160a01b03166000908152600e602052604090205460ff1690565b34801561066f57600080fd5b506018546103b29060ff1681565b34801561068957600080fd5b5060145461042b906001600160a01b031681565b3480156106a957600080fd5b506103d3601e5481565b3480156106bf57600080fd5b506103d36106ce366004612ad7565b610dbe565b3480156106df57600080fd5b50610365610e1d565b3480156106f457600080fd5b506103d3600a5481565b34801561070a57600080fd5b506103d360255481565b34801561072057600080fd5b506103b261072f366004612ad7565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561075957600080fd5b506000546001600160a01b031661042b565b34801561077757600080fd5b50610365610786366004612ba6565b610e31565b34801561079757600080fd5b5061037c610e95565b3480156107ac57600080fd5b506014546001600160a01b031661042b565b3480156107ca57600080fd5b506103b26107d9366004612b61565b610ea4565b3480156107ea57600080fd5b506103b26107f9366004612b61565b610ef3565b34801561080a57600080fd5b506103d360205481565b34801561082057600080fd5b506103d360045481565b34801561083657600080fd5b5060125461042b906001600160a01b031681565b34801561085657600080fd5b506103d360095481565b34801561086c57600080fd5b5061036561087b366004612b8b565b610f00565b34801561088c57600080fd5b506103d360035481565b3480156108a257600080fd5b50610365610f5c565b3480156108b757600080fd5b506103656108c6366004612ba6565b610fa1565b3480156108d757600080fd5b506103d360265481565b3480156108ed57600080fd5b506103d360065481565b34801561090357600080fd5b50610365610912366004612ba6565b610ffb565b34801561092357600080fd5b50610365610932366004612af2565b611088565b34801561094357600080fd5b506103d3610952366004612af2565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561098957600080fd5b50610365610998366004612ad7565b6111c2565b3480156109a957600080fd5b506103656109b8366004612ad7565b611253565b3480156109c957600080fd5b5060135461042b906001600160a01b031681565b6109e56112e4565b600354811115610a325760405162461bcd60e51b8152602060048201526013602482015272746178466565206f7574206f662072616e676560681b60448201526064015b60405180910390fd5b601c819055601d55565b606060198054610a4b90612d81565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7790612d81565b8015610ac45780601f10610a9957610100808354040283529160200191610ac4565b820191906000526020600020905b815481529060010190602001808311610aa757829003601f168201915b5050505050905090565b6000610adb33848461133e565b5060015b92915050565b6000610af2848484611462565b610b448433610b3f85604051806060016040528060288152602001612e04602891396001600160a01b038a166000908152600d602090815260408083203384529091529020549190611791565b61133e565b5060019392505050565b6000601654821115610bb55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610a29565b6000610bbf6117bd565b9050610bcb83826112d8565b9392505050565b610bda6112e4565b601554602555600754601e55600854601c55600954602055600a546022556024805461ff001916610100179055565b610c116112e4565b600454811115610c5a5760405162461bcd60e51b81526020600482015260146024820152737465616d466565206f7574206f662072616e676560601b6044820152606401610a29565b6020819055602155565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610adb918590610b3f90866117e0565b610ca26112e4565b6001600160a01b0381166000908152600e602052604090205460ff1615610d0b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a29565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6000601554831115610d835760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a29565b81610da3576000610d93846117ec565b50949650610adf95505050505050565b6000610dae846117ec565b50939650610adf95505050505050565b6001600160a01b0381166000908152600f602052604081205460ff1615610dfb57506001600160a01b03166000908152600c602052604090205490565b6001600160a01b0382166000908152600b6020526040902054610adf90610b4e565b610e256112e4565b610e2f6000611847565b565b610e396112e4565b600254811115610e8b5760405162461bcd60e51b815260206004820152601960248201527f6c6971756964697479466565206f7574206f662072616e6765000000000000006044820152606401610a29565b601e819055601f55565b6060601a8054610a4b90612d81565b6000610adb3384610b3f85604051806060016040528060258152602001612e2c60259139336000908152600d602090815260408083206001600160a01b038d1684529091529020549190611791565b6000610adb338484611462565b610f086112e4565b602480548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610f5190831515815260200190565b60405180910390a150565b610f646112e4565b601e8054600755601c80546008556020805460095560228054600a5560155460255560009384905591839055829055556024805461ff0019169055565b610fa96112e4565b600654811115610ff15760405162461bcd60e51b8152602060048201526013602482015272746178466565206f7574206f662072616e676560681b6044820152606401610a29565b6022819055602355565b6110036112e4565b6005548110158015611016575060648111155b6110625760405162461bcd60e51b815260206004820152601960248201527f6d6178547850657263656e74206f7574206f662072616e6765000000000000006044820152606401610a29565b611082606461107c836015546112cc90919063ffffffff16565b906112d8565b60255550565b6110906112e4565b6001600160a01b03821660009081526010602052604090205460ff166111025760405162461bcd60e51b815260206004820152602160248201527f57616c6c65742061646472657373206e6f74207365742070726576696f75736c6044820152607960f81b6064820152608401610a29565b6001600160a01b03811660009081526010602052604090205460ff161561116b5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c6574206164647265737320616c7265616479207365740000000000006044820152606401610a29565b6001600160a01b0382166000908152600e602052604090205460ff161561119557611195826111c2565b6001600160a01b0382166000908152601060205260409020805460ff191690556111be81611897565b5050565b6111ca6112e4565b6001600160a01b0381166000908152600e602052604090205460ff166112325760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610a29565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b61125b6112e4565b6001600160a01b0381166112c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a29565b6112c981611847565b50565b6000610bcb8284612d4b565b6000610bcb8284612d29565b6000546001600160a01b03163314610e2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a29565b6001600160a01b0383166113a05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a29565b6001600160a01b0382166114015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a29565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114c65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a29565b6001600160a01b0382166115285760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a29565b6001600160a01b0383166000908152600e602052604090205460ff166115aa57600081116115aa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a29565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156115eb57602254601c555b6000546001600160a01b0384811691161480159061161757506000546001600160a01b03838116911614155b1561167f5760255481111561167f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a29565b600061168a30610dbe565b9050602554811061169a57506025545b602654811080159081906116b1575060245460ff16155b80156116ef57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156117025750602454610100900460ff165b15611715576026549150611715826118f7565b6001600160a01b0385166000908152600e602052604090205460019060ff168061175757506001600160a01b0385166000908152600e602052604090205460ff165b15611760575060005b61176c86868684611995565b611789601d54601c55601f54601e55602154602055602354602255565b505050505050565b600081848411156117b55760405162461bcd60e51b8152600401610a299190612c4b565b505050900390565b60008060006117ca611afc565b90925090506117d982826112d8565b9250505090565b6000610bcb8284612d11565b60008060008060008060008060008060006118068c611c7e565b935093509350935060008060006118278f8787876118226117bd565b611cd3565b919f509d509b509599509397509195509350505050919395979092949650565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166000908152600e602052604090205460ff166118c0576118c081610c9a565b6001600160a01b03166000818152601060205260409020805460ff19166001179055601280546001600160a01b0319169091179055565b6024805460ff1916600117905560006119118260026112d8565b9050600061191f8383611d35565b90504761192b83611d41565b60006119374783611d35565b9050611943838261214f565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506024805460ff19169055505050565b806119a2576119a26125b5565b6001600160a01b0384166000908152600f602052604090205460ff1680156119e357506001600160a01b0383166000908152600f602052604090205460ff16155b156119f8576119f3848484612604565b611af6565b6001600160a01b0384166000908152600f602052604090205460ff16158015611a3957506001600160a01b0383166000908152600f602052604090205460ff165b15611a49576119f384848461274a565b6001600160a01b0384166000908152600f602052604090205460ff16158015611a8b57506001600160a01b0383166000908152600f602052604090205460ff16155b15611a9b576119f3848484612809565b6001600160a01b0384166000908152600f602052604090205460ff168015611adb57506001600160a01b0383166000908152600f602052604090205460ff165b15611aeb576119f3848484612863565b611af6848484612809565b50505050565b6016546015546000918291825b601154811015611c4e5782600b600060118481548110611b2b57611b2b612ded565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b96575081600c600060118481548110611b6f57611b6f612ded565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611bac57601654601554945094505050509091565b611bf2600b600060118481548110611bc657611bc6612ded565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611d35565b9250611c3a600c600060118481548110611c0e57611c0e612ded565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611d35565b915080611c4681612dbc565b915050611b09565b50601554601654611c5e916112d8565b821015611c75576016546015549350935050509091565b90939092509050565b6000806000806000611c8f866128ec565b90506000611c9c87612908565b90506000611ca988612924565b90506000611cc382611cbd85818d89611d35565b90611d35565b9993985091965094509092505050565b6000808080611ce289866112cc565b90506000611cf089876112cc565b90506000611cfe89886112cc565b90506000611d0c89896112cc565b90506000611d2082611cbd85818989611d35565b949d949c50929a509298505050505050505050565b6000610bcb8284612d6a565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7657611d76612ded565b6001600160a01b0392831660209182029290920101526014541681600181518110611da357611da3612ded565b60200260200101906001600160a01b031690816001600160a01b031681525050611dee307f00000000000000000000000000000000000000000000000000000000000000008461133e565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611e43908590600090869030904290600401612ca0565b600060405180830381600087803b158015611e5d57600080fd5b505af1925050508015611e6e575060015b6111be573d808015611e9c576040519150601f19603f3d011682016040523d82523d6000602084013e611ea1565b606091505b5060405163d46d2f8360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d46d2f8390611ef7908690600090879030904290600401612ca0565b600060405180830381600087803b158015611f1157600080fd5b505af1925050508015611f22575060015b61214a573d808015611f50576040519150601f19603f3d011682016040523d82523d6000602084013e611f55565b606091505b50604051633b158ab160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063762b156290611fab908790600090889030904290600401612ca0565b600060405180830381600087803b158015611fc557600080fd5b505af1925050508015611fd6575060015b611af6573d808015612004576040519150601f19603f3d011682016040523d82523d6000602084013e612009565b606091505b506040516312d70e6d60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906325ae1cda9061205f908890600090899030904290600401612ca0565b600060405180830381600087803b15801561207957600080fd5b505af192505050801561208a575060015b612147573d8080156120b8576040519150601f19603f3d011682016040523d82523d6000602084013e6120bd565b606091505b5060405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906121139089906000908a9030904290600401612ca0565b600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b50505050505b50505b505050565b61217a307f00000000000000000000000000000000000000000000000000000000000000008461133e565b60015460405163f305d71960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263f305d7199285926121d8923092899260009283929116904290600401612c10565b6060604051808303818588803b1580156121f157600080fd5b505af193505050508015612222575060408051601f3d908101601f1916820190925261221f91810190612be2565b60015b612147573d808015612250576040519150601f19603f3d011682016040523d82523d6000602084013e612255565b606091505b506001546040516375576a2160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263eaaed4429286926122b49230928a9260009283929116904290600401612c10565b6060604051808303818588803b1580156122cd57600080fd5b505af1935050505080156122fe575060408051601f3d908101601f191682019092526122fb91810190612be2565b60015b611789573d80801561232c576040519150601f19603f3d011682016040523d82523d6000602084013e612331565b606091505b50600154604051637c8d9fb960e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263f91b3f729287926123909230928b9260009283929116904290600401612c10565b6060604051808303818588803b1580156123a957600080fd5b505af1935050505080156123da575060408051601f3d908101601f191682019092526123d791810190612be2565b60015b6125ac573d808015612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b50600154604051630798368960e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692637983689092889261246c9230928c9260009283929116904290600401612c10565b6060604051808303818588803b15801561248557600080fd5b505af1935050505080156124b6575060408051601f3d908101601f191682019092526124b391810190612be2565b60015b6125a3573d8080156124e4576040519150601f19603f3d011682016040523d82523d6000602084013e6124e9565b606091505b5060015460405163f305d71960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263f305d7199289926125489230928d9260009283929116904290600401612c10565b6060604051808303818588803b15801561256157600080fd5b505af1158015612575573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061259a9190612be2565b50505050612147565b50505050611af6565b50505050505050565b601c541580156125c55750601e54155b80156125d15750602054155b156125d857565b601c8054601d55601e8054601f5560208054602155602280546023556000938490559183905582905555565b6000806000806000806000612618886117ec565b965096509650965096509650965061265e88600c60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6001600160a01b038b166000908152600c6020908152604080832093909355600b9052205461268d9088611d35565b6001600160a01b03808c166000908152600b602052604080822093909355908b16815220546126bc90876117e0565b6001600160a01b038a166000908152600b60205260409020556126de82612940565b6126e7816129c8565b6126f18584612a87565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161273691815260200190565b60405180910390a350505050505050505050565b600080600080600080600061275e886117ec565b96509650965096509650965096506127a487600b60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6001600160a01b03808c166000908152600b6020908152604080832094909455918c168152600c90915220546127da90856117e0565b6001600160a01b038a166000908152600c6020908152604080832093909355600b905220546126bc90876117e0565b600080600080600080600061281d886117ec565b965096509650965096509650965061268d87600b60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6000806000806000806000612877886117ec565b96509650965096509650965096506128bd88600c60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6001600160a01b038b166000908152600c6020908152604080832093909355600b905220546127a49088611d35565b6000610adf606461107c601c54856112cc90919063ffffffff16565b6000610adf606461107c601e54856112cc90919063ffffffff16565b6000610adf606461107c602054856112cc90919063ffffffff16565b600061294a6117bd565b9050600061295883836112cc565b306000908152600b602052604090205490915061297590826117e0565b306000908152600b6020908152604080832093909355600f9052205460ff161561214a57306000908152600c60205260409020546129b390846117e0565b306000908152600c6020526040902055505050565b60006129d26117bd565b905060006129e083836112cc565b6012546001600160a01b03166000908152600b6020526040902054909150612a0890826117e0565b601280546001600160a01b039081166000908152600b602090815260408083209590955592549091168152600f909152205460ff161561214a576012546001600160a01b03166000908152600c6020526040902054612a6790846117e0565b6012546001600160a01b03166000908152600c6020526040902055505050565b601654612a949083611d35565b601655601754612aa490826117e0565b6017555050565b80356001600160a01b0381168114612ac257600080fd5b919050565b80358015158114612ac257600080fd5b600060208284031215612ae957600080fd5b610bcb82612aab565b60008060408385031215612b0557600080fd5b612b0e83612aab565b9150612b1c60208401612aab565b90509250929050565b600080600060608486031215612b3a57600080fd5b612b4384612aab565b9250612b5160208501612aab565b9150604084013590509250925092565b60008060408385031215612b7457600080fd5b612b7d83612aab565b946020939093013593505050565b600060208284031215612b9d57600080fd5b610bcb82612ac7565b600060208284031215612bb857600080fd5b5035919050565b60008060408385031215612bd257600080fd5b82359150612b1c60208401612ac7565b600080600060608486031215612bf757600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600060208083528351808285015260005b81811015612c7857858101830151858201604001528201612c5c565b81811115612c8a576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cf05784516001600160a01b031683529383019391830191600101612ccb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612d2457612d24612dd7565b500190565b600082612d4657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612d6557612d65612dd7565b500290565b600082821015612d7c57612d7c612dd7565b500390565b600181811c90821680612d9557607f821691505b60208210811415612db657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612dd057612dd0612dd7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c61872b5f815d4a0efa16bc5cf569fd04f8990062b116e447f983ba3c9c8ba8c64736f6c634300080700330000000000000000000000004f8c3d1edaad9b806c6b97dd82066eee5d5593bc000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000c9f2c9cd04674edea4000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000700000000000000000000000050c680cc4794b7e9451f142965f0e996a16bc8460000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000006c58d436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006c58d436f696e0000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106103395760003560e01c806370a08231116101ab578063b425bac3116100f7578063d51b31ac11610095578063dd62ed3e1161006f578063dd62ed3e14610937578063ea2f0b371461097d578063f2fde38b1461099d578063f887ea40146109bd57600080fd5b8063d51b31ac146108e1578063d543dbeb146108f7578063d7034bd61461091757600080fd5b8063c7992f9a116100d1578063c7992f9a14610880578063ce404b2314610896578063d0e03523146108ab578063d12a7688146108cb57600080fd5b8063b425bac31461082a578063bf2e2c521461084a578063c49b9a801461086057600080fd5b80638ee88c5311610164578063a457c2d71161013e578063a457c2d7146107be578063a9059cbb146107de578063aa45026b146107fe578063aceafe091461081457600080fd5b80638ee88c531461076b57806395d89b411461078b5780639b33d9d1146107a057600080fd5b806370a08231146106b3578063715018a6146106d3578063790ed1c3146106e85780637d1db4a5146106fe57806388f82020146107145780638da5cb5b1461074d57600080fd5b8063368f5bd511610285578063475877d9116102235780635342acb4116101fd5780635342acb41461062a57806355924646146106635780635930919b1461067d5780636bc87c3a1461069d57600080fd5b8063475877d9146105c157806349bd5a5e146105d75780634a74bb021461060b57600080fd5b80633b124fe71161025f5780633b124fe714610555578063430ca0901461056b578063437823ec146105815780634549b039146105a157600080fd5b8063368f5bd514610500578063379e291914610515578063395093511461053557600080fd5b806318160ddd116102f257806323b872dd116102cc57806323b872dd146104885780632d838119146104a8578063313ce567146104c8578063324f8dbf146104ea57600080fd5b806318160ddd14610443578063200a692d14610458578063220f66961461046e57600080fd5b8063061c82d01461034557806306fdde0314610367578063095ea7b31461039257806313114a9d146103c257806315ed604f146103e15780631694505e146103f757600080fd5b3661034057005b600080fd5b34801561035157600080fd5b50610365610360366004612ba6565b6109dd565b005b34801561037357600080fd5b5061037c610a3c565b6040516103899190612c4b565b60405180910390f35b34801561039e57600080fd5b506103b26103ad366004612b61565b610ace565b6040519015158152602001610389565b3480156103ce57600080fd5b506017545b604051908152602001610389565b3480156103ed57600080fd5b506103d360075481565b34801561040357600080fd5b5061042b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610389565b34801561044f57600080fd5b506015546103d3565b34801561046457600080fd5b506103d360225481565b34801561047a57600080fd5b506024546103b29060ff1681565b34801561049457600080fd5b506103b26104a3366004612b25565b610ae5565b3480156104b457600080fd5b506103d36104c3366004612ba6565b610b4e565b3480156104d457600080fd5b50601b5460405160ff9091168152602001610389565b3480156104f657600080fd5b506103d360055481565b34801561050c57600080fd5b50610365610bd2565b34801561052157600080fd5b50610365610530366004612ba6565b610c09565b34801561054157600080fd5b506103b2610550366004612b61565b610c64565b34801561056157600080fd5b506103d3601c5481565b34801561057757600080fd5b506103d360025481565b34801561058d57600080fd5b5061036561059c366004612ad7565b610c9a565b3480156105ad57600080fd5b506103d36105bc366004612bbf565b610d2f565b3480156105cd57600080fd5b506103d360085481565b3480156105e357600080fd5b5061042b7f00000000000000000000000072e61f620d33850feef1022d75e40f7b1144ca6181565b34801561061757600080fd5b506024546103b290610100900460ff1681565b34801561063657600080fd5b506103b2610645366004612ad7565b6001600160a01b03166000908152600e602052604090205460ff1690565b34801561066f57600080fd5b506018546103b29060ff1681565b34801561068957600080fd5b5060145461042b906001600160a01b031681565b3480156106a957600080fd5b506103d3601e5481565b3480156106bf57600080fd5b506103d36106ce366004612ad7565b610dbe565b3480156106df57600080fd5b50610365610e1d565b3480156106f457600080fd5b506103d3600a5481565b34801561070a57600080fd5b506103d360255481565b34801561072057600080fd5b506103b261072f366004612ad7565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561075957600080fd5b506000546001600160a01b031661042b565b34801561077757600080fd5b50610365610786366004612ba6565b610e31565b34801561079757600080fd5b5061037c610e95565b3480156107ac57600080fd5b506014546001600160a01b031661042b565b3480156107ca57600080fd5b506103b26107d9366004612b61565b610ea4565b3480156107ea57600080fd5b506103b26107f9366004612b61565b610ef3565b34801561080a57600080fd5b506103d360205481565b34801561082057600080fd5b506103d360045481565b34801561083657600080fd5b5060125461042b906001600160a01b031681565b34801561085657600080fd5b506103d360095481565b34801561086c57600080fd5b5061036561087b366004612b8b565b610f00565b34801561088c57600080fd5b506103d360035481565b3480156108a257600080fd5b50610365610f5c565b3480156108b757600080fd5b506103656108c6366004612ba6565b610fa1565b3480156108d757600080fd5b506103d360265481565b3480156108ed57600080fd5b506103d360065481565b34801561090357600080fd5b50610365610912366004612ba6565b610ffb565b34801561092357600080fd5b50610365610932366004612af2565b611088565b34801561094357600080fd5b506103d3610952366004612af2565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561098957600080fd5b50610365610998366004612ad7565b6111c2565b3480156109a957600080fd5b506103656109b8366004612ad7565b611253565b3480156109c957600080fd5b5060135461042b906001600160a01b031681565b6109e56112e4565b600354811115610a325760405162461bcd60e51b8152602060048201526013602482015272746178466565206f7574206f662072616e676560681b60448201526064015b60405180910390fd5b601c819055601d55565b606060198054610a4b90612d81565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7790612d81565b8015610ac45780601f10610a9957610100808354040283529160200191610ac4565b820191906000526020600020905b815481529060010190602001808311610aa757829003601f168201915b5050505050905090565b6000610adb33848461133e565b5060015b92915050565b6000610af2848484611462565b610b448433610b3f85604051806060016040528060288152602001612e04602891396001600160a01b038a166000908152600d602090815260408083203384529091529020549190611791565b61133e565b5060019392505050565b6000601654821115610bb55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610a29565b6000610bbf6117bd565b9050610bcb83826112d8565b9392505050565b610bda6112e4565b601554602555600754601e55600854601c55600954602055600a546022556024805461ff001916610100179055565b610c116112e4565b600454811115610c5a5760405162461bcd60e51b81526020600482015260146024820152737465616d466565206f7574206f662072616e676560601b6044820152606401610a29565b6020819055602155565b336000818152600d602090815260408083206001600160a01b03871684529091528120549091610adb918590610b3f90866117e0565b610ca26112e4565b6001600160a01b0381166000908152600e602052604090205460ff1615610d0b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a29565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6000601554831115610d835760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a29565b81610da3576000610d93846117ec565b50949650610adf95505050505050565b6000610dae846117ec565b50939650610adf95505050505050565b6001600160a01b0381166000908152600f602052604081205460ff1615610dfb57506001600160a01b03166000908152600c602052604090205490565b6001600160a01b0382166000908152600b6020526040902054610adf90610b4e565b610e256112e4565b610e2f6000611847565b565b610e396112e4565b600254811115610e8b5760405162461bcd60e51b815260206004820152601960248201527f6c6971756964697479466565206f7574206f662072616e6765000000000000006044820152606401610a29565b601e819055601f55565b6060601a8054610a4b90612d81565b6000610adb3384610b3f85604051806060016040528060258152602001612e2c60259139336000908152600d602090815260408083206001600160a01b038d1684529091529020549190611791565b6000610adb338484611462565b610f086112e4565b602480548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610f5190831515815260200190565b60405180910390a150565b610f646112e4565b601e8054600755601c80546008556020805460095560228054600a5560155460255560009384905591839055829055556024805461ff0019169055565b610fa96112e4565b600654811115610ff15760405162461bcd60e51b8152602060048201526013602482015272746178466565206f7574206f662072616e676560681b6044820152606401610a29565b6022819055602355565b6110036112e4565b6005548110158015611016575060648111155b6110625760405162461bcd60e51b815260206004820152601960248201527f6d6178547850657263656e74206f7574206f662072616e6765000000000000006044820152606401610a29565b611082606461107c836015546112cc90919063ffffffff16565b906112d8565b60255550565b6110906112e4565b6001600160a01b03821660009081526010602052604090205460ff166111025760405162461bcd60e51b815260206004820152602160248201527f57616c6c65742061646472657373206e6f74207365742070726576696f75736c6044820152607960f81b6064820152608401610a29565b6001600160a01b03811660009081526010602052604090205460ff161561116b5760405162461bcd60e51b815260206004820152601a60248201527f57616c6c6574206164647265737320616c7265616479207365740000000000006044820152606401610a29565b6001600160a01b0382166000908152600e602052604090205460ff161561119557611195826111c2565b6001600160a01b0382166000908152601060205260409020805460ff191690556111be81611897565b5050565b6111ca6112e4565b6001600160a01b0381166000908152600e602052604090205460ff166112325760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610a29565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b61125b6112e4565b6001600160a01b0381166112c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a29565b6112c981611847565b50565b6000610bcb8284612d4b565b6000610bcb8284612d29565b6000546001600160a01b03163314610e2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a29565b6001600160a01b0383166113a05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a29565b6001600160a01b0382166114015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a29565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114c65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a29565b6001600160a01b0382166115285760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a29565b6001600160a01b0383166000908152600e602052604090205460ff166115aa57600081116115aa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a29565b7f00000000000000000000000072e61f620d33850feef1022d75e40f7b1144ca616001600160a01b0316826001600160a01b031614156115eb57602254601c555b6000546001600160a01b0384811691161480159061161757506000546001600160a01b03838116911614155b1561167f5760255481111561167f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a29565b600061168a30610dbe565b9050602554811061169a57506025545b602654811080159081906116b1575060245460ff16155b80156116ef57507f00000000000000000000000072e61f620d33850feef1022d75e40f7b1144ca616001600160a01b0316856001600160a01b031614155b80156117025750602454610100900460ff165b15611715576026549150611715826118f7565b6001600160a01b0385166000908152600e602052604090205460019060ff168061175757506001600160a01b0385166000908152600e602052604090205460ff165b15611760575060005b61176c86868684611995565b611789601d54601c55601f54601e55602154602055602354602255565b505050505050565b600081848411156117b55760405162461bcd60e51b8152600401610a299190612c4b565b505050900390565b60008060006117ca611afc565b90925090506117d982826112d8565b9250505090565b6000610bcb8284612d11565b60008060008060008060008060008060006118068c611c7e565b935093509350935060008060006118278f8787876118226117bd565b611cd3565b919f509d509b509599509397509195509350505050919395979092949650565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166000908152600e602052604090205460ff166118c0576118c081610c9a565b6001600160a01b03166000818152601060205260409020805460ff19166001179055601280546001600160a01b0319169091179055565b6024805460ff1916600117905560006119118260026112d8565b9050600061191f8383611d35565b90504761192b83611d41565b60006119374783611d35565b9050611943838261214f565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506024805460ff19169055505050565b806119a2576119a26125b5565b6001600160a01b0384166000908152600f602052604090205460ff1680156119e357506001600160a01b0383166000908152600f602052604090205460ff16155b156119f8576119f3848484612604565b611af6565b6001600160a01b0384166000908152600f602052604090205460ff16158015611a3957506001600160a01b0383166000908152600f602052604090205460ff165b15611a49576119f384848461274a565b6001600160a01b0384166000908152600f602052604090205460ff16158015611a8b57506001600160a01b0383166000908152600f602052604090205460ff16155b15611a9b576119f3848484612809565b6001600160a01b0384166000908152600f602052604090205460ff168015611adb57506001600160a01b0383166000908152600f602052604090205460ff165b15611aeb576119f3848484612863565b611af6848484612809565b50505050565b6016546015546000918291825b601154811015611c4e5782600b600060118481548110611b2b57611b2b612ded565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b96575081600c600060118481548110611b6f57611b6f612ded565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611bac57601654601554945094505050509091565b611bf2600b600060118481548110611bc657611bc6612ded565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611d35565b9250611c3a600c600060118481548110611c0e57611c0e612ded565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611d35565b915080611c4681612dbc565b915050611b09565b50601554601654611c5e916112d8565b821015611c75576016546015549350935050509091565b90939092509050565b6000806000806000611c8f866128ec565b90506000611c9c87612908565b90506000611ca988612924565b90506000611cc382611cbd85818d89611d35565b90611d35565b9993985091965094509092505050565b6000808080611ce289866112cc565b90506000611cf089876112cc565b90506000611cfe89886112cc565b90506000611d0c89896112cc565b90506000611d2082611cbd85818989611d35565b949d949c50929a509298505050505050505050565b6000610bcb8284612d6a565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d7657611d76612ded565b6001600160a01b0392831660209182029290920101526014541681600181518110611da357611da3612ded565b60200260200101906001600160a01b031690816001600160a01b031681525050611dee307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461133e565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611e43908590600090869030904290600401612ca0565b600060405180830381600087803b158015611e5d57600080fd5b505af1925050508015611e6e575060015b6111be573d808015611e9c576040519150601f19603f3d011682016040523d82523d6000602084013e611ea1565b606091505b5060405163d46d2f8360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063d46d2f8390611ef7908690600090879030904290600401612ca0565b600060405180830381600087803b158015611f1157600080fd5b505af1925050508015611f22575060015b61214a573d808015611f50576040519150601f19603f3d011682016040523d82523d6000602084013e611f55565b606091505b50604051633b158ab160e11b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063762b156290611fab908790600090889030904290600401612ca0565b600060405180830381600087803b158015611fc557600080fd5b505af1925050508015611fd6575060015b611af6573d808015612004576040519150601f19603f3d011682016040523d82523d6000602084013e612009565b606091505b506040516312d70e6d60e11b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d16906325ae1cda9061205f908890600090899030904290600401612ca0565b600060405180830381600087803b15801561207957600080fd5b505af192505050801561208a575060015b612147573d8080156120b8576040519150601f19603f3d011682016040523d82523d6000602084013e6120bd565b606091505b5060405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906121139089906000908a9030904290600401612ca0565b600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b50505050505b50505b505050565b61217a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461133e565b60015460405163f305d71960e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263f305d7199285926121d8923092899260009283929116904290600401612c10565b6060604051808303818588803b1580156121f157600080fd5b505af193505050508015612222575060408051601f3d908101601f1916820190925261221f91810190612be2565b60015b612147573d808015612250576040519150601f19603f3d011682016040523d82523d6000602084013e612255565b606091505b506001546040516375576a2160e11b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263eaaed4429286926122b49230928a9260009283929116904290600401612c10565b6060604051808303818588803b1580156122cd57600080fd5b505af1935050505080156122fe575060408051601f3d908101601f191682019092526122fb91810190612be2565b60015b611789573d80801561232c576040519150601f19603f3d011682016040523d82523d6000602084013e612331565b606091505b50600154604051637c8d9fb960e11b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263f91b3f729287926123909230928b9260009283929116904290600401612c10565b6060604051808303818588803b1580156123a957600080fd5b505af1935050505080156123da575060408051601f3d908101601f191682019092526123d791810190612be2565b60015b6125ac573d808015612408576040519150601f19603f3d011682016040523d82523d6000602084013e61240d565b606091505b50600154604051630798368960e41b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811692637983689092889261246c9230928c9260009283929116904290600401612c10565b6060604051808303818588803b15801561248557600080fd5b505af1935050505080156124b6575060408051601f3d908101601f191682019092526124b391810190612be2565b60015b6125a3573d8080156124e4576040519150601f19603f3d011682016040523d82523d6000602084013e6124e9565b606091505b5060015460405163f305d71960e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263f305d7199289926125489230928d9260009283929116904290600401612c10565b6060604051808303818588803b15801561256157600080fd5b505af1158015612575573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061259a9190612be2565b50505050612147565b50505050611af6565b50505050505050565b601c541580156125c55750601e54155b80156125d15750602054155b156125d857565b601c8054601d55601e8054601f5560208054602155602280546023556000938490559183905582905555565b6000806000806000806000612618886117ec565b965096509650965096509650965061265e88600c60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6001600160a01b038b166000908152600c6020908152604080832093909355600b9052205461268d9088611d35565b6001600160a01b03808c166000908152600b602052604080822093909355908b16815220546126bc90876117e0565b6001600160a01b038a166000908152600b60205260409020556126de82612940565b6126e7816129c8565b6126f18584612a87565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161273691815260200190565b60405180910390a350505050505050505050565b600080600080600080600061275e886117ec565b96509650965096509650965096506127a487600b60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6001600160a01b03808c166000908152600b6020908152604080832094909455918c168152600c90915220546127da90856117e0565b6001600160a01b038a166000908152600c6020908152604080832093909355600b905220546126bc90876117e0565b600080600080600080600061281d886117ec565b965096509650965096509650965061268d87600b60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6000806000806000806000612877886117ec565b96509650965096509650965096506128bd88600c60008d6001600160a01b03166001600160a01b0316815260200190815260200160002054611d3590919063ffffffff16565b6001600160a01b038b166000908152600c6020908152604080832093909355600b905220546127a49088611d35565b6000610adf606461107c601c54856112cc90919063ffffffff16565b6000610adf606461107c601e54856112cc90919063ffffffff16565b6000610adf606461107c602054856112cc90919063ffffffff16565b600061294a6117bd565b9050600061295883836112cc565b306000908152600b602052604090205490915061297590826117e0565b306000908152600b6020908152604080832093909355600f9052205460ff161561214a57306000908152600c60205260409020546129b390846117e0565b306000908152600c6020526040902055505050565b60006129d26117bd565b905060006129e083836112cc565b6012546001600160a01b03166000908152600b6020526040902054909150612a0890826117e0565b601280546001600160a01b039081166000908152600b602090815260408083209590955592549091168152600f909152205460ff161561214a576012546001600160a01b03166000908152600c6020526040902054612a6790846117e0565b6012546001600160a01b03166000908152600c6020526040902055505050565b601654612a949083611d35565b601655601754612aa490826117e0565b6017555050565b80356001600160a01b0381168114612ac257600080fd5b919050565b80358015158114612ac257600080fd5b600060208284031215612ae957600080fd5b610bcb82612aab565b60008060408385031215612b0557600080fd5b612b0e83612aab565b9150612b1c60208401612aab565b90509250929050565b600080600060608486031215612b3a57600080fd5b612b4384612aab565b9250612b5160208501612aab565b9150604084013590509250925092565b60008060408385031215612b7457600080fd5b612b7d83612aab565b946020939093013593505050565b600060208284031215612b9d57600080fd5b610bcb82612ac7565b600060208284031215612bb857600080fd5b5035919050565b60008060408385031215612bd257600080fd5b82359150612b1c60208401612ac7565b600080600060608486031215612bf757600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600060208083528351808285015260005b81811015612c7857858101830151858201604001528201612c5c565b81811115612c8a576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cf05784516001600160a01b031683529383019391830191600101612ccb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612d2457612d24612dd7565b500190565b600082612d4657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612d6557612d65612dd7565b500290565b600082821015612d7c57612d7c612dd7565b500390565b600181811c90821680612d9557607f821691505b60208210811415612db657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612dd057612dd0612dd7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c61872b5f815d4a0efa16bc5cf569fd04f8990062b116e447f983ba3c9c8ba8c64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004f8c3d1edaad9b806c6b97dd82066eee5d5593bc000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000c9f2c9cd04674edea4000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000700000000000000000000000050c680cc4794b7e9451f142965f0e996a16bc8460000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000006c58d436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006c58d436f696e0000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : tokenOwner (address): 0x4f8C3d1eDAAD9b806C6b97DD82066eeE5d5593bC
Arg [1] : name_ (string): ōCoin
Arg [2] : symbol_ (string): ōCoin
Arg [3] : decimal_ (uint8): 18
Arg [4] : amountOfTokenWei (uint256): 1000000000000000000000000000000
Arg [5] : setFees (uint8[4]): 3,2,2,3
Arg [6] : maxFees (uint256[5]): 4,4,4,50,7
Arg [7] : devWalletAddress_ (address): 0x50C680cC4794B7E9451f142965f0E996A16bc846
Arg [8] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [9] : _basePair (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
-----Encoded View---------------
21 Constructor Arguments found :
Arg [0] : 0000000000000000000000004f8c3d1edaad9b806c6b97dd82066eee5d5593bc
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000260
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 000000000000000000000000000000000000000c9f2c9cd04674edea40000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [14] : 00000000000000000000000050c680cc4794b7e9451f142965f0e996a16bc846
Arg [15] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [16] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [18] : c58d436f696e0000000000000000000000000000000000000000000000000000
Arg [19] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [20] : c58d436f696e0000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
23190:25628:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30688:210;;;;;;;;;;-1:-1:-1;30688:210:0;;;;;:::i;:::-;;:::i;:::-;;27447:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28359:161;;;;;;;;;;-1:-1:-1;28359:161:0;;;;;:::i;:::-;;:::i;:::-;;;3324:14:1;;3317:22;3299:41;;3287:2;3272:18;28359:161:0;3159:187:1;29480:87:0;;;;;;;;;;-1:-1:-1;29549:10:0;;29480:87;;;11184:25:1;;;11172:2;11157:18;29480:87:0;11038:177:1;23543:25:0;;;;;;;;;;;;;;;;24766:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2503:32:1;;;2485:51;;2473:2;2458:18;24766:51:0;2339:203:1;27724:95:0;;;;;;;;;;-1:-1:-1;27804:7:0;;27724:95;;24692:26;;;;;;;;;;;;;;;;24875:28;;;;;;;;;;-1:-1:-1;24875:28:0;;;;;;;;28528:313;;;;;;;;;;-1:-1:-1;28528:313:0;;;;;:::i;:::-;;:::i;30021:253::-;;;;;;;;;;-1:-1:-1;30021:253:0;;;;;:::i;:::-;;:::i;27633:83::-;;;;;;;;;;-1:-1:-1;27699:9:0;;27633:83;;27699:9;;;;12671:36:1;;12659:2;12644:18;27633:83:0;12529:184:1;23459:37:0;;;;;;;;;;;;;;;;48539:274;;;;;;;;;;;;;:::i;31186:210::-;;;;;;;;;;-1:-1:-1;31186:210:0;;;;;:::i;:::-;;:::i;28849:218::-;;;;;;;;;;-1:-1:-1;28849:218:0;;;;;:::i;:::-;;:::i;24455:22::-;;;;;;;;;;;;;;;;23350:29;;;;;;;;;;;;;;;;30286:190;;;;;;;;;;-1:-1:-1;30286:190:0;;;;;:::i;:::-;;:::i;29575:438::-;;;;;;;;;;-1:-1:-1;29575:438:0;;;;;:::i;:::-;;:::i;23575:25::-;;;;;;;;;;;;;;;;24824:38;;;;;;;;;;;;;;;24910:33;;;;;;;;;;-1:-1:-1;24910:33:0;;;;;;;;;;;36838:123;;;;;;;;;;-1:-1:-1;36838:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;36926:27:0;36902:4;36926:27;;;:18;:27;;;;;;;;;36838:123;24323:33;;;;;;;;;;-1:-1:-1;24323:33:0;;;;;;;;24151:23;;;;;;;;;;-1:-1:-1;24151:23:0;;;;-1:-1:-1;;;;;24151:23:0;;;24528:28;;;;;;;;;;;;;;;;27827:198;;;;;;;;;;-1:-1:-1;27827:198:0;;;;;:::i;:::-;;:::i;12712:103::-;;;;;;;;;;;;;:::i;23639:26::-;;;;;;;;;;;;;;;;24956:27;;;;;;;;;;;;;;;;29352:120;;;;;;;;;;-1:-1:-1;29352:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;29444:20:0;29420:4;29444:20;;;:11;:20;;;;;;;;;29352:120;12071:87;;;;;;;;;;-1:-1:-1;12117:7:0;12144:6;-1:-1:-1;;;;;12144:6:0;12071:87;;30910:264;;;;;;;;;;-1:-1:-1;30910:264:0;;;;;:::i;:::-;;:::i;27538:87::-;;;;;;;;;;;;;:::i;27349:90::-;;;;;;;;;;-1:-1:-1;27421:8:0;;-1:-1:-1;;;;;27421:8:0;27349:90;;29075:269;;;;;;;;;;-1:-1:-1;29075:269:0;;;;;:::i;:::-;;:::i;28033:167::-;;;;;;;;;;-1:-1:-1;28033:167:0;;;;;:::i;:::-;;:::i;24613:22::-;;;;;;;;;;;;;;;;23423:29;;;;;;;;;;;;;;;;24060:32;;;;;;;;;;-1:-1:-1;24060:32:0;;;;-1:-1:-1;;;;;24060:32:0;;;23607:25;;;;;;;;;;;;;;;;32574:171;;;;;;;;;;-1:-1:-1;32574:171:0;;;;;:::i;:::-;;:::i;23386:29::-;;;;;;;;;;;;;;;;48163:364;;;;;;;;;;;;;:::i;31410:243::-;;;;;;;;;;-1:-1:-1;31410:243:0;;;;;:::i;:::-;;:::i;24990:44::-;;;;;;;;;;;;;;;;23503:33;;;;;;;;;;;;;;;;31664:241;;;;;;;;;;-1:-1:-1;31664:241:0;;;;;:::i;:::-;;:::i;32161:405::-;;;;;;;;;;-1:-1:-1;32161:405:0;;;;;:::i;:::-;;:::i;28208:143::-;;;;;;;;;;-1:-1:-1;28208:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;28316:18:0;;;28289:7;28316:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;28208:143;30488:188;;;;;;;;;;-1:-1:-1;30488:188:0;;;;;:::i;:::-;;:::i;12970:201::-;;;;;;;;;;-1:-1:-1;12970:201:0;;;;;:::i;:::-;;:::i;24123:21::-;;;;;;;;;;-1:-1:-1;24123:21:0;;;;-1:-1:-1;;;;;24123:21:0;;;30688:210;11957:13;:11;:13::i;:::-;30795:9:::1;;30786:6;:18;;30763:64;;;::::0;-1:-1:-1;;;30763:64:0;;10892:2:1;30763:64:0::1;::::0;::::1;10874:21:1::0;10931:2;10911:18;;;10904:30;-1:-1:-1;;;10950:18:1;;;10943:49;11009:18;;30763:64:0::1;;;;;;;;;30838:7;:16:::0;;;30865:15:::1;:25:::0;30688:210::o;27447:83::-;27484:13;27517:5;27510:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27447:83;:::o;28359:161::-;28434:4;28451:39;4240:10;28474:7;28483:6;28451:8;:39::i;:::-;-1:-1:-1;28508:4:0;28359:161;;;;;:::o;28528:313::-;28626:4;28643:36;28653:6;28661:9;28672:6;28643:9;:36::i;:::-;28690:121;28699:6;4240:10;28721:89;28759:6;28721:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28721:19:0;;;;;;:11;:19;;;;;;;;4240:10;28721:33;;;;;;;;;;:37;:89::i;:::-;28690:8;:121::i;:::-;-1:-1:-1;28829:4:0;28528:313;;;;;:::o;30021:253::-;30087:7;30126;;30115;:18;;30107:73;;;;-1:-1:-1;;;30107:73:0;;5148:2:1;30107:73:0;;;5130:21:1;5187:2;5167:18;;;5160:30;5226:34;5206:18;;;5199:62;-1:-1:-1;;;5277:18:1;;;5270:40;5327:19;;30107:73:0;4946:406:1;30107:73:0;30191:19;30214:10;:8;:10::i;:::-;30191:33;-1:-1:-1;30242:24:0;:7;30191:33;30242:11;:24::i;:::-;30235:31;30021:253;-1:-1:-1;;;30021:253:0:o;48539:274::-;11957:13;:11;:13::i;:::-;48614:7:::1;::::0;48599:12:::1;:22:::0;48648:10:::1;::::0;48632:13:::1;:26:::0;48679:10:::1;::::0;48669:7:::1;:20:::0;-1:-1:-1;48710:10:0;48700:7:::1;:20:::0;48745:11:::1;::::0;48731::::1;:25:::0;48767:21:::1;:28:::0;;-1:-1:-1;;48767:28:0::1;;;::::0;;48539:274::o;31186:210::-;11957:13;:11;:13::i;:::-;31292:9:::1;;31283:6;:18;;31260:65;;;::::0;-1:-1:-1;;;31260:65:0;;8621:2:1;31260:65:0::1;::::0;::::1;8603:21:1::0;8660:2;8640:18;;;8633:30;-1:-1:-1;;;8679:18:1;;;8672:50;8739:18;;31260:65:0::1;8419:344:1::0;31260:65:0::1;31336:7;:16:::0;;;31363:15:::1;:25:::0;31186:210::o;28849:218::-;4240:10;28937:4;28986:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;28986:34:0;;;;;;;;;;28937:4;;28954:83;;28977:7;;28986:50;;29025:10;28986:38;:50::i;30286:190::-;11957:13;:11;:13::i;:::-;-1:-1:-1;;;;;30364:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;30363:28;30355:68;;;::::0;-1:-1:-1;;;30355:68:0;;6369:2:1;30355:68:0::1;::::0;::::1;6351:21:1::0;6408:2;6388:18;;;6381:30;6447:29;6427:18;;;6420:57;6494:18;;30355:68:0::1;6167:351:1::0;30355:68:0::1;-1:-1:-1::0;;;;;30434:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;30434:34:0::1;30464:4;30434:34;::::0;;30286:190::o;29575:438::-;29665:7;29704;;29693;:18;;29685:62;;;;-1:-1:-1;;;29685:62:0;;7081:2:1;29685:62:0;;;7063:21:1;7120:2;7100:18;;;7093:30;7159:33;7139:18;;;7132:61;7210:18;;29685:62:0;6879:355:1;29685:62:0;29763:17;29758:248;;29798:15;29823:19;29834:7;29823:10;:19::i;:::-;-1:-1:-1;29797:45:0;;-1:-1:-1;29857:14:0;;-1:-1:-1;;;;;;29857:14:0;29758:248;29906:23;29938:19;29949:7;29938:10;:19::i;:::-;-1:-1:-1;29904:53:0;;-1:-1:-1;29972:22:0;;-1:-1:-1;;;;;;29972:22:0;27827:198;-1:-1:-1;;;;;27917:20:0;;27893:7;27917:20;;;:11;:20;;;;;;;;27913:49;;;-1:-1:-1;;;;;;27946:16:0;;;;;:7;:16;;;;;;;27827:198::o;27913:49::-;-1:-1:-1;;;;;28000:16:0;;;;;;:7;:16;;;;;;27980:37;;:19;:37::i;12712:103::-;11957:13;:11;:13::i;:::-;12777:30:::1;12804:1;12777:18;:30::i;:::-;12712:103::o:0;30910:264::-;11957:13;:11;:13::i;:::-;31041:9:::1;;31026:12;:24;;30997:82;;;::::0;-1:-1:-1;;;30997:82:0;;4794:2:1;30997:82:0::1;::::0;::::1;4776:21:1::0;4833:2;4813:18;;;4806:30;4872:27;4852:18;;;4845:55;4917:18;;30997:82:0::1;4592:349:1::0;30997:82:0::1;31090:13;:28:::0;;;31129:21:::1;:37:::0;30910:264::o;27538:87::-;27577:13;27610:7;27603:14;;;;;:::i;29075:269::-;29168:4;29185:129;4240:10;29208:7;29217:96;29256:15;29217:96;;;;;;;;;;;;;;;;;4240:10;29217:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;29217:34:0;;;;;;;;;;;;:38;:96::i;28033:167::-;28111:4;28128:42;4240:10;28152:9;28163:6;28128:9;:42::i;32574:171::-;11957:13;:11;:13::i;:::-;32651:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;32651:32:0;;::::1;;::::0;;32699:38:::1;::::0;::::1;::::0;::::1;::::0;32675:8;3324:14:1;3317:22;3299:41;;3287:2;3272:18;;3159:187;32699:38:0::1;;;;;;;;32574:171:::0;:::o;48163:364::-;11957:13;:11;:13::i;:::-;48227::::1;::::0;;48214:10:::1;:26:::0;48264:7:::1;::::0;;48251:10:::1;:20:::0;48295:7:::1;::::0;;48282:10:::1;:20:::0;48327:11:::1;::::0;;48313::::1;:25:::0;-1:-1:-1;48364:7:0;48349:12:::1;:22:::0;-1:-1:-1;48382:17:0;;;;48410:11;;;;48432;;;48454:15;48480:21:::1;:29:::0;;-1:-1:-1;;48480:29:0::1;::::0;;48163:364::o;31410:243::-;11957:13;:11;:13::i;:::-;31533::::1;;31520:10;:26;;31493:76;;;::::0;-1:-1:-1;;;31493:76:0;;10892:2:1;31493:76:0::1;::::0;::::1;10874:21:1::0;10931:2;10911:18;;;10904:30;-1:-1:-1;;;10950:18:1;;;10943:49;11009:18;;31493:76:0::1;10690:343:1::0;31493:76:0::1;31580:11;:24:::0;;;31615:16:::1;:30:::0;31410:243::o;31664:241::-;11957:13;:11;:13::i;:::-;31767:17:::1;;31751:12;:33;;:55;;;;;31803:3;31788:12;:18;;31751:55;31743:92;;;::::0;-1:-1:-1;;;31743:92:0;;9372:2:1;31743:92:0::1;::::0;::::1;9354:21:1::0;9411:2;9391:18;;;9384:30;9450:27;9430:18;;;9423:55;9495:18;;31743:92:0::1;9170:349:1::0;31743:92:0::1;31861:36;31891:5;31861:25;31873:12;31861:7;;:11;;:25;;;;:::i;:::-;:29:::0;::::1;:36::i;:::-;31846:12;:51:::0;-1:-1:-1;31664:241:0:o;32161:405::-;11957:13;:11;:13::i;:::-;-1:-1:-1;;;;;32263:19:0;::::1;;::::0;;;:12:::1;:19;::::0;;;;;::::1;;32255:65;;;::::0;-1:-1:-1;;;32255:65:0;;8970:2:1;32255:65:0::1;::::0;::::1;8952:21:1::0;9009:2;8989:18;;;8982:30;9048:34;9028:18;;;9021:62;-1:-1:-1;;;9099:18:1;;;9092:31;9140:19;;32255:65:0::1;8768:397:1::0;32255:65:0::1;-1:-1:-1::0;;;;;32340:22:0;::::1;;::::0;;;:12:::1;:22;::::0;;;;;::::1;;32339:23;32331:62;;;::::0;-1:-1:-1;;;32331:62:0;;10132:2:1;32331:62:0::1;::::0;::::1;10114:21:1::0;10171:2;10151:18;;;10144:30;10210:28;10190:18;;;10183:56;10256:18;;32331:62:0::1;9930:350:1::0;32331:62:0::1;-1:-1:-1::0;;;;;32408:25:0;::::1;;::::0;;;:18:::1;:25;::::0;;;;;::::1;;32404:77;;;32450:19;32463:5;32450:12;:19::i;:::-;-1:-1:-1::0;;;;;32491:19:0;::::1;32513:5;32491:19:::0;;;:12:::1;:19;::::0;;;;:27;;-1:-1:-1;;32491:27:0::1;::::0;;32529:29:::1;32549:8:::0;32529:19:::1;:29::i;:::-;32161:405:::0;;:::o;30488:188::-;11957:13;:11;:13::i;:::-;-1:-1:-1;;;;;30563:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;30555:67;;;::::0;-1:-1:-1;;;30555:67:0;;6725:2:1;30555:67:0::1;::::0;::::1;6707:21:1::0;6764:2;6744:18;;;6737:30;6803:29;6783:18;;;6776:57;6850:18;;30555:67:0::1;6523:351:1::0;30555:67:0::1;-1:-1:-1::0;;;;;30633:27:0::1;30663:5;30633:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;30633:35:0::1;::::0;;30488:188::o;12970:201::-;11957:13;:11;:13::i;:::-;-1:-1:-1;;;;;13059:22:0;::::1;13051:73;;;::::0;-1:-1:-1;;;13051:73:0;;5559:2:1;13051:73:0::1;::::0;::::1;5541:21:1::0;5598:2;5578:18;;;5571:30;5637:34;5617:18;;;5610:62;-1:-1:-1;;;5688:18:1;;;5681:36;5734:19;;13051:73:0::1;5357:402:1::0;13051:73:0::1;13135:28;13154:8;13135:18;:28::i;:::-;12970:201:::0;:::o;7667:98::-;7725:7;7752:5;7756:1;7752;:5;:::i;8066:98::-;8124:7;8151:5;8155:1;8151;:5;:::i;12236:132::-;12117:7;12144:6;-1:-1:-1;;;;;12144:6:0;4240:10;12300:23;12292:68;;;;-1:-1:-1;;;12292:68:0;;7850:2:1;12292:68:0;;;7832:21:1;;;7869:18;;;7862:30;7928:34;7908:18;;;7901:62;7980:18;;12292:68:0;7648:356:1;36969:337:0;-1:-1:-1;;;;;37062:19:0;;37054:68;;;;-1:-1:-1;;;37054:68:0;;10487:2:1;37054:68:0;;;10469:21:1;10526:2;10506:18;;;10499:30;10565:34;10545:18;;;10538:62;-1:-1:-1;;;10616:18:1;;;10609:34;10660:19;;37054:68:0;10285:400:1;37054:68:0;-1:-1:-1;;;;;37141:21:0;;37133:68;;;;-1:-1:-1;;;37133:68:0;;5966:2:1;37133:68:0;;;5948:21:1;6005:2;5985:18;;;5978:30;6044:34;6024:18;;;6017:62;-1:-1:-1;;;6095:18:1;;;6088:32;6137:19;;37133:68:0;5764:398:1;37133:68:0;-1:-1:-1;;;;;37214:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;37266:32;;11184:25:1;;;37266:32:0;;11157:18:1;37266:32:0;;;;;;;36969:337;;;:::o;37314:2061::-;-1:-1:-1;;;;;37436:18:0;;37428:68;;;;-1:-1:-1;;;37428:68:0;;9726:2:1;37428:68:0;;;9708:21:1;9765:2;9745:18;;;9738:30;9804:34;9784:18;;;9777:62;-1:-1:-1;;;9855:18:1;;;9848:35;9900:19;;37428:68:0;9524:401:1;37428:68:0;-1:-1:-1;;;;;37515:16:0;;37507:64;;;;-1:-1:-1;;;37507:64:0;;4390:2:1;37507:64:0;;;4372:21:1;4429:2;4409:18;;;4402:30;4468:34;4448:18;;;4441:62;-1:-1:-1;;;4519:18:1;;;4512:33;4562:19;;37507:64:0;4188:399:1;37507:64:0;-1:-1:-1;;;;;37588:24:0;;;;;;:18;:24;;;;;;;;37584:120;;37645:1;37636:6;:10;37628:64;;;;-1:-1:-1;;;37628:64:0;;8211:2:1;37628:64:0;;;8193:21:1;8250:2;8230:18;;;8223:30;8289:34;8269:18;;;8262:62;-1:-1:-1;;;8340:18:1;;;8333:39;8389:19;;37628:64:0;8009:405:1;37628:64:0;37777:13;-1:-1:-1;;;;;37771:19:0;:2;-1:-1:-1;;;;;37771:19:0;;37767:72;;;37816:11;;37806:7;:21;37767:72;12117:7;12144:6;-1:-1:-1;;;;;37854:15:0;;;12144:6;;37854:15;;;;:32;;-1:-1:-1;12117:7:0;12144:6;-1:-1:-1;;;;;37873:13:0;;;12144:6;;37873:13;;37854:32;37851:125;;;37919:12;;37909:6;:22;;37901:75;;;;-1:-1:-1;;;37901:75:0;;7441:2:1;37901:75:0;;;7423:21:1;7480:2;7460:18;;;7453:30;7519:34;7499:18;;;7492:62;-1:-1:-1;;;7570:18:1;;;7563:38;7618:19;;37901:75:0;7239:404:1;37901:75:0;38271:28;38302:24;38320:4;38302:9;:24::i;:::-;38271:55;;38374:12;;38350:20;:36;38347:112;;-1:-1:-1;38435:12:0;;38347:112;38530:29;;38506:53;;;;;;;38588;;-1:-1:-1;38625:16:0;;;;38624:17;38588:53;:91;;;;;38666:13;-1:-1:-1;;;;;38658:21:0;:4;-1:-1:-1;;;;;38658:21:0;;;38588:91;:129;;;;-1:-1:-1;38696:21:0;;;;;;;38588:129;38570:318;;;38767:29;;38744:52;;38840:36;38855:20;38840:14;:36::i;:::-;-1:-1:-1;;;;;39096:24:0;;38969:12;39096:24;;;:18;:24;;;;;;38984:4;;39096:24;;;:50;;-1:-1:-1;;;;;;39124:22:0;;;;;;:18;:22;;;;;;;;39096:50;39093:96;;;-1:-1:-1;39172:5:0;39093:96;39275:38;39290:4;39295:2;39298:6;39305:7;39275:14;:38::i;:::-;39352:15;36678;;36668:7;:25;36720:21;;36704:13;:37;36762:15;;36752:7;:25;36802:16;;36788:11;:30;36624:202;39352:15;37417:1958;;;37314:2061;;;:::o;9208:206::-;9294:7;9355:12;9347:6;;;;9339:29;;;;-1:-1:-1;;;9339:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;9390:5:0;;;9208:206::o;34234:163::-;34275:7;34296:15;34313;34332:19;:17;:19::i;:::-;34295:56;;-1:-1:-1;34295:56:0;-1:-1:-1;34369:20:0;34295:56;;34369:11;:20::i;:::-;34362:27;;;;34234:163;:::o;6929:98::-;6987:7;7014:5;7018:1;7014;:5;:::i;32851:454::-;32910:7;32919;32928;32937;32946;32955;32964;32985:23;33010:12;33024:18;33044:12;33060:20;33072:7;33060:11;:20::i;:::-;32984:96;;;;;;;;33092:15;33109:23;33134:12;33150:56;33162:7;33171:4;33177:10;33189:4;33195:10;:8;:10::i;:::-;33150:11;:56::i;:::-;33091:115;;-1:-1:-1;33091:115:0;-1:-1:-1;33091:115:0;-1:-1:-1;33257:15:0;;-1:-1:-1;33274:4:0;;-1:-1:-1;33280:10:0;;-1:-1:-1;33292:4:0;-1:-1:-1;;;;32851:454:0;;;;;;;;;:::o;13331:191::-;13405:16;13424:6;;-1:-1:-1;;;;;13441:17:0;;;-1:-1:-1;;;;;;13441:17:0;;;;;;13474:40;;13424:6;;;;;;;13474:40;;13405:16;13474:40;13394:128;13331:191;:::o;31921:232::-;-1:-1:-1;;;;;31998:25:0;;;;;;:18;:25;;;;;;;;31993:80;;32040:21;32055:5;32040:14;:21::i;:::-;-1:-1:-1;;;;;32083:19:0;;;;;:12;:19;;;;;:26;;-1:-1:-1;;32083:26:0;32105:4;32083:26;;;32120:17;:25;;-1:-1:-1;;;;;;32120:25:0;;;;;;31921:232::o;39383:985::-;25341:16;:23;;-1:-1:-1;;25341:23:0;25360:4;25341:23;;;:16;39534:27:::1;:20:::0;39559:1:::1;39534:24;:27::i;:::-;39519:42:::0;-1:-1:-1;39572:17:0::1;39592:30;:20:::0;39519:42;39592:24:::1;:30::i;:::-;39572:50:::0;-1:-1:-1;39925:21:0::1;39991:22;40008:4:::0;39991:16:::1;:22::i;:::-;40144:18;40165:41;:21;40191:14:::0;40165:25:::1;:41::i;:::-;40144:62;;40256:35;40269:9;40280:10;40256:12;:35::i;:::-;40317:43;::::0;;12407:25:1;;;12463:2;12448:18;;12441:34;;;12491:18;;;12484:34;;;40317:43:0::1;::::0;12395:2:1;12380:18;40317:43:0::1;;;;;;;-1:-1:-1::0;;25387:16:0;:24;;-1:-1:-1;;25387:24:0;;;-1:-1:-1;;;39383:985:0:o;44725:783::-;44836:7;44832:40;;44858:14;:12;:14::i;:::-;-1:-1:-1;;;;;44897:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;44921:22:0;;;;;;:11;:22;;;;;;;;44920:23;44897:46;44893:597;;;44960:48;44982:6;44990:9;45001:6;44960:21;:48::i;:::-;44893:597;;;-1:-1:-1;;;;;45031:19:0;;;;;;:11;:19;;;;;;;;45030:20;:46;;;;-1:-1:-1;;;;;;45054:22:0;;;;;;:11;:22;;;;;;;;45030:46;45026:464;;;45093:46;45113:6;45121:9;45132:6;45093:19;:46::i;45026:464::-;-1:-1:-1;;;;;45162:19:0;;;;;;:11;:19;;;;;;;;45161:20;:47;;;;-1:-1:-1;;;;;;45186:22:0;;;;;;:11;:22;;;;;;;;45185:23;45161:47;45157:333;;;45225:44;45243:6;45251:9;45262:6;45225:17;:44::i;45157:333::-;-1:-1:-1;;;;;45291:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;45314:22:0;;;;;;:11;:22;;;;;;;;45291:45;45287:203;;;45353:48;45375:6;45383:9;45394:6;45353:21;:48::i;45287:203::-;45434:44;45452:6;45460:9;45471:6;45434:17;:44::i;:::-;44725:783;;;;:::o;34405:561::-;34502:7;;34538;;34455;;;;;34562:289;34586:9;:16;34582:20;;34562:289;;;34652:7;34628;:21;34636:9;34646:1;34636:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;34636:12:0;34628:21;;;;;;;;;;;;;:31;;:66;;;34687:7;34663;:21;34671:9;34681:1;34671:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;34671:12:0;34663:21;;;;;;;;;;;;;:31;34628:66;34624:97;;;34704:7;;34713;;34696:25;;;;;;;34405:561;;:::o;34624:97::-;34746:34;34758:7;:21;34766:9;34776:1;34766:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;34766:12:0;34758:21;;;;;;;;;;;;;34746:7;;:11;:34::i;:::-;34736:44;;34805:34;34817:7;:21;34825:9;34835:1;34825:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;34825:12:0;34817:21;;;;;;;;;;;;;34805:7;;:11;:34::i;:::-;34795:44;-1:-1:-1;34604:3:0;;;;:::i;:::-;;;;34562:289;;;-1:-1:-1;34887:7:0;;34875;;:20;;:11;:20::i;:::-;34865:7;:30;34861:61;;;34905:7;;34914;;34897:25;;;;;;34405:561;;:::o;34861:61::-;34941:7;;34950;;-1:-1:-1;34405:561:0;-1:-1:-1;34405:561:0:o;33313:405::-;33373:7;33382;33391;33400;33420:12;33435:24;33451:7;33435:15;:24::i;:::-;33420:39;;33470:18;33491:30;33513:7;33491:21;:30::i;:::-;33470:51;;33532:12;33547:24;33563:7;33547:15;:24::i;:::-;33532:39;-1:-1:-1;33582:23:0;33608:43;33532:39;33608:33;33630:10;33608:33;:7;33620:4;33608:11;:17::i;:::-;:21;;:33::i;:43::-;33582:69;33687:4;;-1:-1:-1;33693:10:0;;-1:-1:-1;33693:10:0;-1:-1:-1;33313:405:0;;-1:-1:-1;;;33313:405:0:o;33726:500::-;33855:7;;;;33911:24;:7;33923:11;33911;:24::i;:::-;33893:42;-1:-1:-1;33946:12:0;33961:21;:4;33970:11;33961:8;:21::i;:::-;33946:36;-1:-1:-1;33993:18:0;34014:27;:10;34029:11;34014:14;:27::i;:::-;33993:48;-1:-1:-1;34052:12:0;34067:21;:4;34076:11;34067:8;:21::i;:::-;34052:36;-1:-1:-1;34099:23:0;34125:43;34052:36;34125:33;34147:10;34125:33;:7;34137:4;34125:11;:17::i;:43::-;34187:7;;;;-1:-1:-1;34213:4:0;;-1:-1:-1;33726:500:0;;-1:-1:-1;;;;;;;;;33726:500:0:o;7310:98::-;7368:7;7395:5;7399:1;7395;:5;:::i;40376:2057::-;40525:16;;;40539:1;40525:16;;;;;;;;40501:21;;40525:16;;;;;;;;;;-1:-1:-1;40525:16:0;40501:40;;40570:4;40552;40557:1;40552:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;40552:23:0;;;:7;;;;;;;;;:23;27421:8;;;40586:4;40591:1;40586:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;40586:23:0;;;-1:-1:-1;;;;;40586:23:0;;;;;40622:62;40639:4;40654:15;40672:11;40622:8;:62::i;:::-;40727:224;;-1:-1:-1;;;40727:224:0;;-1:-1:-1;;;;;40727:15:0;:66;;;;:224;;40808:11;;40834:1;;40878:4;;40905;;40925:15;;40727:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40723:1703;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41007:248:0;;-1:-1:-1;;;41007:248:0;;-1:-1:-1;;;;;41007:15:0;:66;;;;:248;;41092:11;;41122:1;;41170:4;;41201;;41225:15;;41007:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41003:1410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41315:273:0;;-1:-1:-1;;;41315:273:0;;-1:-1:-1;;;;;41315:15:0;:67;;;;:273;;41405:11;;41439:1;;41491:4;;41526;;41554:15;;41315:273;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41311:1085;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41657:295:0;;-1:-1:-1;;;41657:295:0;;-1:-1:-1;;;;;41657:15:0;:65;;;;:295;;41749:11;;41787:1;;41843:4;;41882;;41914:15;;41657:295;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41653:720;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;42025:320:0;;-1:-1:-1;;;42025:320:0;;-1:-1:-1;;;;;42025:15:0;:66;;;;:320;;42122:11;;42164:1;;42224:4;;42267;;42303:15;;42025:320;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41976:397;41653:720;41610:786;41272:1141;41003:1410;40966:1460;32161:405;;:::o;42441:2203::-;42589:62;42606:4;42621:15;42639:11;42589:8;:62::i;:::-;42905:4;;42700:250;;-1:-1:-1;;;42700:250:0;;-1:-1:-1;;;;;42700:15:0;:31;;;;;42740:9;;42700:250;;42773:4;;42793:11;;42819:1;;;;42905:4;;;42924:15;;42700:250;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;42700:250:0;;;;;;;;-1:-1:-1;;42700:250:0;;;;;;;;;;;;:::i;:::-;;;42696:1939;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43242:4:0;;43017:278;;-1:-1:-1;;;43017:278:0;;-1:-1:-1;;;;;43017:15:0;:31;;;;;43057:9;;43017:278;;43094:4;;43118:11;;43148:1;;;;43242:4;;;43265:15;;43017:278;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43017:278:0;;;;;;;;-1:-1:-1;;43017:278:0;;;;;;;;;;;;:::i;:::-;;;43013:1611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43618:4:0;;43372:307;;-1:-1:-1;;;43372:307:0;;-1:-1:-1;;;;;43372:15:0;:32;;;;;43413:9;;43372:307;;43454:4;;43482:11;;43516:1;;;;43618:4;;;43645:15;;43372:307;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43372:307:0;;;;;;;;-1:-1:-1;;43372:307:0;;;;;;;;;;;;:::i;:::-;;;43368:1239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;44032:4:0;;43768:333;;-1:-1:-1;;;43768:333:0;;-1:-1:-1;;;;;43768:15:0;:30;;;;;43807:9;;43768:333;;43852:4;;43884:11;;43922:1;;;;44032:4;;;44063:15;;43768:333;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;43768:333:0;;;;;;;;-1:-1:-1;;43768:333:0;;;;;;;;;;;;:::i;:::-;;;43764:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;44485:4:0;;44200:362;;-1:-1:-1;;;44200:362:0;;-1:-1:-1;;;;;44200:15:0;:31;;;;;44240:9;;44200:362;;44289:4;;44325:11;;44367:1;;;;44485:4;;;44520:15;;44200:362;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;44150:436;43764:822;;;;;;43720:887;43368:1239;;;;;;43328:1296;40966:1460;32161:405;;:::o;36221:391::-;36267:7;;:12;:34;;;;-1:-1:-1;36283:13:0;;:18;36267:34;:50;;;;-1:-1:-1;36305:7:0;;:12;36267:50;36264:62;;;36221:391::o;36264:62::-;36364:7;;;36346:15;:25;36406:13;;;36382:21;:37;36448:7;;;36430:15;:25;36485:11;;;36466:16;:30;-1:-1:-1;36517:11:0;;;;36539:17;;;;36567:11;;;36589:15;36221:391::o;46698:605::-;46801:15;46818:23;46843:12;46857:23;46882:12;46896:18;46916:12;46932:19;46943:7;46932:10;:19::i;:::-;46800:151;;;;;;;;;;;;;;46980:28;47000:7;46980;:15;46988:6;-1:-1:-1;;;;;46980:15:0;-1:-1:-1;;;;;46980:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;46962:15:0;;;;;;:7;:15;;;;;;;;:46;;;;47037:7;:15;;;;:28;;47057:7;47037:19;:28::i;:::-;-1:-1:-1;;;;;47019:15:0;;;;;;;:7;:15;;;;;;:46;;;;47097:18;;;;;;;:39;;47120:15;47097:22;:39::i;:::-;-1:-1:-1;;;;;47076:18:0;;;;;;:7;:18;;;;;:60;47150:26;47165:10;47150:14;:26::i;:::-;47187:14;47196:4;47187:8;:14::i;:::-;47212:23;47224:4;47230;47212:11;:23::i;:::-;47268:9;-1:-1:-1;;;;;47251:44:0;47260:6;-1:-1:-1;;;;;47251:44:0;;47279:15;47251:44;;;;11184:25:1;;11172:2;11157:18;;11038:177;47251:44:0;;;;;;;;46789:514;;;;;;;46698:605;;;:::o;46065:625::-;46166:15;46183:23;46208:12;46222:23;46247:12;46261:18;46281:12;46297:19;46308:7;46297:10;:19::i;:::-;46165:151;;;;;;;;;;;;;;46345:28;46365:7;46345;:15;46353:6;-1:-1:-1;;;;;46345:15:0;-1:-1:-1;;;;;46345:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;46327:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;46405:18;;;;;:7;:18;;;;;:39;;46428:15;46405:22;:39::i;:::-;-1:-1:-1;;;;;46384:18:0;;;;;;:7;:18;;;;;;;;:60;;;;46476:7;:18;;;;:39;;46499:15;46476:22;:39::i;45516:541::-;45615:15;45632:23;45657:12;45671:23;45696:12;45710:18;45730:12;45746:19;45757:7;45746:10;:19::i;:::-;45614:151;;;;;;;;;;;;;;45794:28;45814:7;45794;:15;45802:6;-1:-1:-1;;;;;45794:15:0;-1:-1:-1;;;;;45794:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;47311:689::-;47414:15;47431:23;47456:12;47470:23;47495:12;47509:18;47529:12;47545:19;47556:7;47545:10;:19::i;:::-;47413:151;;;;;;;;;;;;;;47593:28;47613:7;47593;:15;47601:6;-1:-1:-1;;;;;47593:15:0;-1:-1:-1;;;;;47593:15:0;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;-1:-1:-1;;;;;47575:15:0;;;;;;:7;:15;;;;;;;;:46;;;;47650:7;:15;;;;:28;;47670:7;47650:19;:28::i;35699:166::-;35763:7;35794:63;35837:5;35794:20;35806:7;;35794;:11;;:20;;;;:::i;35873:166::-;35943:7;35970:61;36015:5;35970:26;35982:13;;35970:7;:11;;:26;;;;:::i;36051:154::-;36115:7;36142:55;36181:5;36142:20;36154:7;;36142;:11;;:20;;;;:::i;34978:355::-;35041:19;35064:10;:8;:10::i;:::-;35041:33;-1:-1:-1;35085:18:0;35106:27;:10;35041:33;35106:14;:27::i;:::-;35185:4;35169:22;;;;:7;:22;;;;;;35085:48;;-1:-1:-1;35169:38:0;;35085:48;35169:26;:38::i;:::-;35160:4;35144:22;;;;:7;:22;;;;;;;;:63;;;;35221:11;:26;;;;;;35218:107;;;35303:4;35287:22;;;;:7;:22;;;;;;:38;;35314:10;35287:26;:38::i;:::-;35278:4;35262:22;;;;:7;:22;;;;;:63;35030:303;;34978:355;:::o;35345:338::-;35396:19;35418:10;:8;:10::i;:::-;35396:32;-1:-1:-1;35439:12:0;35454:21;:4;35396:32;35454:8;:21::i;:::-;35523:17;;-1:-1:-1;;;;;35523:17:0;35515:26;;;;:7;:26;;;;;;35439:36;;-1:-1:-1;35515:36:0;;35439;35515:30;:36::i;:::-;35494:17;;;-1:-1:-1;;;;;35494:17:0;;;35486:26;;;;:7;:26;;;;;;;;:65;;;;35577:17;;;;;35565:30;;:11;:30;;;;;;;35562:113;;;35647:17;;-1:-1:-1;;;;;35647:17:0;35639:26;;;;:7;:26;;;;;;:36;;35670:4;35639:30;:36::i;:::-;35618:17;;-1:-1:-1;;;;;35618:17:0;35610:26;;;;:7;:26;;;;;:65;35385:298;;35345:338;:::o;48008:147::-;48086:7;;:17;;48098:4;48086:11;:17::i;:::-;48076:7;:27;48127:10;;:20;;48142:4;48127:14;:20::i;:::-;48114:10;:33;-1:-1:-1;;48008:147:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:160::-;257:20;;313:13;;306:21;296:32;;286:60;;342:1;339;332:12;357:186;416:6;469:2;457:9;448:7;444:23;440:32;437:52;;;485:1;482;475:12;437:52;508:29;527:9;508:29;:::i;548:260::-;616:6;624;677:2;665:9;656:7;652:23;648:32;645:52;;;693:1;690;683:12;645:52;716:29;735:9;716:29;:::i;:::-;706:39;;764:38;798:2;787:9;783:18;764:38;:::i;:::-;754:48;;548:260;;;;;:::o;813:328::-;890:6;898;906;959:2;947:9;938:7;934:23;930:32;927:52;;;975:1;972;965:12;927:52;998:29;1017:9;998:29;:::i;:::-;988:39;;1046:38;1080:2;1069:9;1065:18;1046:38;:::i;:::-;1036:48;;1131:2;1120:9;1116:18;1103:32;1093:42;;813:328;;;;;:::o;1146:254::-;1214:6;1222;1275:2;1263:9;1254:7;1250:23;1246:32;1243:52;;;1291:1;1288;1281:12;1243:52;1314:29;1333:9;1314:29;:::i;:::-;1304:39;1390:2;1375:18;;;;1362:32;;-1:-1:-1;;;1146:254:1:o;1405:180::-;1461:6;1514:2;1502:9;1493:7;1489:23;1485:32;1482:52;;;1530:1;1527;1520:12;1482:52;1553:26;1569:9;1553:26;:::i;1590:180::-;1649:6;1702:2;1690:9;1681:7;1677:23;1673:32;1670:52;;;1718:1;1715;1708:12;1670:52;-1:-1:-1;1741:23:1;;1590:180;-1:-1:-1;1590:180:1:o;1775:248::-;1840:6;1848;1901:2;1889:9;1880:7;1876:23;1872:32;1869:52;;;1917:1;1914;1907:12;1869:52;1953:9;1940:23;1930:33;;1982:35;2013:2;2002:9;1998:18;1982:35;:::i;2028:306::-;2116:6;2124;2132;2185:2;2173:9;2164:7;2160:23;2156:32;2153:52;;;2201:1;2198;2191:12;2153:52;2230:9;2224:16;2214:26;;2280:2;2269:9;2265:18;2259:25;2249:35;;2324:2;2313:9;2309:18;2303:25;2293:35;;2028:306;;;;;:::o;2547:607::-;-1:-1:-1;;;;;2906:15:1;;;2888:34;;2953:2;2938:18;;2931:34;;;;2996:2;2981:18;;2974:34;;;;3039:2;3024:18;;3017:34;;;;3088:15;;;3082:3;3067:19;;3060:44;2868:3;3120:19;;3113:35;;;;2837:3;2822:19;;2547:607::o;3586:597::-;3698:4;3727:2;3756;3745:9;3738:21;3788:6;3782:13;3831:6;3826:2;3815:9;3811:18;3804:34;3856:1;3866:140;3880:6;3877:1;3874:13;3866:140;;;3975:14;;;3971:23;;3965:30;3941:17;;;3960:2;3937:26;3930:66;3895:10;;3866:140;;;4024:6;4021:1;4018:13;4015:91;;;4094:1;4089:2;4080:6;4069:9;4065:22;4061:31;4054:42;4015:91;-1:-1:-1;4167:2:1;4146:15;-1:-1:-1;;4142:29:1;4127:45;;;;4174:2;4123:54;;3586:597;-1:-1:-1;;;3586:597:1:o;11220:980::-;11482:4;11530:3;11519:9;11515:19;11561:6;11550:9;11543:25;11587:2;11625:6;11620:2;11609:9;11605:18;11598:34;11668:3;11663:2;11652:9;11648:18;11641:31;11692:6;11727;11721:13;11758:6;11750;11743:22;11796:3;11785:9;11781:19;11774:26;;11835:2;11827:6;11823:15;11809:29;;11856:1;11866:195;11880:6;11877:1;11874:13;11866:195;;;11945:13;;-1:-1:-1;;;;;11941:39:1;11929:52;;12036:15;;;;12001:12;;;;11977:1;11895:9;11866:195;;;-1:-1:-1;;;;;;;12117:32:1;;;;12112:2;12097:18;;12090:60;-1:-1:-1;;;12181:3:1;12166:19;12159:35;12078:3;11220:980;-1:-1:-1;;;11220:980:1:o;12718:128::-;12758:3;12789:1;12785:6;12782:1;12779:13;12776:39;;;12795:18;;:::i;:::-;-1:-1:-1;12831:9:1;;12718:128::o;12851:217::-;12891:1;12917;12907:132;;12961:10;12956:3;12952:20;12949:1;12942:31;12996:4;12993:1;12986:15;13024:4;13021:1;13014:15;12907:132;-1:-1:-1;13053:9:1;;12851:217::o;13073:168::-;13113:7;13179:1;13175;13171:6;13167:14;13164:1;13161:21;13156:1;13149:9;13142:17;13138:45;13135:71;;;13186:18;;:::i;:::-;-1:-1:-1;13226:9:1;;13073:168::o;13246:125::-;13286:4;13314:1;13311;13308:8;13305:34;;;13319:18;;:::i;:::-;-1:-1:-1;13356:9:1;;13246:125::o;13376:380::-;13455:1;13451:12;;;;13498;;;13519:61;;13573:4;13565:6;13561:17;13551:27;;13519:61;13626:2;13618:6;13615:14;13595:18;13592:38;13589:161;;;13672:10;13667:3;13663:20;13660:1;13653:31;13707:4;13704:1;13697:15;13735:4;13732:1;13725:15;13589:161;;13376:380;;;:::o;13761:135::-;13800:3;-1:-1:-1;;13821:17:1;;13818:43;;;13841:18;;:::i;:::-;-1:-1:-1;13888:1:1;13877:13;;13761:135::o;13901:127::-;13962:10;13957:3;13953:20;13950:1;13943:31;13993:4;13990:1;13983:15;14017:4;14014:1;14007:15;14033:127;14094:10;14089:3;14085:20;14082:1;14075:31;14125:4;14122:1;14115:15;14149:4;14146:1;14139:15
Swarm Source
ipfs://c61872b5f815d4a0efa16bc5cf569fd04f8990062b116e447f983ba3c9c8ba8c
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.