ERC-20
Overview
Max Total Supply
21,000,000 CAP
Holders
139
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1.896205964837160919 CAPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Capitalism
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-31 */ /** */ /*/$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ Capitalism Contract $ $ $ $ "Bulls make money, Bears make money, Capitalist Win." $ $ $ $ $.$ $$$ .$. $ $ $ $ $ $ $ $ $ $ $.$ $$$ .$. $ $ $ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * Emits a {Transfer} event. Returns a boolean value indicating success. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the total number of tokens in circulation. */ function totalSupply() external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over caller's tokens. * Beware: changing an allowance might cause a race condition. * Emits an {Approval} event. Returns a boolean value indicating success. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` with allowance check. * Deducts `amount` from caller's allowance. Emits a {Transfer} event. * Returns a boolean value indicating success. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Returns the number of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Returns the remaining tokens that `spender` can spend for `owner`. * Default is zero. Changes when {approve} or {transferFrom} is invoked. */ function allowance(address owner, address spender) external view returns (uint256); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20MetadataExtension is IERC20 { /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20MetadataExtension { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /** * @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; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function allPairsLength() external view returns (uint256); function getPair(address tokenA, address tokenB) external view returns (address pair); function feeToSetter() external view returns (address); function setFeeToSetter(address) external; function createPair(address tokenA, address tokenB) external returns (address pair); function allPairs(uint256) external view returns (address pair); function setFeeTo(address) external; } interface IUniswapV2Router01 { function WETH() external pure returns (address); function factory() external pure returns (address); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); } contract Capitalism is ERC20, Ownable { using SafeMath for uint256; bool public swapEnabled = false; bool private swapping; uint256 public maxTransactionAmount; uint256 private buyDevFee; uint256 public maxWallet; uint256 private tokensForMarketing; uint256 public buyTotalFees; uint256 private tokensForDevelopment; address public markWallet; address public devWallet; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); address public burnsPartnershipsCEXWallet; uint256 private sellDevFee; uint256 public swapTokensAtAmount; uint256 private previousFee; uint256 private buyMarkFee; uint256 public sellTotalFees; uint256 private sellMarkFee; bool public tradingActive = false; IUniswapV2Router02 public immutable uniswapV2Router; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event ExcludeFromFees(address indexed account, bool isExcluded); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event developmentWalletUpdated(address indexed newWallet, address indexed oldWallet); constructor(address _marketingWallet, address _developmentWallet, address _burnsPartnershipsCEXWallet) ERC20(unicode"Capitalism", unicode"CAP") { uint256 totalSupply = 21_000_000 ether; // Set the router uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(uniswapV2Router), type(uint256).max); // Set maximum transaction and wallet limits maxTransactionAmount = (totalSupply) / 50; maxWallet = (totalSupply) / 50; // Set fee structures. Start at 10/30. Renounce at 0/0 buyMarkFee = 5; buyDevFee = 5; sellMarkFee = 15; sellDevFee = 15; buyTotalFees = buyMarkFee + buyDevFee; sellTotalFees = sellMarkFee + sellDevFee; previousFee = sellTotalFees; swapTokensAtAmount = (totalSupply * 5) / 10000; // Set wallet addresses markWallet = _marketingWallet; devWallet = _developmentWallet; burnsPartnershipsCEXWallet = _burnsPartnershipsCEXWallet; // Exclude addresses from fees excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(markWallet, true); excludeFromFees(devWallet, true); excludeFromFees(burnsPartnershipsCEXWallet, true); excludeFromFees(deadAddress, true); // Exclude addresses from max transaction excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(uniswapV2Router), true); excludeFromMaxTransaction(markWallet, true); excludeFromMaxTransaction(devWallet, true); excludeFromMaxTransaction(burnsPartnershipsCEXWallet, true); excludeFromMaxTransaction(deadAddress, true); // Minting token logic uint256 partnershipsPlusTokenAmount = (totalSupply * 50) / 100; uint256 contractAmount = totalSupply - partnershipsPlusTokenAmount; _mint(burnsPartnershipsCEXWallet, partnershipsPlusTokenAmount); _mint(address(this), contractAmount); } receive() external payable {} function burn(uint256 amount) external { _burn(msg.sender, amount); } function enableTrading() external onlyOwner { require(!tradingActive, "Trading already active."); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); uint256 tokensInWallet = balanceOf(address(this)); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); _approve(address(this), address(uniswapV2Pair), type(uint256).max); IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), tokensInWallet, 0, 0, owner(), block.timestamp ); tradingActive = true; swapEnabled = true; } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require( newAmount >= (totalSupply() * 1) / 100000, "ERC20: Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "ERC20: Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { require(newMarketingWallet != address(0), "ERC20: Address 0"); address prevWallet = markWallet; markWallet = newMarketingWallet; emit marketingWalletUpdated(markWallet, prevWallet); } function updateDevelopmentWallet(address newDevelopmentWallet) external onlyOwner { require(newDevelopmentWallet != address(0), "ERC20: Address 0"); address prevWallet = devWallet; devWallet = newDevelopmentWallet; emit developmentWalletUpdated(devWallet, prevWallet); } function updateBuyFees( uint256 _marketingFee, uint256 _developmentFee ) external onlyOwner { buyMarkFee = _marketingFee; buyDevFee = _developmentFee; buyTotalFees = buyMarkFee + buyDevFee; require(buyTotalFees <= 30, "ERC20: Must keep fees at 30% or less"); } function updateSellFees( uint256 _marketingFee, uint256 _developmentFee ) external onlyOwner { sellMarkFee = _marketingFee; sellDevFee = _developmentFee; sellTotalFees = sellMarkFee + sellDevFee; previousFee = sellTotalFees; require(sellTotalFees <= 30, "ERC20: Must keep fees at 30% or less"); } function updateMaxWalletAndTxnAmount( uint256 newTxAmount, uint256 newMaxWalletAmount ) external onlyOwner { require( newTxAmount >= ((totalSupply() * 5) / 1000), "ERC20: Cannot set maxTxn lower than 0.5%" ); require( newMaxWalletAmount >= ((totalSupply() * 5) / 1000), "ERC20: Cannot set maxWallet lower than 0.5%" ); maxWallet = newMaxWalletAmount; maxTransactionAmount = newTxAmount; } function excludeFromFees(address acc, bool isExcluded) public onlyOwner { _isExcludedFromFees[acc] = isExcluded; emit ExcludeFromFees(acc, isExcluded); } function excludeFromMaxTransaction(address accountAddr, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[accountAddr] = isEx; } function withdrawStuckETH() public onlyOwner { bool success; (success, ) = address(msg.sender).call{value: address(this).balance}( "" ); } function withdrawStuckTokens(address token) public onlyOwner { uint256 tokenAmount = IERC20(token).balanceOf(address(this)); require(tokenAmount > 0, "No tokens"); IERC20(token).transfer(msg.sender, tokenAmount); } function _setAutomatedMarketMakerPair(address pairAddr, bool val) private { automatedMarketMakerPairs[pairAddr] = val; emit SetAutomatedMarketMakerPair(pairAddr, val); } function isExcludedFromFees(address acc) public view returns (bool) { return _isExcludedFromFees[acc]; } function _transfer( address sender, address recipient, uint256 amount ) internal override { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(sender, recipient, 0); return; } bool isTrading = (sender != owner() && recipient != owner() && recipient != address(0) && recipient != deadAddress && !swapping); if (isTrading) { if (!tradingActive) { require( _isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "ERC20: Trading is not active." ); } bool isBuy = automatedMarketMakerPairs[sender] && !_isExcludedMaxTransactionAmount[recipient]; bool isSell = automatedMarketMakerPairs[recipient] && !_isExcludedMaxTransactionAmount[sender]; if (isBuy) { require(amount <= maxTransactionAmount, "ERC20: Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(recipient) <= maxWallet, "ERC20: Max wallet exceeded"); } else if (isSell) { require(amount <= maxTransactionAmount, "ERC20: Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[recipient]) { require(amount + balanceOf(recipient) <= maxWallet, "ERC20: Max wallet exceeded"); } } uint256 tokensInContract = balanceOf(address(this)); bool canSwapTokens = tokensInContract >= swapTokensAtAmount; if (canSwapTokens && swapEnabled && !swapping && !automatedMarketMakerPairs[sender] && !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient]) { swapping = true; swapBack(); swapping = false; } bool applyFee = !swapping && (!_isExcludedFromFees[sender] || !_isExcludedFromFees[recipient]); uint256 totalFees = 0; if (applyFee) { uint256 feePercent = automatedMarketMakerPairs[recipient] ? sellTotalFees : (automatedMarketMakerPairs[sender] ? buyTotalFees : 0); if (feePercent > 0) { totalFees = amount.mul(feePercent).div(100); tokensForMarketing += (totalFees * (automatedMarketMakerPairs[recipient] ? sellMarkFee : buyMarkFee)) / feePercent; tokensForDevelopment += (totalFees * (automatedMarketMakerPairs[recipient] ? sellDevFee : buyDevFee)) / feePercent; super._transfer(sender, address(this), totalFees); amount -= totalFees; } } super._transfer(sender, recipient, amount); sellTotalFees = previousFee; } function swapTokensForEth(uint256 amount) private { address[] memory paths = new address[](2); paths[0] = address(this); paths[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), amount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, paths, address(this), block.timestamp ); } function swapBack() private { uint256 totalTokensToSwap = tokensForDevelopment + tokensForMarketing; bool success; uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance == 0 || totalTokensToSwap == 0) { return; } if (contractTokenBalance > swapTokensAtAmount * 20) { contractTokenBalance = swapTokensAtAmount * 20; } swapTokensForEth(contractTokenBalance); uint256 initialBalanceETH = address(this).balance; uint256 marketingETH = initialBalanceETH.mul(tokensForMarketing).div(totalTokensToSwap); tokensForDevelopment = 0; tokensForMarketing = 0; (success, ) = address(markWallet).call{value: marketingETH}(""); (success, ) = address(devWallet).call{value: address(this).balance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_developmentWallet","type":"address"},{"internalType":"address","name":"_burnsPartnershipsCEXWallet","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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"developmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnsPartnershipsCEXWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accountAddr","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"acc","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"markWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentWallet","type":"address"}],"name":"updateDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxAmount","type":"uint256"},{"internalType":"uint256","name":"newMaxWalletAmount","type":"uint256"}],"name":"updateMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526005805460ff60a01b191690556016805460ff191690553480156200002857600080fd5b5060405162002ffb38038062002ffb8339810160408190526200004b916200068a565b6040518060400160405280600a8152602001694361706974616c69736d60b01b8152506040518060400160405280600381526020016204341560ec1b81525081600090816200009b919062000778565b506001620000aa828262000778565b505050620000c7620000c16200032560201b60201c565b62000329565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526a115eec47f6cf7e3500000090620000fe9030906000196200037b565b6200010b6032826200085a565b6006556200011b6032826200085a565b600855600560138190556007819055600f60158190556010556200014090806200087d565b600a556010546015546200015591906200087d565b60148190556012556127106200016d82600562000899565b6200017991906200085a565b601155600c80546001600160a01b03199081166001600160a01b0387811691909117909255600d80548216868416179055600f8054909116848316179055600554620001c891166001620004a7565b620001d5306001620004a7565b600c54620001ee906001600160a01b03166001620004a7565b600d5462000207906001600160a01b03166001620004a7565b600f5462000220906001600160a01b03166001620004a7565b6200022f61dead6001620004a7565b6200024e620002466005546001600160a01b031690565b600162000510565b6200025b30600162000510565b6080516200026b90600162000510565b600c5462000284906001600160a01b0316600162000510565b600d546200029d906001600160a01b0316600162000510565b600f54620002b6906001600160a01b0316600162000510565b620002c561dead600162000510565b60006064620002d683603262000899565b620002e291906200085a565b90506000620002f28284620008b3565b600f549091506200030d906001600160a01b03168362000545565b62000319308262000545565b505050505050620008c9565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316620003e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003da565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b620004b16200060a565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6200051a6200060a565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6001600160a01b0382166200059d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003da565b8060026000828254620005b191906200087d565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620006665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003da565b565b505050565b80516001600160a01b03811681146200068557600080fd5b919050565b600080600060608486031215620006a057600080fd5b620006ab846200066d565b9250620006bb602085016200066d565b9150620006cb604085016200066d565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006ff57607f821691505b6020821081036200072057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200066857600081815260208120601f850160051c810160208610156200074f5750805b601f850160051c820191505b8181101562000770578281556001016200075b565b505050505050565b81516001600160401b03811115620007945762000794620006d4565b620007ac81620007a58454620006ea565b8462000726565b602080601f831160018114620007e45760008415620007cb5750858301515b600019600386901b1c1916600185901b17855562000770565b600085815260208120601f198616915b828110156200081557888601518255948401946001909101908401620007f4565b5085821015620008345787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b6000826200087857634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000893576200089362000844565b92915050565b808202811582820484141762000893576200089362000844565b8181038181111562000893576200089362000844565b6080516126e562000916600039600081816102da0152818161098601528181610a1701528181610b8e01528181610c0f01528181612126015281816121df015261221b01526126e56000f3fe60806040526004361061023f5760003560e01c80638ea5220f1161012e578063cb963728116100ab578063e2f456051161006f578063e2f45605146106ce578063f023f573146106e4578063f2fde38b14610704578063f5648a4f14610724578063f8b45b051461073957600080fd5b8063cb96372814610638578063d257b34f14610658578063d85ba06314610678578063dd62ed3e1461068e578063e1d8b9f4146106ae57600080fd5b8063aacebbe3116100f2578063aacebbe3146105a8578063b170830e146105c8578063bbc0c742146105e8578063c024666814610602578063c8c8ebe41461062257600080fd5b80638ea5220f1461051357806395d89b41146105335780639618839914610548578063a457c2d714610568578063a9059cbb1461058857600080fd5b806349bd5a5e116101bc57806370a082311161018057806370a0823114610475578063715018a6146104ab5780637571336a146104c05780638a8c523c146104e05780638da5cb5b146104f557600080fd5b806349bd5a5e146103c55780634fbee193146103e557806366ca9b831461041e5780636a486a8e1461043e5780636ddd17131461045457600080fd5b806323b872dd1161020357806323b872dd1461033357806327c8f83514610353578063313ce56714610369578063395093511461038557806342966c68146103a557600080fd5b806302dbd8f81461024b57806306fdde031461026d578063095ea7b3146102985780631694505e146102c857806318160ddd1461031457600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026b61026636600461228f565b61074f565b005b34801561027957600080fd5b506102826107a2565b60405161028f91906122b1565b60405180910390f35b3480156102a457600080fd5b506102b86102b3366004612314565b610834565b604051901515815260200161028f565b3480156102d457600080fd5b506102fc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028f565b34801561032057600080fd5b506002545b60405190815260200161028f565b34801561033f57600080fd5b506102b861034e366004612340565b61084e565b34801561035f57600080fd5b506102fc61dead81565b34801561037557600080fd5b506040516012815260200161028f565b34801561039157600080fd5b506102b86103a0366004612314565b610872565b3480156103b157600080fd5b5061026b6103c0366004612381565b610894565b3480156103d157600080fd5b50600e546102fc906001600160a01b031681565b3480156103f157600080fd5b506102b861040036600461239a565b6001600160a01b031660009081526017602052604090205460ff1690565b34801561042a57600080fd5b5061026b61043936600461228f565b6108a1565b34801561044a57600080fd5b5061032560145481565b34801561046057600080fd5b506005546102b890600160a01b900460ff1681565b34801561048157600080fd5b5061032561049036600461239a565b6001600160a01b031660009081526003602052604090205490565b3480156104b757600080fd5b5061026b6108e2565b3480156104cc57600080fd5b5061026b6104db3660046123c5565b6108f6565b3480156104ec57600080fd5b5061026b610929565b34801561050157600080fd5b506005546001600160a01b03166102fc565b34801561051f57600080fd5b50600d546102fc906001600160a01b031681565b34801561053f57600080fd5b50610282610d07565b34801561055457600080fd5b5061026b61056336600461228f565b610d16565b34801561057457600080fd5b506102b8610583366004612314565b610e2b565b34801561059457600080fd5b506102b86105a3366004612314565b610ea6565b3480156105b457600080fd5b5061026b6105c336600461239a565b610eb4565b3480156105d457600080fd5b50600c546102fc906001600160a01b031681565b3480156105f457600080fd5b506016546102b89060ff1681565b34801561060e57600080fd5b5061026b61061d3660046123c5565b610f56565b34801561062e57600080fd5b5061032560065481565b34801561064457600080fd5b5061026b61065336600461239a565b610fbd565b34801561066457600080fd5b506102b8610673366004612381565b6110e4565b34801561068457600080fd5b50610325600a5481565b34801561069a57600080fd5b506103256106a93660046123fe565b611224565b3480156106ba57600080fd5b50600f546102fc906001600160a01b031681565b3480156106da57600080fd5b5061032560115481565b3480156106f057600080fd5b5061026b6106ff36600461239a565b61124f565b34801561071057600080fd5b5061026b61071f36600461239a565b6112f1565b34801561073057600080fd5b5061026b611367565b34801561074557600080fd5b5061032560085481565b6107576113bc565b6015829055601081905561076b8183612442565b60148190556012819055601e101561079e5760405162461bcd60e51b815260040161079590612455565b60405180910390fd5b5050565b6060600080546107b190612499565b80601f01602080910402602001604051908101604052809291908181526020018280546107dd90612499565b801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b5050505050905090565b600033610842818585611416565b60019150505b92915050565b60003361085c85828561153a565b6108678585856115ae565b506001949350505050565b6000336108428185856108858383611224565b61088f9190612442565b611416565b61089e3382611c5f565b50565b6108a96113bc565b601382905560078190556108bd8183612442565b600a819055601e101561079e5760405162461bcd60e51b815260040161079590612455565b6108ea6113bc565b6108f46000611d93565b565b6108fe6113bc565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6109316113bc565b60165460ff16156109845760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c7265616479206163746976652e0000000000000000006044820152606401610795565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0691906124d3565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9791906124d3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0891906124d3565b600e80546001600160a01b0319166001600160a01b039290921691821790553060009081526003602052604090205490610b43906001611de5565b600e54610b5a906001600160a01b031660016108f6565b600e54610b749030906001600160a01b0316600019611416565b600e5460405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301529091169063095ea7b3906044016020604051808303816000875af1158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c91906124f0565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719473084600080610c546005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cbc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ce1919061250d565b50506016805460ff1916600117905550506005805460ff60a01b1916600160a01b179055565b6060600180546107b190612499565b610d1e6113bc565b6103e8610d2a60025490565b610d3590600561253b565b610d3f9190612552565b821015610d9f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e6e6f7420736574206d617854786e206c6f776572207460448201526768616e20302e352560c01b6064820152608401610795565b6103e8610dab60025490565b610db690600561253b565b610dc09190612552565b811015610e235760405162461bcd60e51b815260206004820152602b60248201527f45524332303a2043616e6e6f7420736574206d617857616c6c6574206c6f776560448201526a72207468616e20302e352560a81b6064820152608401610795565b600855600655565b60003381610e398286611224565b905083811015610e995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610795565b6108678286868403611416565b6000336108428185856115ae565b610ebc6113bc565b6001600160a01b038116610f055760405162461bcd60e51b815260206004820152601060248201526f045524332303a204164647265737320360841b6044820152606401610795565b600c80546001600160a01b038381166001600160a01b03198316811790935560405191169182917fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a35050565b610f5e6113bc565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610fc56113bc565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110309190612574565b90506000811161106e5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610795565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df91906124f0565b505050565b60006110ee6113bc565b620186a06110fb60025490565b61110690600161253b565b6111109190612552565b8210156111855760405162461bcd60e51b815260206004820152603c60248201527f45524332303a205377617020616d6f756e742063616e6e6f74206265206c6f7760448201527f6572207468616e20302e3030312520746f74616c20737570706c792e000000006064820152608401610795565b6103e861119160025490565b61119c90600561253b565b6111a69190612552565b82111561121b5760405162461bcd60e51b815260206004820152603b60248201527f45524332303a205377617020616d6f756e742063616e6e6f742062652068696760448201527f686572207468616e20302e352520746f74616c20737570706c792e00000000006064820152608401610795565b50601155600190565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6112576113bc565b6001600160a01b0381166112a05760405162461bcd60e51b815260206004820152601060248201526f045524332303a204164647265737320360841b6044820152606401610795565b600d80546001600160a01b038381166001600160a01b03198316811790935560405191169182917ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396590600090a35050565b6112f96113bc565b6001600160a01b03811661135e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610795565b61089e81611d93565b61136f6113bc565b604051600090339047908381818185875af1925050503d80600081146113b1576040519150601f19603f3d011682016040523d82523d6000602084013e6113b6565b606091505b50505050565b6005546001600160a01b031633146108f45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610795565b6001600160a01b0383166114785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610795565b6001600160a01b0382166114d95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610795565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006115468484611224565b905060001981146113b657818110156115a15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610795565b6113b68484848403611416565b6001600160a01b0383166115d45760405162461bcd60e51b81526004016107959061258d565b6001600160a01b0382166115fa5760405162461bcd60e51b8152600401610795906125d2565b8060000361160e576110df83836000611e39565b60006116226005546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561165157506005546001600160a01b03848116911614155b801561166557506001600160a01b03831615155b801561167c57506001600160a01b03831661dead14155b80156116925750600554600160a81b900460ff16155b905080156119c35760165460ff1661172f576001600160a01b03841660009081526017602052604090205460ff16806116e357506001600160a01b03831660009081526017602052604090205460ff165b61172f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610795565b6001600160a01b03841660009081526019602052604081205460ff16801561177057506001600160a01b03841660009081526018602052604090205460ff16155b6001600160a01b0385166000908152601960205260408120549192509060ff1680156117b557506001600160a01b03861660009081526018602052604090205460ff16155b905081156118ae576006548411156118355760405162461bcd60e51b815260206004820152603c60248201527f45524332303a20427579207472616e7366657220616d6f756e7420657863656560448201527f647320746865206d61785472616e73616374696f6e416d6f756e742e000000006064820152608401610795565b6008546001600160a01b03861660009081526003602052604090205461185b9086612442565b11156118a95760405162461bcd60e51b815260206004820152601a60248201527f45524332303a204d61782077616c6c65742065786365656465640000000000006044820152606401610795565b6119c0565b801561192c576006548411156118a95760405162461bcd60e51b815260206004820152603d60248201527f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560448201527f65647320746865206d61785472616e73616374696f6e416d6f756e742e0000006064820152608401610795565b6001600160a01b03851660009081526018602052604090205460ff166119c0576008546001600160a01b0386166000908152600360205260409020546119729086612442565b11156119c05760405162461bcd60e51b815260206004820152601a60248201527f45524332303a204d61782077616c6c65742065786365656465640000000000006044820152606401610795565b50505b30600090815260036020526040902054601154811080159081906119f05750600554600160a01b900460ff165b8015611a065750600554600160a81b900460ff16155b8015611a2b57506001600160a01b03861660009081526019602052604090205460ff16155b8015611a5057506001600160a01b03861660009081526017602052604090205460ff16155b8015611a7557506001600160a01b03851660009081526017602052604090205460ff16155b15611aa3576005805460ff60a81b1916600160a81b179055611a95611f6a565b6005805460ff60a81b191690555b600554600090600160a81b900460ff16158015611afc57506001600160a01b03871660009081526017602052604090205460ff161580611afc57506001600160a01b03861660009081526017602052604090205460ff16155b905060008115611c44576001600160a01b03871660009081526019602052604081205460ff16611b55576001600160a01b03891660009081526019602052604090205460ff16611b4d576000611b59565b600a54611b59565b6014545b90508015611c4257611b766064611b7089846120b0565b906120c3565b6001600160a01b038916600090815260196020526040902054909250819060ff16611ba357601354611ba7565b6015545b611bb1908461253b565b611bbb9190612552565b60096000828254611bcc9190612442565b90915550506001600160a01b038816600090815260196020526040902054819060ff16611bfb57600754611bff565b6010545b611c09908461253b565b611c139190612552565b600b6000828254611c249190612442565b90915550611c359050893084611e39565b611c3f8288612615565b96505b505b611c4f888888611e39565b5050601254601455505050505050565b6001600160a01b038216611cbf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610795565b6001600160a01b03821660009081526003602052604090205481811015611d335760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610795565b6001600160a01b03831660008181526003602090815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611e5f5760405162461bcd60e51b81526004016107959061258d565b6001600160a01b038216611e855760405162461bcd60e51b8152600401610795906125d2565b6001600160a01b03831660009081526003602052604090205481811015611efd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610795565b6001600160a01b0380851660008181526003602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f5d9086815260200190565b60405180910390a36113b6565b6000600954600b54611f7c9190612442565b3060009081526003602052604081205491925090801580611f9b575082155b15611fa557505050565b601154611fb390601461253b565b811115611fcb57601154611fc890601461253b565b90505b611fd4816120cf565b60004790506000611ff485611b70600954856120b090919063ffffffff16565b6000600b8190556009819055600c546040519293506001600160a01b031691839181818185875af1925050503d806000811461204c576040519150601f19603f3d011682016040523d82523d6000602084013e612051565b606091505b5050600d546040519195506001600160a01b0316904790600081818185875af1925050503d80600081146120a1576040519150601f19603f3d011682016040523d82523d6000602084013e6120a6565b606091505b5050505050505050565b60006120bc828461253b565b9392505050565b60006120bc8284612552565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061210457612104612628565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a691906124d3565b816001815181106121b9576121b9612628565b60200260200101906001600160a01b031690816001600160a01b031681525050612204307f000000000000000000000000000000000000000000000000000000000000000084611416565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061225990859060009086903090429060040161263e565b600060405180830381600087803b15801561227357600080fd5b505af1158015612287573d6000803e3d6000fd5b505050505050565b600080604083850312156122a257600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156122de578581018301518582016040015282016122c2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461089e57600080fd5b6000806040838503121561232757600080fd5b8235612332816122ff565b946020939093013593505050565b60008060006060848603121561235557600080fd5b8335612360816122ff565b92506020840135612370816122ff565b929592945050506040919091013590565b60006020828403121561239357600080fd5b5035919050565b6000602082840312156123ac57600080fd5b81356120bc816122ff565b801515811461089e57600080fd5b600080604083850312156123d857600080fd5b82356123e3816122ff565b915060208301356123f3816123b7565b809150509250929050565b6000806040838503121561241157600080fd5b823561241c816122ff565b915060208301356123f3816122ff565b634e487b7160e01b600052601160045260246000fd5b808201808211156108485761084861242c565b60208082526024908201527f45524332303a204d757374206b656570206665657320617420333025206f72206040820152636c65737360e01b606082015260800190565b600181811c908216806124ad57607f821691505b6020821081036124cd57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156124e557600080fd5b81516120bc816122ff565b60006020828403121561250257600080fd5b81516120bc816123b7565b60008060006060848603121561252257600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176108485761084861242c565b60008261256f57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561258657600080fd5b5051919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156108485761084861242c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561268e5784516001600160a01b031683529383019391830191600101612669565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208bb81a9838a2724aab509c3bd6ab2c69d5b828cf09bf5a763083110f4a20179264736f6c63430008110033000000000000000000000000a593cf7b21fd9827cbea8cc7f0d1c3a927f614080000000000000000000000001e2a87d60c9b7524d70599c76e472ccb55e0336c00000000000000000000000083512d882cec151973ddf8898fc269ac67325f0b
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80638ea5220f1161012e578063cb963728116100ab578063e2f456051161006f578063e2f45605146106ce578063f023f573146106e4578063f2fde38b14610704578063f5648a4f14610724578063f8b45b051461073957600080fd5b8063cb96372814610638578063d257b34f14610658578063d85ba06314610678578063dd62ed3e1461068e578063e1d8b9f4146106ae57600080fd5b8063aacebbe3116100f2578063aacebbe3146105a8578063b170830e146105c8578063bbc0c742146105e8578063c024666814610602578063c8c8ebe41461062257600080fd5b80638ea5220f1461051357806395d89b41146105335780639618839914610548578063a457c2d714610568578063a9059cbb1461058857600080fd5b806349bd5a5e116101bc57806370a082311161018057806370a0823114610475578063715018a6146104ab5780637571336a146104c05780638a8c523c146104e05780638da5cb5b146104f557600080fd5b806349bd5a5e146103c55780634fbee193146103e557806366ca9b831461041e5780636a486a8e1461043e5780636ddd17131461045457600080fd5b806323b872dd1161020357806323b872dd1461033357806327c8f83514610353578063313ce56714610369578063395093511461038557806342966c68146103a557600080fd5b806302dbd8f81461024b57806306fdde031461026d578063095ea7b3146102985780631694505e146102c857806318160ddd1461031457600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026b61026636600461228f565b61074f565b005b34801561027957600080fd5b506102826107a2565b60405161028f91906122b1565b60405180910390f35b3480156102a457600080fd5b506102b86102b3366004612314565b610834565b604051901515815260200161028f565b3480156102d457600080fd5b506102fc7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161028f565b34801561032057600080fd5b506002545b60405190815260200161028f565b34801561033f57600080fd5b506102b861034e366004612340565b61084e565b34801561035f57600080fd5b506102fc61dead81565b34801561037557600080fd5b506040516012815260200161028f565b34801561039157600080fd5b506102b86103a0366004612314565b610872565b3480156103b157600080fd5b5061026b6103c0366004612381565b610894565b3480156103d157600080fd5b50600e546102fc906001600160a01b031681565b3480156103f157600080fd5b506102b861040036600461239a565b6001600160a01b031660009081526017602052604090205460ff1690565b34801561042a57600080fd5b5061026b61043936600461228f565b6108a1565b34801561044a57600080fd5b5061032560145481565b34801561046057600080fd5b506005546102b890600160a01b900460ff1681565b34801561048157600080fd5b5061032561049036600461239a565b6001600160a01b031660009081526003602052604090205490565b3480156104b757600080fd5b5061026b6108e2565b3480156104cc57600080fd5b5061026b6104db3660046123c5565b6108f6565b3480156104ec57600080fd5b5061026b610929565b34801561050157600080fd5b506005546001600160a01b03166102fc565b34801561051f57600080fd5b50600d546102fc906001600160a01b031681565b34801561053f57600080fd5b50610282610d07565b34801561055457600080fd5b5061026b61056336600461228f565b610d16565b34801561057457600080fd5b506102b8610583366004612314565b610e2b565b34801561059457600080fd5b506102b86105a3366004612314565b610ea6565b3480156105b457600080fd5b5061026b6105c336600461239a565b610eb4565b3480156105d457600080fd5b50600c546102fc906001600160a01b031681565b3480156105f457600080fd5b506016546102b89060ff1681565b34801561060e57600080fd5b5061026b61061d3660046123c5565b610f56565b34801561062e57600080fd5b5061032560065481565b34801561064457600080fd5b5061026b61065336600461239a565b610fbd565b34801561066457600080fd5b506102b8610673366004612381565b6110e4565b34801561068457600080fd5b50610325600a5481565b34801561069a57600080fd5b506103256106a93660046123fe565b611224565b3480156106ba57600080fd5b50600f546102fc906001600160a01b031681565b3480156106da57600080fd5b5061032560115481565b3480156106f057600080fd5b5061026b6106ff36600461239a565b61124f565b34801561071057600080fd5b5061026b61071f36600461239a565b6112f1565b34801561073057600080fd5b5061026b611367565b34801561074557600080fd5b5061032560085481565b6107576113bc565b6015829055601081905561076b8183612442565b60148190556012819055601e101561079e5760405162461bcd60e51b815260040161079590612455565b60405180910390fd5b5050565b6060600080546107b190612499565b80601f01602080910402602001604051908101604052809291908181526020018280546107dd90612499565b801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b5050505050905090565b600033610842818585611416565b60019150505b92915050565b60003361085c85828561153a565b6108678585856115ae565b506001949350505050565b6000336108428185856108858383611224565b61088f9190612442565b611416565b61089e3382611c5f565b50565b6108a96113bc565b601382905560078190556108bd8183612442565b600a819055601e101561079e5760405162461bcd60e51b815260040161079590612455565b6108ea6113bc565b6108f46000611d93565b565b6108fe6113bc565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6109316113bc565b60165460ff16156109845760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c7265616479206163746976652e0000000000000000006044820152606401610795565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0691906124d3565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9791906124d3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0891906124d3565b600e80546001600160a01b0319166001600160a01b039290921691821790553060009081526003602052604090205490610b43906001611de5565b600e54610b5a906001600160a01b031660016108f6565b600e54610b749030906001600160a01b0316600019611416565b600e5460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8116600483015260001960248301529091169063095ea7b3906044016020604051808303816000875af1158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c91906124f0565b507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719473084600080610c546005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cbc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ce1919061250d565b50506016805460ff1916600117905550506005805460ff60a01b1916600160a01b179055565b6060600180546107b190612499565b610d1e6113bc565b6103e8610d2a60025490565b610d3590600561253b565b610d3f9190612552565b821015610d9f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e6e6f7420736574206d617854786e206c6f776572207460448201526768616e20302e352560c01b6064820152608401610795565b6103e8610dab60025490565b610db690600561253b565b610dc09190612552565b811015610e235760405162461bcd60e51b815260206004820152602b60248201527f45524332303a2043616e6e6f7420736574206d617857616c6c6574206c6f776560448201526a72207468616e20302e352560a81b6064820152608401610795565b600855600655565b60003381610e398286611224565b905083811015610e995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610795565b6108678286868403611416565b6000336108428185856115ae565b610ebc6113bc565b6001600160a01b038116610f055760405162461bcd60e51b815260206004820152601060248201526f045524332303a204164647265737320360841b6044820152606401610795565b600c80546001600160a01b038381166001600160a01b03198316811790935560405191169182917fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a35050565b610f5e6113bc565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610fc56113bc565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110309190612574565b90506000811161106e5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b6044820152606401610795565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df91906124f0565b505050565b60006110ee6113bc565b620186a06110fb60025490565b61110690600161253b565b6111109190612552565b8210156111855760405162461bcd60e51b815260206004820152603c60248201527f45524332303a205377617020616d6f756e742063616e6e6f74206265206c6f7760448201527f6572207468616e20302e3030312520746f74616c20737570706c792e000000006064820152608401610795565b6103e861119160025490565b61119c90600561253b565b6111a69190612552565b82111561121b5760405162461bcd60e51b815260206004820152603b60248201527f45524332303a205377617020616d6f756e742063616e6e6f742062652068696760448201527f686572207468616e20302e352520746f74616c20737570706c792e00000000006064820152608401610795565b50601155600190565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6112576113bc565b6001600160a01b0381166112a05760405162461bcd60e51b815260206004820152601060248201526f045524332303a204164647265737320360841b6044820152606401610795565b600d80546001600160a01b038381166001600160a01b03198316811790935560405191169182917ffaf1b77ed79f6e898c44dd8ab36b330c7b2fd39bcaab05ed6362480df870396590600090a35050565b6112f96113bc565b6001600160a01b03811661135e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610795565b61089e81611d93565b61136f6113bc565b604051600090339047908381818185875af1925050503d80600081146113b1576040519150601f19603f3d011682016040523d82523d6000602084013e6113b6565b606091505b50505050565b6005546001600160a01b031633146108f45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610795565b6001600160a01b0383166114785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610795565b6001600160a01b0382166114d95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610795565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006115468484611224565b905060001981146113b657818110156115a15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610795565b6113b68484848403611416565b6001600160a01b0383166115d45760405162461bcd60e51b81526004016107959061258d565b6001600160a01b0382166115fa5760405162461bcd60e51b8152600401610795906125d2565b8060000361160e576110df83836000611e39565b60006116226005546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561165157506005546001600160a01b03848116911614155b801561166557506001600160a01b03831615155b801561167c57506001600160a01b03831661dead14155b80156116925750600554600160a81b900460ff16155b905080156119c35760165460ff1661172f576001600160a01b03841660009081526017602052604090205460ff16806116e357506001600160a01b03831660009081526017602052604090205460ff165b61172f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610795565b6001600160a01b03841660009081526019602052604081205460ff16801561177057506001600160a01b03841660009081526018602052604090205460ff16155b6001600160a01b0385166000908152601960205260408120549192509060ff1680156117b557506001600160a01b03861660009081526018602052604090205460ff16155b905081156118ae576006548411156118355760405162461bcd60e51b815260206004820152603c60248201527f45524332303a20427579207472616e7366657220616d6f756e7420657863656560448201527f647320746865206d61785472616e73616374696f6e416d6f756e742e000000006064820152608401610795565b6008546001600160a01b03861660009081526003602052604090205461185b9086612442565b11156118a95760405162461bcd60e51b815260206004820152601a60248201527f45524332303a204d61782077616c6c65742065786365656465640000000000006044820152606401610795565b6119c0565b801561192c576006548411156118a95760405162461bcd60e51b815260206004820152603d60248201527f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560448201527f65647320746865206d61785472616e73616374696f6e416d6f756e742e0000006064820152608401610795565b6001600160a01b03851660009081526018602052604090205460ff166119c0576008546001600160a01b0386166000908152600360205260409020546119729086612442565b11156119c05760405162461bcd60e51b815260206004820152601a60248201527f45524332303a204d61782077616c6c65742065786365656465640000000000006044820152606401610795565b50505b30600090815260036020526040902054601154811080159081906119f05750600554600160a01b900460ff165b8015611a065750600554600160a81b900460ff16155b8015611a2b57506001600160a01b03861660009081526019602052604090205460ff16155b8015611a5057506001600160a01b03861660009081526017602052604090205460ff16155b8015611a7557506001600160a01b03851660009081526017602052604090205460ff16155b15611aa3576005805460ff60a81b1916600160a81b179055611a95611f6a565b6005805460ff60a81b191690555b600554600090600160a81b900460ff16158015611afc57506001600160a01b03871660009081526017602052604090205460ff161580611afc57506001600160a01b03861660009081526017602052604090205460ff16155b905060008115611c44576001600160a01b03871660009081526019602052604081205460ff16611b55576001600160a01b03891660009081526019602052604090205460ff16611b4d576000611b59565b600a54611b59565b6014545b90508015611c4257611b766064611b7089846120b0565b906120c3565b6001600160a01b038916600090815260196020526040902054909250819060ff16611ba357601354611ba7565b6015545b611bb1908461253b565b611bbb9190612552565b60096000828254611bcc9190612442565b90915550506001600160a01b038816600090815260196020526040902054819060ff16611bfb57600754611bff565b6010545b611c09908461253b565b611c139190612552565b600b6000828254611c249190612442565b90915550611c359050893084611e39565b611c3f8288612615565b96505b505b611c4f888888611e39565b5050601254601455505050505050565b6001600160a01b038216611cbf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610795565b6001600160a01b03821660009081526003602052604090205481811015611d335760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610795565b6001600160a01b03831660008181526003602090815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260196020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611e5f5760405162461bcd60e51b81526004016107959061258d565b6001600160a01b038216611e855760405162461bcd60e51b8152600401610795906125d2565b6001600160a01b03831660009081526003602052604090205481811015611efd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610795565b6001600160a01b0380851660008181526003602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f5d9086815260200190565b60405180910390a36113b6565b6000600954600b54611f7c9190612442565b3060009081526003602052604081205491925090801580611f9b575082155b15611fa557505050565b601154611fb390601461253b565b811115611fcb57601154611fc890601461253b565b90505b611fd4816120cf565b60004790506000611ff485611b70600954856120b090919063ffffffff16565b6000600b8190556009819055600c546040519293506001600160a01b031691839181818185875af1925050503d806000811461204c576040519150601f19603f3d011682016040523d82523d6000602084013e612051565b606091505b5050600d546040519195506001600160a01b0316904790600081818185875af1925050503d80600081146120a1576040519150601f19603f3d011682016040523d82523d6000602084013e6120a6565b606091505b5050505050505050565b60006120bc828461253b565b9392505050565b60006120bc8284612552565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061210457612104612628565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a691906124d3565b816001815181106121b9576121b9612628565b60200260200101906001600160a01b031690816001600160a01b031681525050612204307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611416565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061225990859060009086903090429060040161263e565b600060405180830381600087803b15801561227357600080fd5b505af1158015612287573d6000803e3d6000fd5b505050505050565b600080604083850312156122a257600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156122de578581018301518582016040015282016122c2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461089e57600080fd5b6000806040838503121561232757600080fd5b8235612332816122ff565b946020939093013593505050565b60008060006060848603121561235557600080fd5b8335612360816122ff565b92506020840135612370816122ff565b929592945050506040919091013590565b60006020828403121561239357600080fd5b5035919050565b6000602082840312156123ac57600080fd5b81356120bc816122ff565b801515811461089e57600080fd5b600080604083850312156123d857600080fd5b82356123e3816122ff565b915060208301356123f3816123b7565b809150509250929050565b6000806040838503121561241157600080fd5b823561241c816122ff565b915060208301356123f3816122ff565b634e487b7160e01b600052601160045260246000fd5b808201808211156108485761084861242c565b60208082526024908201527f45524332303a204d757374206b656570206665657320617420333025206f72206040820152636c65737360e01b606082015260800190565b600181811c908216806124ad57607f821691505b6020821081036124cd57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156124e557600080fd5b81516120bc816122ff565b60006020828403121561250257600080fd5b81516120bc816123b7565b60008060006060848603121561252257600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176108485761084861242c565b60008261256f57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561258657600080fd5b5051919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156108485761084861242c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561268e5784516001600160a01b031683529383019391830191600101612669565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208bb81a9838a2724aab509c3bd6ab2c69d5b828cf09bf5a763083110f4a20179264736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a593cf7b21fd9827cbea8cc7f0d1c3a927f614080000000000000000000000001e2a87d60c9b7524d70599c76e472ccb55e0336c00000000000000000000000083512d882cec151973ddf8898fc269ac67325f0b
-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0xA593cf7b21fD9827cBea8Cc7F0d1c3A927F61408
Arg [1] : _developmentWallet (address): 0x1e2A87D60c9b7524d70599C76E472CCB55E0336C
Arg [2] : _burnsPartnershipsCEXWallet (address): 0x83512d882cEc151973dDf8898fc269ac67325F0B
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000a593cf7b21fd9827cbea8cc7f0d1c3a927f61408
Arg [1] : 0000000000000000000000001e2a87d60c9b7524d70599c76e472ccb55e0336c
Arg [2] : 00000000000000000000000083512d882cec151973ddf8898fc269ac67325f0b
Deployed Bytecode Sourcemap
22813:12643:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29112:369;;;;;;;;;;-1:-1:-1;29112:369:0;;;;;:::i;:::-;;:::i;:::-;;4928:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:201;;;;;;;;;;-1:-1:-1;5860:201:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;5860:201:0;1276:187:1;23647:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1659:32:1;;;1641:51;;1629:2;1614:18;23647:51:0;1468:230:1;5249:108:0;;;;;;;;;;-1:-1:-1;5337:12:0;;5249:108;;;1849:25:1;;;1837:2;1822:18;5249:108:0;1703:177:1;6069:266:0;;;;;;;;;;-1:-1:-1;6069:266:0;;;;;:::i;:::-;;:::i;23284:53::-;;;;;;;;;;;;23330:6;23284:53;;5148:93;;;;;;;;;;-1:-1:-1;5148:93:0;;5231:2;2696:36:1;;2684:2;2669:18;5148:93:0;2554:184:1;6343:238:0;;;;;;;;;;-1:-1:-1;6343:238:0;;;;;:::i;:::-;;:::i;26510:83::-;;;;;;;;;;-1:-1:-1;26510:83:0;;;;;:::i;:::-;;:::i;23249:28::-;;;;;;;;;;-1:-1:-1;23249:28:0;;;;-1:-1:-1;;;;;23249:28:0;;;31008:118;;;;;;;;;;-1:-1:-1;31008:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;31094:24:0;31070:4;31094:24;;;:19;:24;;;;;;;;;31008:118;28780:324;;;;;;;;;;-1:-1:-1;28780:324:0;;;;;:::i;:::-;;:::i;23534:28::-;;;;;;;;;;;;;;;;22893:31;;;;;;;;;;-1:-1:-1;22893:31:0;;;;-1:-1:-1;;;22893:31:0;;;;;;5365:127;;;;;;;;;;-1:-1:-1;5365:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5466:18:0;5439:7;5466:18;;;:9;:18;;;;;;;5365:127;1710:103;;;;;;;;;;;;;:::i;30203:154::-;;;;;;;;;;-1:-1:-1;30203:154:0;;;;;:::i;:::-;;:::i;26602:970::-;;;;;;;;;;;;;:::i;1473:87::-;;;;;;;;;;-1:-1:-1;1546:6:0;;-1:-1:-1;;;;;1546:6:0;1473:87;;23218:24;;;;;;;;;;-1:-1:-1;23218:24:0;;;;-1:-1:-1;;;;;23218:24:0;;;5036:104;;;;;;;;;;;;;:::i;29489:522::-;;;;;;;;;;-1:-1:-1;29489:522:0;;;;;:::i;:::-;;:::i;6589:434::-;;;;;;;;;;-1:-1:-1;6589:434:0;;;;;:::i;:::-;;:::i;5500:193::-;;;;;;;;;;-1:-1:-1;5500:193:0;;;;;:::i;:::-;;:::i;28103:327::-;;;;;;;;;;-1:-1:-1;28103:327:0;;;;;:::i;:::-;;:::i;23186:25::-;;;;;;;;;;-1:-1:-1;23186:25:0;;;;-1:-1:-1;;;;;23186:25:0;;;23605:33;;;;;;;;;;-1:-1:-1;23605:33:0;;;;;;;;30019:176;;;;;;;;;;-1:-1:-1;30019:176:0;;;;;:::i;:::-;;:::i;22961:35::-;;;;;;;;;;;;;;;;30554:246;;;;;;;;;;-1:-1:-1;30554:246:0;;;;;:::i;:::-;;:::i;27584:511::-;;;;;;;;;;-1:-1:-1;27584:511:0;;;;;:::i;:::-;;:::i;23107:27::-;;;;;;;;;;;;;;;;5701:151;;;;;;;;;;-1:-1:-1;5701:151:0;;;;;:::i;:::-;;:::i;23344:41::-;;;;;;;;;;-1:-1:-1;23344:41:0;;;;-1:-1:-1;;;;;23344:41:0;;;23427:33;;;;;;;;;;;;;;;;28438:334;;;;;;;;;;-1:-1:-1;28438:334:0;;;;;:::i;:::-;;:::i;1822:238::-;;;;;;;;;;-1:-1:-1;1822:238:0;;;;;:::i;:::-;;:::i;30365:183::-;;;;;;;;;;;;;:::i;23035:24::-;;;;;;;;;;;;;;;;29112:369;1431:13;:11;:13::i;:::-;29239:11:::1;:27:::0;;;29277:10:::1;:28:::0;;;29332:24:::1;29290:15:::0;29253:13;29332:24:::1;:::i;:::-;29316:13;:40:::0;;;29367:11:::1;:27:::0;;;29430:2:::1;-1:-1:-1::0;29413:19:0::1;29405:68;;;;-1:-1:-1::0;;;29405:68:0::1;;;;;;;:::i;:::-;;;;;;;;;29112:369:::0;;:::o;4928:100::-;4982:13;5015:5;5008:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4928:100;:::o;5860:201::-;5943:4;993:10;5999:32;993:10;6015:7;6024:6;5999:8;:32::i;:::-;6049:4;6042:11;;;5860:201;;;;;:::o;6069:266::-;6171:4;993:10;6229:38;6245:4;993:10;6260:6;6229:15;:38::i;:::-;6278:27;6288:4;6294:2;6298:6;6278:9;:27::i;:::-;-1:-1:-1;6323:4:0;;6069:266;-1:-1:-1;;;;6069:266:0:o;6343:238::-;6431:4;993:10;6487:64;993:10;6503:7;6540:10;6512:25;993:10;6503:7;6512:9;:25::i;:::-;:38;;;;:::i;:::-;6487:8;:64::i;26510:83::-;26560:25;26566:10;26578:6;26560:5;:25::i;:::-;26510:83;:::o;28780:324::-;1431:13;:11;:13::i;:::-;28906:10:::1;:26:::0;;;28943:9:::1;:27:::0;;;28996:22:::1;28955:15:::0;28919:13;28996:22:::1;:::i;:::-;28981:12;:37:::0;;;29053:2:::1;-1:-1:-1::0;29037:18:0::1;29029:67;;;;-1:-1:-1::0;;;29029:67:0::1;;;;;;;:::i;1710:103::-:0;1431:13;:11;:13::i;:::-;1775:30:::1;1802:1;1775:18;:30::i;:::-;1710:103::o:0;30203:154::-;1431:13;:11;:13::i;:::-;-1:-1:-1;;;;;30298:44:0;;;::::1;;::::0;;;:31:::1;:44;::::0;;;;:51;;-1:-1:-1;;30298:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30203:154::o;26602:970::-;1431:13;:11;:13::i;:::-;26666::::1;::::0;::::1;;26665:14;26657:50;;;::::0;-1:-1:-1;;;26657:50:0;;5337:2:1;26657:50:0::1;::::0;::::1;5319:21:1::0;5376:2;5356:18;;;5349:30;5415:25;5395:18;;;5388:53;5458:18;;26657:50:0::1;5135:347:1::0;26657:50:0::1;26754:15;-1:-1:-1::0;;;;;26754:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26736:55:0::1;;26814:4;26834:15;-1:-1:-1::0;;;;;26834:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26736:131;::::0;-1:-1:-1;;;;;;26736:131:0::1;::::0;;;;;;-1:-1:-1;;;;;5973:15:1;;;26736:131:0::1;::::0;::::1;5955:34:1::0;6025:15;;6005:18;;;5998:43;5890:18;;26736:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26720:13;:147:::0;;-1:-1:-1;;;;;;26720:147:0::1;-1:-1:-1::0;;;;;26720:147:0;;;::::1;::::0;;::::1;::::0;;26923:4:::1;-1:-1:-1::0;5466:18:0;;;:9;:18;;;;;;;26942:58:::1;::::0;-1:-1:-1;26942:28:0::1;:58::i;:::-;27045:13;::::0;27011:55:::1;::::0;-1:-1:-1;;;;;27045:13:0::1;::::0;27011:25:::1;:55::i;:::-;27119:13;::::0;27087:66:::1;::::0;27104:4:::1;::::0;-1:-1:-1;;;;;27119:13:0::1;-1:-1:-1::0;;27087:8:0::1;:66::i;:::-;27171:13;::::0;27164:111:::1;::::0;-1:-1:-1;;;27164:111:0;;-1:-1:-1;;;;;27216:15:0::1;6244:32:1::0;;27164:111:0::1;::::0;::::1;6226:51:1::0;-1:-1:-1;;6293:18:1;;;6286:34;27171:13:0;;::::1;::::0;27164:29:::1;::::0;6199:18:1;;27164:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27288:15;-1:-1:-1::0;;;;;27288:31:0::1;;27327:21;27372:4;27392:14;27422:1;27438::::0;27454:7:::1;1546:6:::0;;-1:-1:-1;;;;;1546:6:0;;1473:87;27454:7:::1;27288:214;::::0;::::1;::::0;;;-1:-1:-1;;;;;;27288:214:0;;;-1:-1:-1;;;;;6940:15:1;;;27288:214:0::1;::::0;::::1;6922:34:1::0;6972:18;;;6965:34;;;;7015:18;;;7008:34;;;;7058:18;;;7051:34;7122:15;;;7101:19;;;7094:44;27476:15:0::1;7154:19:1::0;;;7147:35;6856:19;;27288:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;27515:13:0::1;:20:::0;;-1:-1:-1;;27515:20:0::1;27531:4;27515:20;::::0;;-1:-1:-1;;27546:11:0::1;:18:::0;;-1:-1:-1;;;;27546:18:0::1;-1:-1:-1::0;;;27546:18:0::1;::::0;;26602:970::o;5036:104::-;5092:13;5125:7;5118:14;;;;;:::i;29489:522::-;1431:13;:11;:13::i;:::-;29690:4:::1;29669:13;5337:12:::0;;;5249:108;29669:13:::1;:17;::::0;29685:1:::1;29669:17;:::i;:::-;29668:26;;;;:::i;:::-;29652:11;:43;;29630:133;;;::::0;-1:-1:-1;;;29630:133:0;;8101:2:1;29630:133:0::1;::::0;::::1;8083:21:1::0;8140:2;8120:18;;;8113:30;8179:34;8159:18;;;8152:62;-1:-1:-1;;;8230:18:1;;;8223:38;8278:19;;29630:133:0::1;7899:404:1::0;29630:133:0::1;29841:4;29820:13;5337:12:::0;;;5249:108;29820:13:::1;:17;::::0;29836:1:::1;29820:17;:::i;:::-;29819:26;;;;:::i;:::-;29796:18;:50;;29774:143;;;::::0;-1:-1:-1;;;29774:143:0;;8510:2:1;29774:143:0::1;::::0;::::1;8492:21:1::0;8549:2;8529:18;;;8522:30;8588:34;8568:18;;;8561:62;-1:-1:-1;;;8639:18:1;;;8632:41;8690:19;;29774:143:0::1;8308:407:1::0;29774:143:0::1;29928:9;:30:::0;29969:20:::1;:34:::0;29489:522::o;6589:434::-;6682:4;993:10;6682:4;6765:25;993:10;6782:7;6765:9;:25::i;:::-;6738:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:0;;8922:2:1;6801:85:0;;;8904:21:1;8961:2;8941:18;;;8934:30;9000:34;8980:18;;;8973:62;-1:-1:-1;;;9051:18:1;;;9044:35;9096:19;;6801:85:0;8720:401:1;6801:85:0;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;5500:193::-;5579:4;993:10;5635:28;993:10;5652:2;5656:6;5635:9;:28::i;28103:327::-;1431:13;:11;:13::i;:::-;-1:-1:-1;;;;;28223:32:0;::::1;28215:61;;;::::0;-1:-1:-1;;;28215:61:0;;9328:2:1;28215:61:0::1;::::0;::::1;9310:21:1::0;9367:2;9347:18;;;9340:30;-1:-1:-1;;;9386:18:1;;;9379:46;9442:18;;28215:61:0::1;9126:340:1::0;28215:61:0::1;28308:10;::::0;;-1:-1:-1;;;;;28329:31:0;;::::1;-1:-1:-1::0;;;;;;28329:31:0;::::1;::::0;::::1;::::0;;;28376:46:::1;::::0;28308:10;::::1;::::0;;;28376:46:::1;::::0;28287:18:::1;::::0;28376:46:::1;28204:226;28103:327:::0;:::o;30019:176::-;1431:13;:11;:13::i;:::-;-1:-1:-1;;;;;30102:24:0;::::1;;::::0;;;:19:::1;:24;::::0;;;;;;;;:37;;-1:-1:-1;;30102:37:0::1;::::0;::::1;;::::0;;::::1;::::0;;;30155:32;;1416:41:1;;;30155:32:0::1;::::0;1389:18:1;30155:32:0::1;;;;;;;30019:176:::0;;:::o;30554:246::-;1431:13;:11;:13::i;:::-;30648:38:::1;::::0;-1:-1:-1;;;30648:38:0;;30680:4:::1;30648:38;::::0;::::1;1641:51:1::0;30626:19:0::1;::::0;-1:-1:-1;;;;;30648:23:0;::::1;::::0;::::1;::::0;1614:18:1;;30648:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30626:60;;30719:1;30705:11;:15;30697:37;;;::::0;-1:-1:-1;;;30697:37:0;;9862:2:1;30697:37:0::1;::::0;::::1;9844:21:1::0;9901:1;9881:18;;;9874:29;-1:-1:-1;;;9919:18:1;;;9912:39;9968:18;;30697:37:0::1;9660:332:1::0;30697:37:0::1;30745:47;::::0;-1:-1:-1;;;30745:47:0;;30768:10:::1;30745:47;::::0;::::1;6226:51:1::0;6293:18;;;6286:34;;;-1:-1:-1;;;;;30745:22:0;::::1;::::0;::::1;::::0;6199:18:1;;30745:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30615:185;30554:246:::0;:::o;27584:511::-;27692:4;1431:13;:11;:13::i;:::-;27771:6:::1;27750:13;5337:12:::0;;;5249:108;27750:13:::1;:17;::::0;27766:1:::1;27750:17;:::i;:::-;27749:28;;;;:::i;:::-;27736:9;:41;;27714:151;;;::::0;-1:-1:-1;;;27714:151:0;;10199:2:1;27714:151:0::1;::::0;::::1;10181:21:1::0;10238:2;10218:18;;;10211:30;10277:34;10257:18;;;10250:62;10348:30;10328:18;;;10321:58;10396:19;;27714:151:0::1;9997:424:1::0;27714:151:0::1;27933:4;27912:13;5337:12:::0;;;5249:108;27912:13:::1;:17;::::0;27928:1:::1;27912:17;:::i;:::-;27911:26;;;;:::i;:::-;27898:9;:39;;27876:148;;;::::0;-1:-1:-1;;;27876:148:0;;10628:2:1;27876:148:0::1;::::0;::::1;10610:21:1::0;10667:2;10647:18;;;10640:30;10706:34;10686:18;;;10679:62;10777:29;10757:18;;;10750:57;10824:19;;27876:148:0::1;10426:423:1::0;27876:148:0::1;-1:-1:-1::0;28035:18:0::1;:30:::0;28083:4:::1;::::0;27584:511::o;5701:151::-;-1:-1:-1;;;;;5817:18:0;;;5790:7;5817:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5701:151::o;28438:334::-;1431:13;:11;:13::i;:::-;-1:-1:-1;;;;;28562:34:0;::::1;28554:63;;;::::0;-1:-1:-1;;;28554:63:0;;9328:2:1;28554:63:0::1;::::0;::::1;9310:21:1::0;9367:2;9347:18;;;9340:30;-1:-1:-1;;;9386:18:1;;;9379:46;9442:18;;28554:63:0::1;9126:340:1::0;28554:63:0::1;28649:9;::::0;;-1:-1:-1;;;;;28669:32:0;;::::1;-1:-1:-1::0;;;;;;28669:32:0;::::1;::::0;::::1;::::0;;;28717:47:::1;::::0;28649:9;::::1;::::0;;;28717:47:::1;::::0;28628:18:::1;::::0;28717:47:::1;28543:229;28438:334:::0;:::o;1822:238::-;1431:13;:11;:13::i;:::-;-1:-1:-1;;;;;1925:22:0;::::1;1903:110;;;::::0;-1:-1:-1;;;1903:110:0;;11056:2:1;1903:110:0::1;::::0;::::1;11038:21:1::0;11095:2;11075:18;;;11068:30;11134:34;11114:18;;;11107:62;-1:-1:-1;;;11185:18:1;;;11178:36;11231:19;;1903:110:0::1;10854:402:1::0;1903:110:0::1;2024:28;2043:8;2024:18;:28::i;30365:183::-:0;1431:13;:11;:13::i;:::-;30458:82:::1;::::0;30421:12:::1;::::0;30466:10:::1;::::0;30490:21:::1;::::0;30421:12;30458:82;30421:12;30458:82;30490:21;30466:10;30458:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;30365:183:0:o;1569:132::-;1546:6;;-1:-1:-1;;;;;1546:6:0;993:10;1633:23;1625:68;;;;-1:-1:-1;;;1625:68:0;;11673:2:1;1625:68:0;;;11655:21:1;;;11692:18;;;11685:30;11751:34;11731:18;;;11724:62;11803:18;;1625:68:0;11471:356:1;8708:344:0;-1:-1:-1;;;;;8824:19:0;;8816:68;;;;-1:-1:-1;;;8816:68:0;;12034:2:1;8816:68:0;;;12016:21:1;12073:2;12053:18;;;12046:30;12112:34;12092:18;;;12085:62;-1:-1:-1;;;12163:18:1;;;12156:34;12207:19;;8816:68:0;11832:400:1;8816:68:0;-1:-1:-1;;;;;8899:21:0;;8891:68;;;;-1:-1:-1;;;8891:68:0;;12439:2:1;8891:68:0;;;12421:21:1;12478:2;12458:18;;;12451:30;12517:34;12497:18;;;12490:62;-1:-1:-1;;;12568:18:1;;;12561:32;12610:19;;8891:68:0;12237:398:1;8891:68:0;-1:-1:-1;;;;;8968:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9016:32;;1849:25:1;;;9016:32:0;;1822:18:1;9016:32:0;;;;;;;8708:344;;;:::o;9169:442::-;9284:24;9311:25;9321:5;9328:7;9311:9;:25::i;:::-;9284:52;;-1:-1:-1;;9347:16:0;:37;9343:265;;9439:6;9419:16;:26;;9397:105;;;;-1:-1:-1;;;9397:105:0;;12842:2:1;9397:105:0;;;12824:21:1;12881:2;12861:18;;;12854:30;12920:31;12900:18;;;12893:59;12969:18;;9397:105:0;12640:353:1;9397:105:0;9538:51;9547:5;9554:7;9582:6;9563:16;:25;9538:8;:51::i;31138:2951::-;-1:-1:-1;;;;;31279:20:0;;31271:70;;;;-1:-1:-1;;;31271:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31360:23:0;;31352:71;;;;-1:-1:-1;;;31352:71:0;;;;;;;:::i;:::-;31440:6;31450:1;31440:11;31436:102;;31468:37;31484:6;31492:9;31503:1;31468:15;:37::i;31436:102::-;31550:14;31578:7;1546:6;;-1:-1:-1;;;;;1546:6:0;;1473:87;31578:7;-1:-1:-1;;;;;31568:17:0;:6;-1:-1:-1;;;;;31568:17:0;;;:41;;;;-1:-1:-1;1546:6:0;;-1:-1:-1;;;;;31589:20:0;;;1546:6;;31589:20;;31568:41;:68;;;;-1:-1:-1;;;;;;31613:23:0;;;;31568:68;:96;;;;-1:-1:-1;;;;;;31640:24:0;;23330:6;31640:24;;31568:96;:109;;;;-1:-1:-1;31669:8:0;;-1:-1:-1;;;31669:8:0;;;;31668:9;31568:109;31550:128;;31693:9;31689:1096;;;31724:13;;;;31719:219;;-1:-1:-1;;;;;31788:27:0;;;;;;:19;:27;;;;;;;;;:61;;-1:-1:-1;;;;;;31819:30:0;;;;;;:19;:30;;;;;;;;31788:61;31758:164;;;;-1:-1:-1;;;31758:164:0;;14010:2:1;31758:164:0;;;13992:21:1;14049:2;14029:18;;;14022:30;14088:31;14068:18;;;14061:59;14137:18;;31758:164:0;13808:353:1;31758:164:0;-1:-1:-1;;;;;31979:33:0;;31966:10;31979:33;;;:25;:33;;;;;;;;:80;;;;-1:-1:-1;;;;;;32017:42:0;;;;;;:31;:42;;;;;;;;32016:43;31979:80;-1:-1:-1;;;;;32088:36:0;;32074:11;32088:36;;;:25;:36;;;;;;31966:93;;-1:-1:-1;32074:11:0;32088:36;;:80;;;;-1:-1:-1;;;;;;32129:39:0;;;;;;:31;:39;;;;;;;;32128:40;32088:80;32074:94;;32201:5;32197:577;;;32245:20;;32235:6;:30;;32227:103;;;;-1:-1:-1;;;32227:103:0;;14368:2:1;32227:103:0;;;14350:21:1;14407:2;14387:18;;;14380:30;14446:34;14426:18;;;14419:62;14517:30;14497:18;;;14490:58;14565:19;;32227:103:0;14166:424:1;32227:103:0;32390:9;;-1:-1:-1;;;;;5466:18:0;;5439:7;5466:18;;;:9;:18;;;;;;32357:29;;:6;:29;:::i;:::-;:42;;32349:81;;;;-1:-1:-1;;;32349:81:0;;14797:2:1;32349:81:0;;;14779:21:1;14836:2;14816:18;;;14809:30;14875:28;14855:18;;;14848:56;14921:18;;32349:81:0;14595:350:1;32349:81:0;32197:577;;;32456:6;32452:322;;;32501:20;;32491:6;:30;;32483:104;;;;-1:-1:-1;;;32483:104:0;;15152:2:1;32483:104:0;;;15134:21:1;15191:2;15171:18;;;15164:30;15230:34;15210:18;;;15203:62;15301:31;15281:18;;;15274:59;15350:19;;32483:104:0;14950:425:1;32452:322:0;-1:-1:-1;;;;;32614:42:0;;;;;;:31;:42;;;;;;;;32609:165;;32718:9;;-1:-1:-1;;;;;5466:18:0;;5439:7;5466:18;;;:9;:18;;;;;;32685:29;;:6;:29;:::i;:::-;:42;;32677:81;;;;-1:-1:-1;;;32677:81:0;;14797:2:1;32677:81:0;;;14779:21:1;14836:2;14816:18;;;14809:30;14875:28;14855:18;;;14848:56;14921:18;;32677:81:0;14595:350:1;32677:81:0;31704:1081;;31689:1096;32842:4;32797:24;5466:18;;;:9;:18;;;;;;32900;;32880:38;;;;;;;32935:28;;-1:-1:-1;32952:11:0;;-1:-1:-1;;;32952:11:0;;;;32935:28;:41;;;;-1:-1:-1;32968:8:0;;-1:-1:-1;;;32968:8:0;;;;32967:9;32935:41;:79;;;;-1:-1:-1;;;;;;32981:33:0;;;;;;:25;:33;;;;;;;;32980:34;32935:79;:111;;;;-1:-1:-1;;;;;;33019:27:0;;;;;;:19;:27;;;;;;;;33018:28;32935:111;:146;;;;-1:-1:-1;;;;;;33051:30:0;;;;;;:19;:30;;;;;;;;33050:31;32935:146;32931:250;;;33098:8;:15;;-1:-1:-1;;;;33098:15:0;-1:-1:-1;;;33098:15:0;;;33128:10;:8;:10::i;:::-;33153:8;:16;;-1:-1:-1;;;;33153:16:0;;;32931:250;33210:8;;33193:13;;-1:-1:-1;;;33210:8:0;;;;33209:9;:78;;;;-1:-1:-1;;;;;;33224:27:0;;;;;;:19;:27;;;;;;;;33223:28;;:63;;-1:-1:-1;;;;;;33256:30:0;;;;;;:19;:30;;;;;;;;33255:31;33223:63;33193:94;;33298:17;33336:8;33332:657;;;-1:-1:-1;;;;;33382:36:0;;33361:18;33382:36;;;:25;:36;;;;;;;;:109;;-1:-1:-1;;;;;33438:33:0;;;;;;:25;:33;;;;;;;;:52;;33489:1;33382:109;;33438:52;33474:12;;33382:109;;;33421:13;;33382:109;33361:130;-1:-1:-1;33510:14:0;;33506:472;;33557:31;33584:3;33557:22;:6;33568:10;33557;:22::i;:::-;:26;;:31::i;:::-;-1:-1:-1;;;;;33643:36:0;;;;;;:25;:36;;;;;;33545:43;;-1:-1:-1;33711:10:0;;33643:36;;:63;;33696:10;;33643:63;;;33682:11;;33643:63;33630:77;;:9;:77;:::i;:::-;33629:92;;;;:::i;:::-;33607:18;;:114;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;33778:36:0;;;;;;:25;:36;;;;;;33844:10;;33778:36;;:61;;33830:9;;33778:61;;;33817:10;;33778:61;33765:75;;:9;:75;:::i;:::-;33764:90;;;;:::i;:::-;33740:20;;:114;;;;;;;:::i;:::-;;;;-1:-1:-1;33875:49:0;;-1:-1:-1;33891:6:0;33907:4;33914:9;33875:15;:49::i;:::-;33943:19;33953:9;33943:19;;:::i;:::-;;;33506:472;33346:643;33332:657;34001:42;34017:6;34025:9;34036:6;34001:15;:42::i;:::-;-1:-1:-1;;34070:11:0;;34054:13;:27;-1:-1:-1;;;;;;31138:2951:0:o;8109:587::-;-1:-1:-1;;;;;8193:21:0;;8185:67;;;;-1:-1:-1;;;8185:67:0;;15715:2:1;8185:67:0;;;15697:21:1;15754:2;15734:18;;;15727:30;15793:34;15773:18;;;15766:62;-1:-1:-1;;;15844:18:1;;;15837:31;15885:19;;8185:67:0;15513:397:1;8185:67:0;-1:-1:-1;;;;;8348:18:0;;8323:22;8348:18;;;:9;:18;;;;;;8385:24;;;;8377:71;;;;-1:-1:-1;;;8377:71:0;;16117:2:1;8377:71:0;;;16099:21:1;16156:2;16136:18;;;16129:30;16195:34;16175:18;;;16168:62;-1:-1:-1;;;16246:18:1;;;16239:32;16288:19;;8377:71:0;15915:398:1;8377:71:0;-1:-1:-1;;;;;8484:18:0;;;;;;:9;:18;;;;;;;;8505:23;;;8484:44;;8543:12;:22;;;;;;;8592:37;1849:25:1;;;8484:18:0;;;8592:37;;1822:18:1;8592:37:0;;;;;;;30745:47:::1;30615:185;30554:246:::0;:::o;2069:191::-;2162:6;;;-1:-1:-1;;;;;2179:17:0;;;-1:-1:-1;;;;;;2179:17:0;;;;;;;2212:40;;2162:6;;;2179:17;2162:6;;2212:40;;2143:16;;2212:40;2132:128;2069:191;:::o;30808:192::-;-1:-1:-1;;;;;30893:35:0;;;;;;:25;:35;;;;;;:41;;-1:-1:-1;;30893:41:0;;;;;;;;;;30950:42;;30893:41;;:35;30950:42;;;30808:192;;:::o;7031:633::-;-1:-1:-1;;;;;7128:18:0;;7120:68;;;;-1:-1:-1;;;7120:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7207:16:0;;7199:64;;;;-1:-1:-1;;;7199:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7345:15:0;;7323:19;7345:15;;;:9;:15;;;;;;7379:21;;;;7371:72;;;;-1:-1:-1;;;7371:72:0;;16520:2:1;7371:72:0;;;16502:21:1;16559:2;16539:18;;;16532:30;16598:34;16578:18;;;16571:62;-1:-1:-1;;;16649:18:1;;;16642:36;16695:19;;7371:72:0;16318:402:1;7371:72:0;-1:-1:-1;;;;;7479:15:0;;;;;;;:9;:15;;;;;;7497:20;;;7479:38;;7532:13;;;;;;;;;;:23;;;;;;7582:26;;;;;;7511:6;1849:25:1;;1837:2;1822:18;;1703:177;7582:26:0;;;;;;;;7619:37;30554:246;34570:883;34609:25;34660:18;;34637:20;;:41;;;;:::i;:::-;34763:4;34689:12;5466:18;;;:9;:18;;;;;;34609:69;;-1:-1:-1;34689:12:0;34784:25;;;:51;;-1:-1:-1;34813:22:0;;34784:51;34780:90;;;34852:7;;;34570:883::o;34780:90::-;34909:18;;:23;;34930:2;34909:23;:::i;:::-;34886:20;:46;34882:125;;;34972:18;;:23;;34993:2;34972:23;:::i;:::-;34949:46;;34882:125;35019:38;35036:20;35019:16;:38::i;:::-;35070:25;35098:21;35070:49;;35130:20;35153:64;35199:17;35153:41;35175:18;;35153:17;:21;;:41;;;;:::i;:64::-;35253:1;35230:20;:24;;;35265:18;:22;;;35322:10;;35314:49;;35130:87;;-1:-1:-1;;;;;;35322:10:0;;35130:87;;35314:49;35253:1;35314:49;35130:87;35322:10;35314:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35396:9:0;;35388:57;;35300:63;;-1:-1:-1;;;;;;35396:9:0;;35419:21;;35388:57;;;;35419:21;35396:9;35388:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;34570:883:0:o;13195:98::-;13253:7;13280:5;13284:1;13280;:5;:::i;:::-;13273:12;13195:98;-1:-1:-1;;;13195:98:0:o;13595:::-;13653:7;13680:5;13684:1;13680;:5;:::i;34097:464::-;34183:16;;;34197:1;34183:16;;;;;;;;34158:22;;34183:16;;;;;;;;;;-1:-1:-1;34183:16:0;34158:41;;34229:4;34210:5;34216:1;34210:8;;;;;;;;:::i;:::-;;;;;;:24;-1:-1:-1;;;;;34210:24:0;;;-1:-1:-1;;;;;34210:24:0;;;;;34256:15;-1:-1:-1;;;;;34256:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34245:5;34251:1;34245:8;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;34245:33:0;;;-1:-1:-1;;;;;34245:33:0;;;;;34291:57;34308:4;34323:15;34341:6;34291:8;:57::i;:::-;34361:192;;-1:-1:-1;;;34361:192:0;;-1:-1:-1;;;;;34361:15:0;:66;;;;:192;;34442:6;;34463:1;;34479:5;;34507:4;;34527:15;;34361:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34147:414;34097:464;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1885:456::-;1962:6;1970;1978;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2086:9;2073:23;2105:31;2130:5;2105:31;:::i;:::-;2155:5;-1:-1:-1;2212:2:1;2197:18;;2184:32;2225:33;2184:32;2225:33;:::i;:::-;1885:456;;2277:7;;-1:-1:-1;;;2331:2:1;2316:18;;;;2303:32;;1885:456::o;2743:180::-;2802:6;2855:2;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;-1:-1:-1;2894:23:1;;2743:180;-1:-1:-1;2743:180:1:o;2928:247::-;2987:6;3040:2;3028:9;3019:7;3015:23;3011:32;3008:52;;;3056:1;3053;3046:12;3008:52;3095:9;3082:23;3114:31;3139:5;3114:31;:::i;3180:118::-;3266:5;3259:13;3252:21;3245:5;3242:32;3232:60;;3288:1;3285;3278:12;3303:382;3368:6;3376;3429:2;3417:9;3408:7;3404:23;3400:32;3397:52;;;3445:1;3442;3435:12;3397:52;3484:9;3471:23;3503:31;3528:5;3503:31;:::i;:::-;3553:5;-1:-1:-1;3610:2:1;3595:18;;3582:32;3623:30;3582:32;3623:30;:::i;:::-;3672:7;3662:17;;;3303:382;;;;;:::o;3690:388::-;3758:6;3766;3819:2;3807:9;3798:7;3794:23;3790:32;3787:52;;;3835:1;3832;3825:12;3787:52;3874:9;3861:23;3893:31;3918:5;3893:31;:::i;:::-;3943:5;-1:-1:-1;4000:2:1;3985:18;;3972:32;4013:33;3972:32;4013:33;:::i;4083:127::-;4144:10;4139:3;4135:20;4132:1;4125:31;4175:4;4172:1;4165:15;4199:4;4196:1;4189:15;4215:125;4280:9;;;4301:10;;;4298:36;;;4314:18;;:::i;4345:400::-;4547:2;4529:21;;;4586:2;4566:18;;;4559:30;4625:34;4620:2;4605:18;;4598:62;-1:-1:-1;;;4691:2:1;4676:18;;4669:34;4735:3;4720:19;;4345:400::o;4750:380::-;4829:1;4825:12;;;;4872;;;4893:61;;4947:4;4939:6;4935:17;4925:27;;4893:61;5000:2;4992:6;4989:14;4969:18;4966:38;4963:161;;5046:10;5041:3;5037:20;5034:1;5027:31;5081:4;5078:1;5071:15;5109:4;5106:1;5099:15;4963:161;;4750:380;;;:::o;5487:251::-;5557:6;5610:2;5598:9;5589:7;5585:23;5581:32;5578:52;;;5626:1;5623;5616:12;5578:52;5658:9;5652:16;5677:31;5702:5;5677:31;:::i;6331:245::-;6398:6;6451:2;6439:9;6430:7;6426:23;6422:32;6419:52;;;6467:1;6464;6457:12;6419:52;6499:9;6493:16;6518:28;6540:5;6518:28;:::i;7193:306::-;7281:6;7289;7297;7350:2;7338:9;7329:7;7325:23;7321:32;7318:52;;;7366:1;7363;7356:12;7318:52;7395:9;7389:16;7379:26;;7445:2;7434:9;7430:18;7424:25;7414:35;;7489:2;7478:9;7474:18;7468:25;7458:35;;7193:306;;;;;:::o;7504:168::-;7577:9;;;7608;;7625:15;;;7619:22;;7605:37;7595:71;;7646:18;;:::i;7677:217::-;7717:1;7743;7733:132;;7787:10;7782:3;7778:20;7775:1;7768:31;7822:4;7819:1;7812:15;7850:4;7847:1;7840:15;7733:132;-1:-1:-1;7879:9:1;;7677:217::o;9471:184::-;9541:6;9594:2;9582:9;9573:7;9569:23;9565:32;9562:52;;;9610:1;9607;9600:12;9562:52;-1:-1:-1;9633:16:1;;9471:184;-1:-1:-1;9471:184:1:o;12998:401::-;13200:2;13182:21;;;13239:2;13219:18;;;13212:30;13278:34;13273:2;13258:18;;13251:62;-1:-1:-1;;;13344:2:1;13329:18;;13322:35;13389:3;13374:19;;12998:401::o;13404:399::-;13606:2;13588:21;;;13645:2;13625:18;;;13618:30;13684:34;13679:2;13664:18;;13657:62;-1:-1:-1;;;13750:2:1;13735:18;;13728:33;13793:3;13778:19;;13404:399::o;15380:128::-;15447:9;;;15468:11;;;15465:37;;;15482:18;;:::i;16857:127::-;16918:10;16913:3;16909:20;16906:1;16899:31;16949:4;16946:1;16939:15;16973:4;16970:1;16963:15;16989:980;17251:4;17299:3;17288:9;17284:19;17330:6;17319:9;17312:25;17356:2;17394:6;17389:2;17378:9;17374:18;17367:34;17437:3;17432:2;17421:9;17417:18;17410:31;17461:6;17496;17490:13;17527:6;17519;17512:22;17565:3;17554:9;17550:19;17543:26;;17604:2;17596:6;17592:15;17578:29;;17625:1;17635:195;17649:6;17646:1;17643:13;17635:195;;;17714:13;;-1:-1:-1;;;;;17710:39:1;17698:52;;17805:15;;;;17770:12;;;;17746:1;17664:9;17635:195;;;-1:-1:-1;;;;;;;17886:32:1;;;;17881:2;17866:18;;17859:60;-1:-1:-1;;;17950:3:1;17935:19;17928:35;17847:3;16989:980;-1:-1:-1;;;16989:980:1:o
Swarm Source
ipfs://8bb81a9838a2724aab509c3bd6ab2c69d5b828cf09bf5a763083110f4a201792
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.