ERC-20
Overview
Max Total Supply
1,000,000 $MINGLE
Holders
207
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.14208029 $MINGLEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PayMingleERC20
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-28 */ /** PayMingle is a revolutionary cryptocurrency payment system designed to empower online shops and event organizers with a secure, efficient, and seamless payment solution. With our innovative utility, we offer user-friendly payment gateways, empowering individuals, businesses, and platforms to effortlessly transactions with cryptocurrencies. Web: https://paymingle.io Telegram: https://t.me/PayMingleERC Twitter: https://twitter.com/PayMingleERC */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; abstract contract Project { address public marketingWallet = 0xF6A9fc60eA821cC7DCfEB10637da70c582899343; address public devWallet = 0x4Aec85A284cC2505Db19DF54ec43f76b512d16A2; string constant _name = "PayMingle"; string constant _symbol = "$MINGLE"; uint8 constant _decimals = 9; uint256 _totalSupply = 1 * 10**6 * 10**_decimals; uint256 public _maxTxAmount = (_totalSupply * 20) / 1000; uint256 public _maxWalletToken = (_totalSupply * 20) / 1000; uint256 public buyFee = 5; uint256 public buyTotalFee = buyFee; uint256 public swapLpFee = 1; uint256 public swapMarketing = 4; uint256 public swapTreasuryFee = 1; uint256 public swapTotalFee = swapMarketing + swapLpFee + swapTreasuryFee; uint256 public transFee = 0; uint256 public feeDenominator = 100; } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { //function _msgSender() internal view virtual returns (address payable) { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } /** * PayMingle Contract & Functions */ contract PayMingleERC20 is Project, IERC20, Ownable { using SafeMath for uint256; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isMaxExempt; address public autoLiquidityReceiver; uint256 targetLiquidity = 15; uint256 targetLiquidityDenominator = 100; IUniswapV2Router02 public immutable contractRouter; address public immutable uniswapV2Pair; bool public tradingOpen = false; bool public buyCooldownEnabled = true; uint8 public cooldownTimerInterval = 5; mapping (address => uint) private cooldownTimer; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 30 / 10000; uint256 public swapAmount = _totalSupply * 30 / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Uniswap Router uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); contractRouter = _uniswapV2Router; _allowances[address(this)][address(contractRouter)] = type(uint256).max; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isMaxExempt[msg.sender] = true; isFeeExempt[marketingWallet] = true; isMaxExempt[marketingWallet] = true; isTxLimitExempt[marketingWallet] = true; autoLiquidityReceiver = msg.sender; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() { _maxWalletToken = (_totalSupply * maxWallPercent_base1000 ) / 1000; } function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner() { _maxTxAmount = (_totalSupply * maxTXPercentage_base1000 ) / 1000; } function setTxLimit(uint256 amount) external onlyOwner() { _maxTxAmount = amount; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(sender != owner() && recipient != owner()){ require(tradingOpen,"Trading not open yet"); } bool inSell = (recipient == uniswapV2Pair); bool inTransfer = (recipient != uniswapV2Pair && sender != uniswapV2Pair); if (recipient != address(this) && recipient != address(DEAD) && recipient != uniswapV2Pair && recipient != marketingWallet && recipient != devWallet && recipient != autoLiquidityReceiver ){ uint256 heldTokens = balanceOf(recipient); if(!isMaxExempt[recipient]) { require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much."); } } if (sender == uniswapV2Pair && buyCooldownEnabled ){ require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys"); cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval; } if(!isTxLimitExempt[recipient]) { checkTxLimit(sender, amount); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = amount; if(inTransfer) { if(transFee > 0) { amountReceived = takeTransferFee(sender, amount); } } else { amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount, inSell) : amount; if(shouldSwapBack()){ swapBack(); } } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeTransferFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeToTake = transFee; uint256 feeAmount = amount.mul(feeToTake).mul(100).div(feeDenominator * 100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) { uint256 feeToTake = isSell ? swapTotalFee : buyTotalFee; uint256 feeAmount = amount.mul(feeToTake).mul(100).div(feeDenominator * 100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != uniswapV2Pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external { uint256 amountETH = address(this).balance; payable(marketingWallet).transfer(amountETH * amountPercentage / 100); } function tradingStatus(bool _status) public onlyOwner { tradingOpen = _status; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : swapLpFee; uint256 amountToLiquify = swapAmount.mul(dynamicLiquidityFee).div(swapTotalFee).div(2); uint256 amountToSwap = swapAmount.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = contractRouter.WETH(); uint256 balanceBefore = address(this).balance; contractRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = swapTotalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(swapLpFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(swapMarketing).div(totalETHFee); uint256 amountETHTreasury = amountETH.mul(swapTreasuryFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingWallet).call{value: amountETHMarketing, gas: 30000}(""); (tmpSuccess,) = payable(devWallet).call{value: amountETHTreasury, gas: 30000}(""); // Supress warning msg tmpSuccess = false; if(amountToLiquify > 0){ contractRouter.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setIsFeeExempt(address holder, bool exempt) external onlyOwner() { isFeeExempt[holder] = exempt; } function setIsMaxExempt(address holder, bool exempt) external onlyOwner() { isMaxExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner() { isTxLimitExempt[holder] = exempt; } function setSwapFees(uint256 _newSwapLpFee, uint256 _newSwapMarketingFee, uint256 _newSwapTreasuryFee, uint256 _feeDenominator) external onlyOwner() { swapLpFee = _newSwapLpFee; swapMarketing = _newSwapMarketingFee; swapTreasuryFee = _newSwapTreasuryFee; swapTotalFee = _newSwapLpFee.add(_newSwapMarketingFee).add(_newSwapTreasuryFee); feeDenominator = _feeDenominator; require(swapTotalFee < 90, "Fees cannot be that high"); } function setBuyFees(uint256 buyTax) external onlyOwner() { buyTotalFee = buyTax; } function setTreasuryFeeReceiver(address _newWallet) external onlyOwner() { isFeeExempt[devWallet] = false; isFeeExempt[_newWallet] = true; devWallet = _newWallet; } function setMarketingWallet(address _newWallet) external onlyOwner() { isFeeExempt[marketingWallet] = false; isFeeExempt[_newWallet] = true; isMaxExempt[_newWallet] = true; marketingWallet = _newWallet; } function setFeeReceivers(address _autoLiquidityReceiver, address _newMarketingWallet, address _newdevWallet ) external onlyOwner() { isFeeExempt[devWallet] = false; isFeeExempt[_newdevWallet] = true; isFeeExempt[marketingWallet] = false; isFeeExempt[_newMarketingWallet] = true; isMaxExempt[_newMarketingWallet] = true; autoLiquidityReceiver = _autoLiquidityReceiver; marketingWallet = _newMarketingWallet; devWallet = _newdevWallet; } function setSwapThresholdAmount(uint256 _amount) external onlyOwner() { swapThreshold = _amount; } function setSwapAmount(uint256 _amount) external onlyOwner() { if(_amount > swapThreshold) { swapAmount = swapThreshold; } else { swapAmount = _amount; } } function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner() { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(uniswapV2Pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_newMarketingWallet","type":"address"},{"internalType":"address","name":"_newdevWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsMaxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapLpFee","type":"uint256"},{"internalType":"uint256","name":"_newSwapMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_newSwapTreasuryFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setTreasuryFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","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":"swapLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040525f80546001600160a01b031990811673f6a9fc60ea821cc7dcfeb10637da70c5828993431790915560018054909116734aec85a284cc2505db19df54ec43f76b512d16a2179055620000596009600a62000546565b6200006890620f42406200055d565b6002556103e860025460146200007f91906200055d565b6200008b919062000577565b6003556103e86002546014620000a291906200055d565b620000ae919062000577565b60045560058055600554600655600160075560046008556001600955600954600754600854620000df919062000597565b620000eb919062000597565b600a555f600b556064600c819055600f805461dead6001600160a01b03199182161782556010805490911690556017556018556019805462ffffff191662050100179055601b805460ff19166001179055600254612710906200015090601e6200055d565b6200015c919062000577565b601c55612710600254601e6200017391906200055d565b6200017f919062000577565b601d553480156200018e575f80fd5b50600d80546001600160a01b0319163390811790915560405181905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000226573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024c9190620005ad565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000298573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002be9190620005ad565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000309573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032f9190620005ad565b6001600160a01b0390811660a0528181166080819052305f9081526012602090815260408083209383529281528282205f1990553380835260138083528484208054600160ff199182168117909255601480865287872080548316841790556015808752888820805484168517905587548a1688529386528787208054831684179055865489168752928552868620805482168317905585549097168552908352848420805490961617909455601680546001600160a01b0319168517905560025484835260118252838320819055925192835290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005d5565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200048b57815f19048211156200046f576200046f62000437565b808516156200047d57918102915b93841c939080029062000450565b509250929050565b5f82620004a35750600162000540565b81620004b157505f62000540565b8160018114620004ca5760028114620004d557620004f5565b600191505062000540565b60ff841115620004e957620004e962000437565b50506001821b62000540565b5060208310610133831016604e8410600b84101617156200051a575081810a62000540565b6200052683836200044b565b805f19048211156200053c576200053c62000437565b0290505b92915050565b5f6200055660ff84168362000493565b9392505050565b808202811582820484141762000540576200054062000437565b5f826200059257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000540576200054062000437565b5f60208284031215620005be575f80fd5b81516001600160a01b038116811462000556575f80fd5b60805160a051612322620006365f395f81816105ad01528181610fde015281816113b9015281816113f201528181611459015281816115900152611aad01525f818161069201528181611bcc01528181611c840152611e7401526123225ff3fe60806040526004361061032a575f3560e01c806367ac77b4116101a3578063a9059cbb116100f2578063dd62ed3e11610092578063f2fde38b1161006d578063f2fde38b1461096b578063f53fd5841461098a578063f84ba65d1461099f578063ffb54a99146109be575f80fd5b8063dd62ed3e146108f3578063e53c30b014610937578063e632313c1461094c575f80fd5b8063d51ed1c8116100cd578063d51ed1c814610877578063d7c0103214610896578063dcf7aef3146108b5578063dd395c63146108d4575f80fd5b8063a9059cbb1461081a578063bd9ab53714610839578063ca33e64c14610858575f80fd5b806378109e541161015d578063893d20e811610138578063893d20e81461079b5780638da5cb5b146107af5780638ea5220f146107cc57806395d89b41146107eb575f80fd5b806378109e54146107525780637d1db4a5146107675780638038cbd31461077c575f80fd5b806367ac77b4146106815780636ddd1713146106b457806370a08231146106cd578063715018a614610701578063722b62ad1461071557806375f0a87414610734575f80fd5b806323b872dd1161027957806347062402116102195780635c85974f116101f45780635c85974f146106065780635d098b3814610625578063617fe0ed14610644578063658d4b7f14610662575f80fd5b8063470624021461058757806349bd5a5e1461059c578063571ac8b0146105e7575f80fd5b80632e8fa821116102545780632e8fa82114610527578063313ce5671461053c5780633705b3921461055d57806346e421a214610572575f80fd5b806323b872dd146104d557806329e04b4a146104f45780632b112e4914610513575f80fd5b80631161ae39116102e45780631ad017b9116102bf5780631ad017b9146104635780631da1db5e146104825780631e25dc54146104a1578063201e7991146104b6575f80fd5b80631161ae391461041b578063180b0d7e1461043a57806318160ddd1461044f575f80fd5b8063026f7d15146103355780630445b6671461035d57806306fdde031461037257806309302dc6146103ac578063095ea7b3146103cd5780630d295980146103fc575f80fd5b3661033157005b5f80fd5b348015610340575f80fd5b5061034a60085481565b6040519081526020015b60405180910390f35b348015610368575f80fd5b5061034a601c5481565b34801561037d575f80fd5b506040805180820190915260098152685061794d696e676c6560b81b60208201525b6040516103549190611f37565b3480156103b7575f80fd5b506103cb6103c6366004611f82565b6109d7565b005b3480156103d8575f80fd5b506103ec6103e7366004611fad565b610a2b565b6040519015158152602001610354565b348015610407575f80fd5b506103cb610416366004611feb565b610a97565b348015610426575f80fd5b506103ec610435366004612004565b610ad4565b348015610445575f80fd5b5061034a600c5481565b34801561045a575f80fd5b5060025461034a565b34801561046e575f80fd5b506103cb61047d366004612024565b610ae7565b34801561048d575f80fd5b506103cb61049c366004611f82565b610b60565b3480156104ac575f80fd5b5061034a600b5481565b3480156104c1575f80fd5b506103cb6104d0366004612004565b610bb0565b3480156104e0575f80fd5b506103ec6104ef36600461203f565b610be5565b3480156104ff575f80fd5b506103cb61050e366004611f82565b610ca3565b34801561051e575f80fd5b5061034a610cd2565b348015610532575f80fd5b5061034a601d5481565b348015610547575f80fd5b5060095b60405160ff9091168152602001610354565b348015610568575f80fd5b5061034a60065481565b34801561057d575f80fd5b5061034a60075481565b348015610592575f80fd5b5061034a60055481565b3480156105a7575f80fd5b506105cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610354565b3480156105f2575f80fd5b506103ec610601366004612024565b610d22565b348015610611575f80fd5b506103cb610620366004611f82565b610d2e565b348015610630575f80fd5b506103cb61063f366004612024565b610d5d565b34801561064f575f80fd5b506019546103ec90610100900460ff1681565b34801561066d575f80fd5b506103cb61067c36600461207d565b610de8565b34801561068c575f80fd5b506105cf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106bf575f80fd5b50601b546103ec9060ff1681565b3480156106d8575f80fd5b5061034a6106e7366004612024565b6001600160a01b03165f9081526011602052604090205490565b34801561070c575f80fd5b506103cb610e3c565b348015610720575f80fd5b5060195461054b9062010000900460ff1681565b34801561073f575f80fd5b505f546105cf906001600160a01b031681565b34801561075d575f80fd5b5061034a60045481565b348015610772575f80fd5b5061034a60035481565b348015610787575f80fd5b506103cb6107963660046120b0565b610eaf565b3480156107a6575f80fd5b506105cf610f5b565b3480156107ba575f80fd5b50600d546001600160a01b03166105cf565b3480156107d7575f80fd5b506001546105cf906001600160a01b031681565b3480156107f6575f80fd5b50604080518082019091526007815266244d494e474c4560c81b602082015261039f565b348015610825575f80fd5b506103ec610834366004611fad565b610f6e565b348015610844575f80fd5b506103cb610853366004611f82565b610f7a565b348015610863575f80fd5b506016546105cf906001600160a01b031681565b348015610882575f80fd5b5061034a610891366004611f82565b610fc5565b3480156108a1575f80fd5b506103cb6108b03660046120df565b61102a565b3480156108c0575f80fd5b506103cb6108cf366004611f82565b6110ec565b3480156108df575f80fd5b506103cb6108ee36600461207d565b61111b565b3480156108fe575f80fd5b5061034a61090d366004612127565b6001600160a01b039182165f90815260126020908152604080832093909416825291909152205490565b348015610942575f80fd5b5061034a600a5481565b348015610957575f80fd5b506103cb610966366004611f82565b61116f565b348015610976575f80fd5b506103cb610985366004612024565b6111b5565b348015610995575f80fd5b5061034a60095481565b3480156109aa575f80fd5b506103cb6109b936600461207d565b61129f565b3480156109c9575f80fd5b506019546103ec9060ff1681565b600d546001600160a01b03163314610a0a5760405162461bcd60e51b8152600401610a019061215e565b60405180910390fd5b6103e881600254610a1b91906121a7565b610a2591906121be565b60045550565b335f8181526012602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a859086815260200190565b60405180910390a35060015b92915050565b600d546001600160a01b03163314610ac15760405162461bcd60e51b8152600401610a019061215e565b6019805460ff1916911515919091179055565b5f82610adf83610fc5565b119392505050565b600d546001600160a01b03163314610b115760405162461bcd60e51b8152600401610a019061215e565b600180546001600160a01b039081165f90815260136020526040808220805460ff19908116909155949092168082529190208054909316821790925580546001600160a01b0319169091179055565b5f5447906001600160a01b03166108fc6064610b7c85856121a7565b610b8691906121be565b6040518115909202915f818181858888f19350505050158015610bab573d5f803e3d5ffd5b505050565b600d546001600160a01b03163314610bda5760405162461bcd60e51b8152600401610a019061215e565b601791909155601855565b6001600160a01b0383165f9081526012602090815260408083203384529091528120545f1914610c8e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152601282528381203382529091529190912054610c6a9184906112f3565b6001600160a01b0385165f9081526012602090815260408083203384529091529020555b610c9984848461131e565b90505b9392505050565b600d546001600160a01b03163314610ccd5760405162461bcd60e51b8152600401610a019061215e565b601c55565b6010546001600160a01b03165f90815260116020526040812054610d1d90600f546001600160a01b03165f90815260116020526040902054610d1790600254906117f0565b906117f0565b905090565b5f610a91825f19610a2b565b600d546001600160a01b03163314610d585760405162461bcd60e51b8152600401610a019061215e565b600355565b600d546001600160a01b03163314610d875760405162461bcd60e51b8152600401610a019061215e565b5f80546001600160a01b039081168252601360209081526040808420805460ff1990811690915594909216808452828420805486166001908117909155601590925291832080549094161790925580546001600160a01b0319169091179055565b600d546001600160a01b03163314610e125760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b600d546001600160a01b03163314610e665760405162461bcd60e51b8152600401610a019061215e565b600d546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600d80546001600160a01b0319169055565b600d546001600160a01b03163314610ed95760405162461bcd60e51b8152600401610a019061215e565b600784905560088390556009829055610efc82610ef686866117fb565b906117fb565b600a819055600c829055605a11610f555760405162461bcd60e51b815260206004820152601860248201527f466565732063616e6e6f742062652074686174206869676800000000000000006044820152606401610a01565b50505050565b5f610d1d600d546001600160a01b031690565b5f610c9c33848461131e565b600d546001600160a01b03163314610fa45760405162461bcd60e51b8152600401610a019061215e565b6103e881600254610fb591906121a7565b610fbf91906121be565b60035550565b5f610a91610fd1610cd2565b61102461101d60026110177f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f9081526011602052604090205490565b90611806565b8590611806565b90611811565b600d546001600160a01b031633146110545760405162461bcd60e51b8152600401610a019061215e565b600180546001600160a01b039081165f908152601360209081526040808320805460ff1990811690915595841680845281842080548816871790558354851684528184208054881690559684168084528184208054881687179055601590925282208054909516841790945560168054969092166001600160a01b031996871617909155805485169092179091558054909216179055565b600d546001600160a01b031633146111165760405162461bcd60e51b8152600401610a019061215e565b600655565b600d546001600160a01b031633146111455760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b600d546001600160a01b031633146111995760405162461bcd60e51b8152600401610a019061215e565b601c548111156111ac57601c54601d5550565b601d8190555b50565b600d546001600160a01b031633146111df5760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b0381166112445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a01565b600d546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031633146112c95760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b5f81848411156113165760405162461bcd60e51b8152600401610a019190611f37565b505050900390565b601e545f9060ff161561133d5761133684848461181c565b9050610c9c565b600d546001600160a01b038581169116148015906113695750600d546001600160a01b03848116911614155b156113b75760195460ff166113b75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a01565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116908416145f81158261142757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614155b90506001600160a01b03851630148015906114505750600f546001600160a01b03868116911614155b801561148e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156114a757505f546001600160a01b03868116911614155b80156114c157506001546001600160a01b03868116911614155b80156114db57506016546001600160a01b03868116911614155b1561158e576001600160a01b0385165f9081526011602090815260408083205460159092529091205460ff1661158c5760045461151886836121dd565b111561158c5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610a01565b505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480156115d65750601954610100900460ff165b1561167e576001600160a01b0385165f908152601a6020526040902054421161164f5760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b6064820152608401610a01565b6019546116659062010000900460ff16426121dd565b6001600160a01b0386165f908152601a60205260409020555b6001600160a01b0385165f9081526014602052604090205460ff166116a7576116a786856118ec565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152601190915291909120546116f89186906112f3565b6001600160a01b0387165f9081526011602052604090205583811561173157600b541561172c576117298786611958565b90505b611779565b6001600160a01b0387165f9081526013602052604090205460ff16156117575784611762565b6117628786856119f5565b905061176c611aa1565b1561177957611779611b0b565b6001600160a01b0386165f9081526011602052604090205461179b90826117fb565b6001600160a01b038088165f8181526011602052604090819020939093559151908916905f805160206122cd833981519152906117db9085815260200190565b60405180910390a35060019695505050505050565b5f610c9c82846121f0565b5f610c9c82846121dd565b5f610c9c82846121a7565b5f610c9c82846121be565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260119091529182205461186c9184906112f3565b6001600160a01b038086165f90815260116020526040808220939093559085168152205461189a90836117fb565b6001600160a01b038085165f8181526011602052604090819020939093559151908616905f805160206122cd833981519152906118da9086815260200190565b60405180910390a35060019392505050565b6003548111158061191457506001600160a01b0382165f9081526014602052604090205460ff165b6119545760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a01565b5050565b5f80600b5490505f611981600c54606461197291906121a7565b61102460646110178887611806565b305f9081526011602052604090205490915061199d90826117fb565b305f81815260116020526040908190209290925590516001600160a01b038716905f805160206122cd833981519152906119da9085815260200190565b60405180910390a36119ec84826117f0565b95945050505050565b5f8082611a0457600654611a08565b600a545b90505f611a2c600c546064611a1d91906121a7565b61102460646110178987611806565b305f90815260116020526040902054909150611a4890826117fb565b305f81815260116020526040908190209290925590516001600160a01b038816905f805160206122cd83398151915290611a859085815260200190565b60405180910390a3611a9785826117f0565b9695505050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611ade5750601e5460ff16155b8015611aec5750601b5460ff165b8015610d1d575050601c54305f90815260116020526040902054101590565b601e805460ff191660011790556017546018545f91611b2991610ad4565b611b3557600754611b37565b5f5b90505f611b5a6002611024600a5461102486601d5461180690919063ffffffff16565b90505f611b7282601d546117f090919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611baa57611baa612203565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4a9190612217565b81600181518110611c5d57611c5d612203565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b815247917f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611cc19086905f90879030904290600401612232565b5f604051808303815f87803b158015611cd8575f80fd5b505af1158015611cea573d5f803e3d5ffd5b505050505f611d0282476117f090919063ffffffff16565b90505f611d1c611d13886002611811565b600a54906117f0565b90505f611d3d6002611024846110246007548861180690919063ffffffff16565b90505f611d59836110246008548761180690919063ffffffff16565b90505f611d75846110246009548861180690919063ffffffff16565b5f805460405192935090916001600160a01b039091169061753090859084818181858888f193505050503d805f8114611dc9576040519150601f19603f3d011682016040523d82523d5f602084013e611dce565b606091505b50506001546040519192506001600160a01b0316906175309084905f818181858888f193505050503d805f8114611e20576040519150601f19603f3d011682016040523d82523d5f602084013e611e25565b606091505b505f9250508a159050611f205760165460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990869060c40160606040518083038185885af1158015611ebe573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ee391906122a1565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff19169055505050505050505050565b5f6020808352835180828501525f5b81811015611f6257858101830151858201604001528201611f46565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611f92575f80fd5b5035919050565b6001600160a01b03811681146111b2575f80fd5b5f8060408385031215611fbe575f80fd5b8235611fc981611f99565b946020939093013593505050565b80358015158114611fe6575f80fd5b919050565b5f60208284031215611ffb575f80fd5b610c9c82611fd7565b5f8060408385031215612015575f80fd5b50508035926020909101359150565b5f60208284031215612034575f80fd5b8135610c9c81611f99565b5f805f60608486031215612051575f80fd5b833561205c81611f99565b9250602084013561206c81611f99565b929592945050506040919091013590565b5f806040838503121561208e575f80fd5b823561209981611f99565b91506120a760208401611fd7565b90509250929050565b5f805f80608085870312156120c3575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f606084860312156120f1575f80fd5b83356120fc81611f99565b9250602084013561210c81611f99565b9150604084013561211c81611f99565b809150509250925092565b5f8060408385031215612138575f80fd5b823561214381611f99565b9150602083013561215381611f99565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a9157610a91612193565b5f826121d857634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a9157610a91612193565b81810381811115610a9157610a91612193565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612227575f80fd5b8151610c9c81611f99565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156122805784516001600160a01b03168352938301939183019160010161225b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156122b3575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205906d1fb6a81c90608b1acd4603eab3ab1239b72114bf040881f4e8faeeb493a64736f6c63430008150033
Deployed Bytecode
0x60806040526004361061032a575f3560e01c806367ac77b4116101a3578063a9059cbb116100f2578063dd62ed3e11610092578063f2fde38b1161006d578063f2fde38b1461096b578063f53fd5841461098a578063f84ba65d1461099f578063ffb54a99146109be575f80fd5b8063dd62ed3e146108f3578063e53c30b014610937578063e632313c1461094c575f80fd5b8063d51ed1c8116100cd578063d51ed1c814610877578063d7c0103214610896578063dcf7aef3146108b5578063dd395c63146108d4575f80fd5b8063a9059cbb1461081a578063bd9ab53714610839578063ca33e64c14610858575f80fd5b806378109e541161015d578063893d20e811610138578063893d20e81461079b5780638da5cb5b146107af5780638ea5220f146107cc57806395d89b41146107eb575f80fd5b806378109e54146107525780637d1db4a5146107675780638038cbd31461077c575f80fd5b806367ac77b4146106815780636ddd1713146106b457806370a08231146106cd578063715018a614610701578063722b62ad1461071557806375f0a87414610734575f80fd5b806323b872dd1161027957806347062402116102195780635c85974f116101f45780635c85974f146106065780635d098b3814610625578063617fe0ed14610644578063658d4b7f14610662575f80fd5b8063470624021461058757806349bd5a5e1461059c578063571ac8b0146105e7575f80fd5b80632e8fa821116102545780632e8fa82114610527578063313ce5671461053c5780633705b3921461055d57806346e421a214610572575f80fd5b806323b872dd146104d557806329e04b4a146104f45780632b112e4914610513575f80fd5b80631161ae39116102e45780631ad017b9116102bf5780631ad017b9146104635780631da1db5e146104825780631e25dc54146104a1578063201e7991146104b6575f80fd5b80631161ae391461041b578063180b0d7e1461043a57806318160ddd1461044f575f80fd5b8063026f7d15146103355780630445b6671461035d57806306fdde031461037257806309302dc6146103ac578063095ea7b3146103cd5780630d295980146103fc575f80fd5b3661033157005b5f80fd5b348015610340575f80fd5b5061034a60085481565b6040519081526020015b60405180910390f35b348015610368575f80fd5b5061034a601c5481565b34801561037d575f80fd5b506040805180820190915260098152685061794d696e676c6560b81b60208201525b6040516103549190611f37565b3480156103b7575f80fd5b506103cb6103c6366004611f82565b6109d7565b005b3480156103d8575f80fd5b506103ec6103e7366004611fad565b610a2b565b6040519015158152602001610354565b348015610407575f80fd5b506103cb610416366004611feb565b610a97565b348015610426575f80fd5b506103ec610435366004612004565b610ad4565b348015610445575f80fd5b5061034a600c5481565b34801561045a575f80fd5b5060025461034a565b34801561046e575f80fd5b506103cb61047d366004612024565b610ae7565b34801561048d575f80fd5b506103cb61049c366004611f82565b610b60565b3480156104ac575f80fd5b5061034a600b5481565b3480156104c1575f80fd5b506103cb6104d0366004612004565b610bb0565b3480156104e0575f80fd5b506103ec6104ef36600461203f565b610be5565b3480156104ff575f80fd5b506103cb61050e366004611f82565b610ca3565b34801561051e575f80fd5b5061034a610cd2565b348015610532575f80fd5b5061034a601d5481565b348015610547575f80fd5b5060095b60405160ff9091168152602001610354565b348015610568575f80fd5b5061034a60065481565b34801561057d575f80fd5b5061034a60075481565b348015610592575f80fd5b5061034a60055481565b3480156105a7575f80fd5b506105cf7f000000000000000000000000b532867861193f98d825088dd6bfffd5643e655181565b6040516001600160a01b039091168152602001610354565b3480156105f2575f80fd5b506103ec610601366004612024565b610d22565b348015610611575f80fd5b506103cb610620366004611f82565b610d2e565b348015610630575f80fd5b506103cb61063f366004612024565b610d5d565b34801561064f575f80fd5b506019546103ec90610100900460ff1681565b34801561066d575f80fd5b506103cb61067c36600461207d565b610de8565b34801561068c575f80fd5b506105cf7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156106bf575f80fd5b50601b546103ec9060ff1681565b3480156106d8575f80fd5b5061034a6106e7366004612024565b6001600160a01b03165f9081526011602052604090205490565b34801561070c575f80fd5b506103cb610e3c565b348015610720575f80fd5b5060195461054b9062010000900460ff1681565b34801561073f575f80fd5b505f546105cf906001600160a01b031681565b34801561075d575f80fd5b5061034a60045481565b348015610772575f80fd5b5061034a60035481565b348015610787575f80fd5b506103cb6107963660046120b0565b610eaf565b3480156107a6575f80fd5b506105cf610f5b565b3480156107ba575f80fd5b50600d546001600160a01b03166105cf565b3480156107d7575f80fd5b506001546105cf906001600160a01b031681565b3480156107f6575f80fd5b50604080518082019091526007815266244d494e474c4560c81b602082015261039f565b348015610825575f80fd5b506103ec610834366004611fad565b610f6e565b348015610844575f80fd5b506103cb610853366004611f82565b610f7a565b348015610863575f80fd5b506016546105cf906001600160a01b031681565b348015610882575f80fd5b5061034a610891366004611f82565b610fc5565b3480156108a1575f80fd5b506103cb6108b03660046120df565b61102a565b3480156108c0575f80fd5b506103cb6108cf366004611f82565b6110ec565b3480156108df575f80fd5b506103cb6108ee36600461207d565b61111b565b3480156108fe575f80fd5b5061034a61090d366004612127565b6001600160a01b039182165f90815260126020908152604080832093909416825291909152205490565b348015610942575f80fd5b5061034a600a5481565b348015610957575f80fd5b506103cb610966366004611f82565b61116f565b348015610976575f80fd5b506103cb610985366004612024565b6111b5565b348015610995575f80fd5b5061034a60095481565b3480156109aa575f80fd5b506103cb6109b936600461207d565b61129f565b3480156109c9575f80fd5b506019546103ec9060ff1681565b600d546001600160a01b03163314610a0a5760405162461bcd60e51b8152600401610a019061215e565b60405180910390fd5b6103e881600254610a1b91906121a7565b610a2591906121be565b60045550565b335f8181526012602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a859086815260200190565b60405180910390a35060015b92915050565b600d546001600160a01b03163314610ac15760405162461bcd60e51b8152600401610a019061215e565b6019805460ff1916911515919091179055565b5f82610adf83610fc5565b119392505050565b600d546001600160a01b03163314610b115760405162461bcd60e51b8152600401610a019061215e565b600180546001600160a01b039081165f90815260136020526040808220805460ff19908116909155949092168082529190208054909316821790925580546001600160a01b0319169091179055565b5f5447906001600160a01b03166108fc6064610b7c85856121a7565b610b8691906121be565b6040518115909202915f818181858888f19350505050158015610bab573d5f803e3d5ffd5b505050565b600d546001600160a01b03163314610bda5760405162461bcd60e51b8152600401610a019061215e565b601791909155601855565b6001600160a01b0383165f9081526012602090815260408083203384529091528120545f1914610c8e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152601282528381203382529091529190912054610c6a9184906112f3565b6001600160a01b0385165f9081526012602090815260408083203384529091529020555b610c9984848461131e565b90505b9392505050565b600d546001600160a01b03163314610ccd5760405162461bcd60e51b8152600401610a019061215e565b601c55565b6010546001600160a01b03165f90815260116020526040812054610d1d90600f546001600160a01b03165f90815260116020526040902054610d1790600254906117f0565b906117f0565b905090565b5f610a91825f19610a2b565b600d546001600160a01b03163314610d585760405162461bcd60e51b8152600401610a019061215e565b600355565b600d546001600160a01b03163314610d875760405162461bcd60e51b8152600401610a019061215e565b5f80546001600160a01b039081168252601360209081526040808420805460ff1990811690915594909216808452828420805486166001908117909155601590925291832080549094161790925580546001600160a01b0319169091179055565b600d546001600160a01b03163314610e125760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b600d546001600160a01b03163314610e665760405162461bcd60e51b8152600401610a019061215e565b600d546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600d80546001600160a01b0319169055565b600d546001600160a01b03163314610ed95760405162461bcd60e51b8152600401610a019061215e565b600784905560088390556009829055610efc82610ef686866117fb565b906117fb565b600a819055600c829055605a11610f555760405162461bcd60e51b815260206004820152601860248201527f466565732063616e6e6f742062652074686174206869676800000000000000006044820152606401610a01565b50505050565b5f610d1d600d546001600160a01b031690565b5f610c9c33848461131e565b600d546001600160a01b03163314610fa45760405162461bcd60e51b8152600401610a019061215e565b6103e881600254610fb591906121a7565b610fbf91906121be565b60035550565b5f610a91610fd1610cd2565b61102461101d60026110177f000000000000000000000000b532867861193f98d825088dd6bfffd5643e65516001600160a01b03165f9081526011602052604090205490565b90611806565b8590611806565b90611811565b600d546001600160a01b031633146110545760405162461bcd60e51b8152600401610a019061215e565b600180546001600160a01b039081165f908152601360209081526040808320805460ff1990811690915595841680845281842080548816871790558354851684528184208054881690559684168084528184208054881687179055601590925282208054909516841790945560168054969092166001600160a01b031996871617909155805485169092179091558054909216179055565b600d546001600160a01b031633146111165760405162461bcd60e51b8152600401610a019061215e565b600655565b600d546001600160a01b031633146111455760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b600d546001600160a01b031633146111995760405162461bcd60e51b8152600401610a019061215e565b601c548111156111ac57601c54601d5550565b601d8190555b50565b600d546001600160a01b031633146111df5760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b0381166112445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a01565b600d546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031633146112c95760405162461bcd60e51b8152600401610a019061215e565b6001600160a01b03919091165f908152601460205260409020805460ff1916911515919091179055565b5f81848411156113165760405162461bcd60e51b8152600401610a019190611f37565b505050900390565b601e545f9060ff161561133d5761133684848461181c565b9050610c9c565b600d546001600160a01b038581169116148015906113695750600d546001600160a01b03848116911614155b156113b75760195460ff166113b75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a01565b7f000000000000000000000000b532867861193f98d825088dd6bfffd5643e65516001600160a01b03908116908416145f81158261142757507f000000000000000000000000b532867861193f98d825088dd6bfffd5643e65516001600160a01b0316866001600160a01b031614155b90506001600160a01b03851630148015906114505750600f546001600160a01b03868116911614155b801561148e57507f000000000000000000000000b532867861193f98d825088dd6bfffd5643e65516001600160a01b0316856001600160a01b031614155b80156114a757505f546001600160a01b03868116911614155b80156114c157506001546001600160a01b03868116911614155b80156114db57506016546001600160a01b03868116911614155b1561158e576001600160a01b0385165f9081526011602090815260408083205460159092529091205460ff1661158c5760045461151886836121dd565b111561158c5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610a01565b505b7f000000000000000000000000b532867861193f98d825088dd6bfffd5643e65516001600160a01b0316866001600160a01b03161480156115d65750601954610100900460ff165b1561167e576001600160a01b0385165f908152601a6020526040902054421161164f5760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b6064820152608401610a01565b6019546116659062010000900460ff16426121dd565b6001600160a01b0386165f908152601a60205260409020555b6001600160a01b0385165f9081526014602052604090205460ff166116a7576116a786856118ec565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152601190915291909120546116f89186906112f3565b6001600160a01b0387165f9081526011602052604090205583811561173157600b541561172c576117298786611958565b90505b611779565b6001600160a01b0387165f9081526013602052604090205460ff16156117575784611762565b6117628786856119f5565b905061176c611aa1565b1561177957611779611b0b565b6001600160a01b0386165f9081526011602052604090205461179b90826117fb565b6001600160a01b038088165f8181526011602052604090819020939093559151908916905f805160206122cd833981519152906117db9085815260200190565b60405180910390a35060019695505050505050565b5f610c9c82846121f0565b5f610c9c82846121dd565b5f610c9c82846121a7565b5f610c9c82846121be565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260119091529182205461186c9184906112f3565b6001600160a01b038086165f90815260116020526040808220939093559085168152205461189a90836117fb565b6001600160a01b038085165f8181526011602052604090819020939093559151908616905f805160206122cd833981519152906118da9086815260200190565b60405180910390a35060019392505050565b6003548111158061191457506001600160a01b0382165f9081526014602052604090205460ff165b6119545760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a01565b5050565b5f80600b5490505f611981600c54606461197291906121a7565b61102460646110178887611806565b305f9081526011602052604090205490915061199d90826117fb565b305f81815260116020526040908190209290925590516001600160a01b038716905f805160206122cd833981519152906119da9085815260200190565b60405180910390a36119ec84826117f0565b95945050505050565b5f8082611a0457600654611a08565b600a545b90505f611a2c600c546064611a1d91906121a7565b61102460646110178987611806565b305f90815260116020526040902054909150611a4890826117fb565b305f81815260116020526040908190209290925590516001600160a01b038816905f805160206122cd83398151915290611a859085815260200190565b60405180910390a3611a9785826117f0565b9695505050505050565b5f336001600160a01b037f000000000000000000000000b532867861193f98d825088dd6bfffd5643e65511614801590611ade5750601e5460ff16155b8015611aec5750601b5460ff165b8015610d1d575050601c54305f90815260116020526040902054101590565b601e805460ff191660011790556017546018545f91611b2991610ad4565b611b3557600754611b37565b5f5b90505f611b5a6002611024600a5461102486601d5461180690919063ffffffff16565b90505f611b7282601d546117f090919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611baa57611baa612203565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4a9190612217565b81600181518110611c5d57611c5d612203565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b815247917f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611cc19086905f90879030904290600401612232565b5f604051808303815f87803b158015611cd8575f80fd5b505af1158015611cea573d5f803e3d5ffd5b505050505f611d0282476117f090919063ffffffff16565b90505f611d1c611d13886002611811565b600a54906117f0565b90505f611d3d6002611024846110246007548861180690919063ffffffff16565b90505f611d59836110246008548761180690919063ffffffff16565b90505f611d75846110246009548861180690919063ffffffff16565b5f805460405192935090916001600160a01b039091169061753090859084818181858888f193505050503d805f8114611dc9576040519150601f19603f3d011682016040523d82523d5f602084013e611dce565b606091505b50506001546040519192506001600160a01b0316906175309084905f818181858888f193505050503d805f8114611e20576040519150601f19603f3d011682016040523d82523d5f602084013e611e25565b606091505b505f9250508a159050611f205760165460405163f305d71960e01b8152306004820152602481018c90525f6044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990869060c40160606040518083038185885af1158015611ebe573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ee391906122a1565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff19169055505050505050505050565b5f6020808352835180828501525f5b81811015611f6257858101830151858201604001528201611f46565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611f92575f80fd5b5035919050565b6001600160a01b03811681146111b2575f80fd5b5f8060408385031215611fbe575f80fd5b8235611fc981611f99565b946020939093013593505050565b80358015158114611fe6575f80fd5b919050565b5f60208284031215611ffb575f80fd5b610c9c82611fd7565b5f8060408385031215612015575f80fd5b50508035926020909101359150565b5f60208284031215612034575f80fd5b8135610c9c81611f99565b5f805f60608486031215612051575f80fd5b833561205c81611f99565b9250602084013561206c81611f99565b929592945050506040919091013590565b5f806040838503121561208e575f80fd5b823561209981611f99565b91506120a760208401611fd7565b90509250929050565b5f805f80608085870312156120c3575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f606084860312156120f1575f80fd5b83356120fc81611f99565b9250602084013561210c81611f99565b9150604084013561211c81611f99565b809150509250925092565b5f8060408385031215612138575f80fd5b823561214381611f99565b9150602083013561215381611f99565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a9157610a91612193565b5f826121d857634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a9157610a91612193565b81810381811115610a9157610a91612193565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612227575f80fd5b8151610c9c81611f99565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156122805784516001600160a01b03168352938301939183019160010161225b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156122b3575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205906d1fb6a81c90608b1acd4603eab3ab1239b72114bf040881f4e8faeeb493a64736f6c63430008150033
Deployed Bytecode Sourcemap
13188:13008:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1198:37;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;1198:37:0;;;;;;;;14120:56;;;;;;;;;;;;;;;;15503:80;;;;;;;;;;-1:-1:-1;15575:5:0;;;;;;;;;;;;-1:-1:-1;;;15575:5:0;;;;15503:80;;;;;;;:::i;16823:177::-;;;;;;;;;;-1:-1:-1;16823:177:0;;;;;:::i;:::-;;:::i;:::-;;15927:216;;;;;;;;;;-1:-1:-1;15927:216:0;;;;;:::i;:::-;;:::i;:::-;;;1555:14:1;;1548:22;1530:41;;1518:2;1503:18;15927:216:0;1390:187:1;21220:94:0;;;;;;;;;;-1:-1:-1;21220:94:0;;;;;:::i;:::-;;:::i;25972:150::-;;;;;;;;;;-1:-1:-1;25972:150:0;;;;;:::i;:::-;;:::i;1419:39::-;;;;;;;;;;;;;;;;15233:88;;;;;;;;;;-1:-1:-1;15306:12:0;;15233:88;;24106:196;;;;;;;;;;-1:-1:-1;24106:196:0;;;;;:::i;:::-;;:::i;21007:203::-;;;;;;;;;;-1:-1:-1;21007:203:0;;;;;:::i;:::-;;:::i;1374:37::-;;;;;;;;;;;;;;;;25446:184;;;;;;;;;;-1:-1:-1;25446:184:0;;;;;:::i;:::-;;:::i;16445:370::-;;;;;;;;;;-1:-1:-1;16445:370:0;;;;;:::i;:::-;;:::i;25095:112::-;;;;;;;;;;-1:-1:-1;25095:112:0;;;;;:::i;:::-;;:::i;25638:142::-;;;;;;;;;;;;;:::i;14183:53::-;;;;;;;;;;;;;;;;15327:80;;;;;;;;;;-1:-1:-1;859:1:0;15327:80;;;3070:4:1;3058:17;;;3040:36;;3028:2;3013:18;15327:80:0;2898:184:1;1103:42:0;;;;;;;;;;;;;;;;1154:37;;;;;;;;;;;;;;;;1059;;;;;;;;;;;;;;;;13851:38;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3251:32:1;;;3233:51;;3221:2;3206:18;13851:38:0;3087:203:1;16151:122:0;;;;;;;;;;-1:-1:-1;16151:122:0;;;;;:::i;:::-;;:::i;17186:97::-;;;;;;;;;;-1:-1:-1;17186:97:0;;;;;:::i;:::-;;:::i;24310:249::-;;;;;;;;;;-1:-1:-1;24310:249:0;;;;;:::i;:::-;;:::i;13938:37::-;;;;;;;;;;-1:-1:-1;13938:37:0;;;;;;;;;;;23111:121;;;;;;;;;;-1:-1:-1;23111:121:0;;;;;:::i;:::-;;:::i;13794:50::-;;;;;;;;;;;;;;;14083:30;;;;;;;;;;-1:-1:-1;14083:30:0;;;;;;;;15675:105;;;;;;;;;;-1:-1:-1;15675:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;15759:18:0;15741:7;15759:18;;;:9;:18;;;;;;;15675:105;4751:148;;;;;;;;;;;;;:::i;13982:38::-;;;;;;;;;;-1:-1:-1;13982:38:0;;;;;;;;;;;588:75;;;;;;;;;;-1:-1:-1;588:75:0;;;;-1:-1:-1;;;;;588:75:0;;;990:59;;;;;;;;;;;;;;;;926:56;;;;;;;;;;;;;;;;23508:486;;;;;;;;;;-1:-1:-1;23508:486:0;;;;;:::i;:::-;;:::i;15589:80::-;;;;;;;;;;;;;:::i;4537:79::-;;;;;;;;;;-1:-1:-1;4602:6:0;;-1:-1:-1;;;;;4602:6:0;4537:79;;670:69;;;;;;;;;;-1:-1:-1;670:69:0;;;;-1:-1:-1;;;;;670:69:0;;;15413:84;;;;;;;;;;-1:-1:-1;15487:7:0;;;;;;;;;;;;-1:-1:-1;;;15487:7:0;;;;15413:84;;16281:156;;;;;;;;;;-1:-1:-1;16281:156:0;;;;;:::i;:::-;;:::i;17006:172::-;;;;;;;;;;-1:-1:-1;17006:172:0;;;;;:::i;:::-;;:::i;13665:36::-;;;;;;;;;;-1:-1:-1;13665:36:0;;;;-1:-1:-1;;;;;13665:36:0;;;25788:176;;;;;;;;;;-1:-1:-1;25788:176:0;;;;;:::i;:::-;;:::i;24567:518::-;;;;;;;;;;-1:-1:-1;24567:518:0;;;;;:::i;:::-;;:::i;24002:96::-;;;;;;;;;;-1:-1:-1;24002:96:0;;;;;:::i;:::-;;:::i;23240:121::-;;;;;;;;;;-1:-1:-1;23240:121:0;;;;;:::i;:::-;;:::i;15786:133::-;;;;;;;;;;-1:-1:-1;15786:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;15888:19:0;;;15870:7;15888:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15786:133;1286:79;;;;;;;;;;;;;;;;25215:221;;;;;;;;;;-1:-1:-1;25215:221:0;;;;;:::i;:::-;;:::i;4907:244::-;;;;;;;;;;-1:-1:-1;4907:244:0;;;;;:::i;:::-;;:::i;1242:37::-;;;;;;;;;;;;;;;;23369:129;;;;;;;;;;-1:-1:-1;23369:129:0;;;;;:::i;:::-;;:::i;13898:31::-;;;;;;;;;;-1:-1:-1;13898:31:0;;;;;;;;16823:177;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;;;;;;;;;16988:4:::1;16960:23;16945:12;;:38;;;;:::i;:::-;16944:48;;;;:::i;:::-;16926:15;:66:::0;-1:-1:-1;16823:177:0:o;15927:216::-;16031:10;16002:4;16019:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16019:32:0;;;;;;;;;;:41;;;16076:37;16002:4;;16019:32;;16076:37;;;;16054:6;160:25:1;;148:2;133:18;;14:177;16076:37:0;;;;;;;;-1:-1:-1;16131:4:0;15927:216;;;;;:::o;21220:94::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;21285:11:::1;:21:::0;;-1:-1:-1;;21285:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21220:94::o;25972:150::-;26052:4;26108:6;26076:29;26096:8;26076:19;:29::i;:::-;:38;;25972:150;-1:-1:-1;;;25972:150:0:o;24106:196::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;24202:9:::1;::::0;;-1:-1:-1;;;;;24202:9:0;;::::1;24215:5;24190:22:::0;;;:11:::1;:22;::::0;;;;;:30;;-1:-1:-1;;24190:30:0;;::::1;::::0;;;24231:23;;;::::1;::::0;;;;;;:30;;;;::::1;::::0;::::1;::::0;;;24272:22;;-1:-1:-1;;;;;;24272:22:0::1;::::0;;::::1;::::0;;24106:196::o;21007:203::-;21081:17;21141:15;21101:21;;-1:-1:-1;;;;;21141:15:0;21133:69;21198:3;21167:28;21179:16;21101:21;21167:28;:::i;:::-;:34;;;;:::i;:::-;21133:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21070:140;21007:203;:::o;25446:184::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;25545:15:::1;:25:::0;;;;25581:26:::1;:41:::0;25446:184::o;16445:370::-;-1:-1:-1;;;;;16565:19:0;;16545:4;16565:19;;;:11;:19;;;;;;;;16585:10;16565:31;;;;;;;;-1:-1:-1;;16565:52:0;16562:186;;16667:69;;;;;;;;;;;-1:-1:-1;;;16667:69:0;;;;;;;;-1:-1:-1;;;;;16667:19:0;;-1:-1:-1;16667:19:0;;;:11;:19;;;;;16687:10;16667:31;;;;;;;;;;:69;;16703:6;;16667:35;:69::i;:::-;-1:-1:-1;;;;;16633:19:0;;;;;;:11;:19;;;;;;;;16653:10;16633:31;;;;;;;:103;16562:186;16767:40;16781:6;16789:9;16800:6;16767:13;:40::i;:::-;16760:47;;16445:370;;;;;;:::o;25095:112::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;25176:13:::1;:23:::0;25095:112::o;25638:142::-;25766:4;;-1:-1:-1;;;;;25766:4:0;25691:7;15759:18;;;:9;:18;;;;;;25718:54;;25745:4;;-1:-1:-1;;;;;25745:4:0;15741:7;15759:18;;;:9;:18;;;;;;25718:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;25711:61;;25638:142;:::o;16151:122::-;16206:4;16230:35;16238:7;-1:-1:-1;;16230:7:0;:35::i;17186:97::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;17254:12:::1;:21:::0;17186:97::o;24310:249::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;24421:5:::1;24402:15:::0;;-1:-1:-1;;;;;24402:15:0;;::::1;24390:28:::0;;:11:::1;:28;::::0;;;;;;;:36;;-1:-1:-1;;24390:36:0;;::::1;::::0;;;24437:23;;;::::1;::::0;;;;;;:30;;;::::1;24402:15:::0;24437:30;;::::1;::::0;;;24480:11:::1;:23:::0;;;;;;:30;;;;::::1;;::::0;;;24523:28;;-1:-1:-1;;;;;;24523:28:0::1;::::0;;::::1;::::0;;24310:249::o;23111:121::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23196:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23196:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23111:121::o;4751:148::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;4842:6:::1;::::0;4821:40:::1;::::0;4858:1:::1;::::0;-1:-1:-1;;;;;4842:6:0::1;::::0;4821:40:::1;::::0;4858:1;;4821:40:::1;4872:6;:19:::0;;-1:-1:-1;;;;;;4872:19:0::1;::::0;;4751:148::o;23508:486::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;23668:9:::1;:25:::0;;;23704:13:::1;:36:::0;;;23751:15:::1;:37:::0;;;23814:64:::1;23769:19:::0;23814:39:::1;23680:13:::0;23720:20;23814:17:::1;:39::i;:::-;:43:::0;::::1;:64::i;:::-;23799:12;:79:::0;;;23889:14:::1;:32:::0;;;23955:2:::1;-1:-1:-1::0;23932:54:0::1;;;::::0;-1:-1:-1;;;23932:54:0;;6257:2:1;23932:54:0::1;::::0;::::1;6239:21:1::0;6296:2;6276:18;;;6269:30;6335:26;6315:18;;;6308:54;6379:18;;23932:54:0::1;6055:348:1::0;23932:54:0::1;23508:486:::0;;;;:::o;15589:80::-;15641:7;15659;4602:6;;-1:-1:-1;;;;;4602:6:0;;4537:79;16281:156;16361:4;16385:44;16399:10;16411:9;16422:6;16385:13;:44::i;17006:172::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;17166:4:::1;17137:24;17122:12;;:39;;;;:::i;:::-;17121:49;;;;:::i;:::-;17106:12;:64:::0;-1:-1:-1;17006:172:0:o;25788:176::-;25856:7;25883:73;25933:22;:20;:22::i;:::-;25883:45;25896:31;25925:1;25896:24;25906:13;-1:-1:-1;;;;;15759:18:0;15741:7;15759:18;;;:9;:18;;;;;;;15675:105;25896:24;:28;;:31::i;:::-;25883:8;;:12;:45::i;:::-;:49;;:73::i;24567:518::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;24723:9:::1;::::0;;-1:-1:-1;;;;;24723:9:0;;::::1;24736:5;24711:22:::0;;;:11:::1;:22;::::0;;;;;;;:30;;-1:-1:-1;;24711:30:0;;::::1;::::0;;;24752:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;24808:15;;;::::1;24796:28:::0;;;;;:36;;;::::1;::::0;;24843:32;;::::1;::::0;;;;;;:39;;;::::1;::::0;::::1;::::0;;24895:11:::1;:32:::0;;;;;:39;;;;::::1;::::0;::::1;::::0;;;24947:21:::1;:46:::0;;;;;::::1;-1:-1:-1::0;;;;;;24947:46:0;;::::1;;::::0;;;25004:37;;;::::1;::::0;;::::1;::::0;;;25052:25;;;;::::1;;::::0;;24567:518::o;24002:96::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;24070:11:::1;:20:::0;24002:96::o;23240:121::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23325:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23325:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23240:121::o;25215:221::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;25300:13:::1;;25290:7;:23;25287:134;;;25343:13;::::0;25330:10:::1;:26:::0;25215:221;:::o;25287:134::-:1;25389:10;:20:::0;;;25287:134:::1;25215:221:::0;:::o;4907:244::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4996:22:0;::::1;4988:73;;;::::0;-1:-1:-1;;;4988:73:0;;6610:2:1;4988:73:0::1;::::0;::::1;6592:21:1::0;6649:2;6629:18;;;6622:30;6688:34;6668:18;;;6661:62;-1:-1:-1;;;6739:18:1;;;6732:36;6785:19;;4988:73:0::1;6408:402:1::0;4988:73:0::1;5098:6;::::0;5077:38:::1;::::0;-1:-1:-1;;;;;5077:38:0;;::::1;::::0;5098:6:::1;::::0;5077:38:::1;::::0;5098:6:::1;::::0;5077:38:::1;5126:6;:17:::0;;-1:-1:-1;;;;;;5126:17:0::1;-1:-1:-1::0;;;;;5126:17:0;;;::::1;::::0;;;::::1;::::0;;4907:244::o;23369:129::-;4664:6;;-1:-1:-1;;;;;4664:6:0;3904:10;4664:22;4656:67;;;;-1:-1:-1;;;4656:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23458:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;23458:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23369:129::o;2048:240::-;2168:7;2229:12;2221:6;;;;2213:29;;;;-1:-1:-1;;;2213:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2264:5:0;;;2048:240::o;17291:1992::-;17403:6;;17383:4;;17403:6;;17400:63;;;17419:41;17434:6;17442:9;17453:6;17419:14;:41::i;:::-;17412:48;;;;17400:63;4602:6;;-1:-1:-1;;;;;17478:17:0;;;4602:6;;17478:17;;;;:41;;-1:-1:-1;4602:6:0;;-1:-1:-1;;;;;17499:20:0;;;4602:6;;17499:20;;17478:41;17475:115;;;17543:11;;;;17535:43;;;;-1:-1:-1;;;17535:43:0;;7017:2:1;17535:43:0;;;6999:21:1;7056:2;7036:18;;;7029:30;-1:-1:-1;;;7075:18:1;;;7068:50;7135:18;;17535:43:0;6815:344:1;17535:43:0;17630:13;-1:-1:-1;;;;;17617:26:0;;;;;;;17602:11;17674:26;;17617;17674:53;;;17714:13;-1:-1:-1;;;;;17704:23:0;:6;-1:-1:-1;;;;;17704:23:0;;;17674:53;17655:73;-1:-1:-1;;;;;;17745:26:0;;17766:4;17745:26;;;;:70;;-1:-1:-1;17810:4:0;;-1:-1:-1;;;;;17789:26:0;;;17810:4;;17789:26;;17745:70;:114;;;;;17846:13;-1:-1:-1;;;;;17833:26:0;:9;-1:-1:-1;;;;;17833:26:0;;;17745:114;:160;;;;-1:-1:-1;17890:15:0;;-1:-1:-1;;;;;17877:28:0;;;17890:15;;17877:28;;17745:160;:200;;;;-1:-1:-1;17936:9:0;;-1:-1:-1;;;;;17923:22:0;;;17936:9;;17923:22;;17745:200;:252;;;;-1:-1:-1;17976:21:0;;-1:-1:-1;;;;;17963:34:0;;;17976:21;;17963:34;;17745:252;17741:526;;;-1:-1:-1;;;;;15759:18:0;;18023;15759;;;:9;:18;;;;;;;;;18083:11;:22;;;;;;;;;18079:177;;18159:15;;18135:19;18148:6;18135:10;:19;:::i;:::-;18134:40;;18126:114;;;;-1:-1:-1;;;18126:114:0;;7496:2:1;18126:114:0;;;7478:21:1;7535:2;7515:18;;;7508:30;7574:34;7554:18;;;7547:62;7645:32;7625:18;;;7618:60;7695:19;;18126:114:0;7294:426:1;18126:114:0;18008:259;17741:526;18293:13;-1:-1:-1;;;;;18283:23:0;:6;-1:-1:-1;;;;;18283:23:0;;:58;;;;-1:-1:-1;18323:18:0;;;;;;;18283:58;18279:273;;;-1:-1:-1;;;;;18376:24:0;;;;;;:13;:24;;;;;;18403:15;-1:-1:-1;18368:91:0;;;;-1:-1:-1;;;18368:91:0;;7927:2:1;18368:91:0;;;7909:21:1;7966:2;7946:18;;;7939:30;8005:34;7985:18;;;7978:62;-1:-1:-1;;;8056:18:1;;;8049:35;8101:19;;18368:91:0;7725:401:1;18368:91:0;18519:21;;18501:39;;18519:21;;;;;18501:15;:39;:::i;:::-;-1:-1:-1;;;;;18474:24:0;;;;;;:13;:24;;;;;:66;18279:273;-1:-1:-1;;;;;18570:26:0;;;;;;:15;:26;;;;;;;;18566:87;;18613:28;18626:6;18634;18613:12;:28::i;:::-;18687:53;;;;;;;;;;;-1:-1:-1;;;18687:53:0;;;;;;;;-1:-1:-1;;;;;18687:17:0;;-1:-1:-1;18687:17:0;;;:9;:17;;;;;;;;:53;;18709:6;;18687:21;:53::i;:::-;-1:-1:-1;;;;;18667:17:0;;;;;;:9;:17;;;;;:73;18778:6;18799:318;;;;18832:8;;:12;18829:100;;18882:31;18898:6;18906;18882:15;:31::i;:::-;18865:48;;18829:100;18799:318;;;-1:-1:-1;;;;;19890:19:0;;19865:4;19890:19;;;:11;:19;;;;;;;;19889:20;18978:64;;19036:6;18978:64;;;19002:31;19010:6;19018;19026;19002:7;:31::i;:::-;18961:81;;19074:16;:14;:16::i;:::-;19071:35;;;19093:10;:8;:10::i;:::-;-1:-1:-1;;;;;19152:20:0;;;;;;:9;:20;;;;;;:40;;19177:14;19152:24;:40::i;:::-;-1:-1:-1;;;;;19129:20:0;;;;;;;:9;:20;;;;;;;:63;;;;19210:43;;;;;;-1:-1:-1;;;;;;;;;;;19210:43:0;;;19238:14;160:25:1;;148:2;133:18;;14:177;19210:43:0;;;;;;;;-1:-1:-1;19271:4:0;;17291:1992;-1:-1:-1;;;;;;17291:1992:0:o;1604:98::-;1662:7;1689:5;1693:1;1689;:5;:::i;1496:98::-;1554:7;1581:5;1585:1;1581;:5;:::i;1714:98::-;1772:7;1799:5;1803:1;1799;:5;:::i;1826:98::-;1884:7;1911:5;1915:1;1911;:5;:::i;19291:330::-;19421:53;;;;;;;;;;;-1:-1:-1;;;19421:53:0;;;;;;;;-1:-1:-1;;;;;19421:17:0;;19384:4;19421:17;;;:9;:17;;;;;;;:53;;19443:6;;19421:21;:53::i;:::-;-1:-1:-1;;;;;19401:17:0;;;;;;;:9;:17;;;;;;:73;;;;19508:20;;;;;;;:32;;19533:6;19508:24;:32::i;:::-;-1:-1:-1;;;;;19485:20:0;;;;;;;:9;:20;;;;;;;:55;;;;19556:35;;;;;;-1:-1:-1;;;;;;;;;;;19556:35:0;;;19584:6;160:25:1;;148:2;133:18;;14:177;19556:35:0;;;;;;;;-1:-1:-1;19609:4:0;19291:330;;;;;:::o;19629:166::-;19726:12;;19716:6;:22;;:49;;;-1:-1:-1;;;;;;19742:23:0;;;;;;:15;:23;;;;;;;;19716:49;19708:79;;;;-1:-1:-1;;;19708:79:0;;8466:2:1;19708:79:0;;;8448:21:1;8505:2;8485:18;;;8478:30;-1:-1:-1;;;8524:18:1;;;8517:47;8581:18;;19708:79:0;8264:341:1;19708:79:0;19629:166;;:::o;19929:406::-;20004:7;20026:17;20046:8;;20026:28;;20065:17;20085:56;20120:14;;20137:3;20120:20;;;;:::i;:::-;20085:30;20111:3;20085:21;:6;20096:9;20085:10;:21::i;:56::-;20207:4;20189:24;;;;:9;:24;;;;;;20065:76;;-1:-1:-1;20189:39:0;;20065:76;20189:28;:39::i;:::-;20180:4;20162:24;;;;:9;:24;;;;;;;:66;;;;20244:42;;-1:-1:-1;;;;;20244:42:0;;;-1:-1:-1;;;;;;;;;;;20244:42:0;;;20276:9;160:25:1;;148:2;133:18;;14:177;20244:42:0;;;;;;;;20306:21;:6;20317:9;20306:10;:21::i;:::-;20299:28;19929:406;-1:-1:-1;;;;;19929:406:0:o;20343:438::-;20423:7;20445:17;20465:6;:35;;20489:11;;20465:35;;;20474:12;;20465:35;20445:55;;20511:17;20531:56;20566:14;;20583:3;20566:20;;;;:::i;:::-;20531:30;20557:3;20531:21;:6;20542:9;20531:10;:21::i;:56::-;20653:4;20635:24;;;;:9;:24;;;;;;20511:76;;-1:-1:-1;20635:39:0;;20511:76;20635:28;:39::i;:::-;20626:4;20608:24;;;;:9;:24;;;;;;;:66;;;;20690:42;;-1:-1:-1;;;;;20690:42:0;;;-1:-1:-1;;;;;;;;;;;20690:42:0;;;20722:9;160:25:1;;148:2;133:18;;14:177;20690:42:0;;;;;;;;20752:21;:6;20763:9;20752:10;:21::i;:::-;20745:28;20343:438;-1:-1:-1;;;;;;20343:438:0:o;20791:206::-;20840:4;20864:10;-1:-1:-1;;;;;20878:13:0;20864:27;;;;;:47;;-1:-1:-1;20905:6:0;;;;20904:7;20864:47;:71;;;;-1:-1:-1;20924:11:0;;;;20864:71;:125;;;;-1:-1:-1;;20976:13:0;;20966:4;20948:24;;;;:9;:24;;;;;;:41;;;20791:206::o;21322:1777::-;14285:6;:13;;-1:-1:-1;;14285:13:0;14294:4;14285:13;;;21417:15:::1;::::0;21434:26:::1;::::0;14285:6;;21401:60:::1;::::0;:15:::1;:60::i;:::-;:76;;21468:9;;21401:76;;;21464:1;21401:76;21371:106;;21488:23;21514:60;21572:1;21514:53;21554:12;;21514:35;21529:19;21514:10;;:14;;:35;;;;:::i;:60::-;21488:86;;21585:20;21608:31;21623:15;21608:10;;:14;;:31;;;;:::i;:::-;21676:16;::::0;;21690:1:::1;21676:16:::0;;;;;::::1;::::0;;21585:54;;-1:-1:-1;21652:21:0::1;::::0;21676:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21676:16:0::1;21652:40;;21721:4;21703;21708:1;21703:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;21703:23:0::1;;;-1:-1:-1::0;;;;;21703:23:0::1;;;::::0;::::1;21747:14;-1:-1:-1::0;;;;;21747:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21737:4;21742:1;21737:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21737:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;21839:196:::1;::::0;-1:-1:-1;;;21839:196:0;;21805:21:::1;::::0;21839:14:::1;:65;::::0;::::1;::::0;:196:::1;::::0;21919:12;;21781:21:::1;::::0;21962:4;;21989::::1;::::0;22009:15:::1;::::0;21839:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22048:17;22068:40;22094:13;22068:21;:25;;:40;;;;:::i;:::-;22048:60:::0;-1:-1:-1;22121:19:0::1;22143:44;22160:26;:19:::0;22184:1:::1;22160:23;:26::i;:::-;22143:12;::::0;;:16:::1;:44::i;:::-;22121:66;;22200:26;22229:48;22275:1;22229:41;22258:11;22229:24;22243:9;;22229;:13;;:24;;;;:::i;:48::-;22200:77;;22288:26;22317:45;22350:11;22317:28;22331:13;;22317:9;:13;;:28;;;;:::i;:45::-;22288:74;;22373:25;22401:47;22436:11;22401:30;22415:15;;22401:9;:13;;:30;;;;:::i;:47::-;22462:15;22490::::0;;22482:72:::1;::::0;22373:75;;-1:-1:-1;22462:15:0;;-1:-1:-1;;;;;22490:15:0;;::::1;::::0;22544:5:::1;::::0;22519:18;;22462:15;22482:72;22462:15;22482:72;22519:18;22490:15;22544:5;22482:72:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22589:9:0::1;::::0;22581:65:::1;::::0;22461:93;;-1:-1:-1;;;;;;22589:9:0::1;::::0;22636:5:::1;::::0;22612:17;;22581:65:::1;::::0;;;22612:17;22589:9;22636:5;22581:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;22704:5:0::1;::::0;-1:-1:-1;;22725:19:0;;;-1:-1:-1;22722:370:0::1;;22942:21;::::0;22760:252:::1;::::0;-1:-1:-1;;;22760:252:0;;22844:4:::1;22760:252;::::0;::::1;10666:34:1::0;10716:18;;;10709:34;;;-1:-1:-1;10759:18:1;;;10752:34;;;10802:18;;;10795:34;-1:-1:-1;;;;;22942:21:0;;::::1;10845:19:1::0;;;10838:44;22982:15:0::1;10898:19:1::0;;;10891:35;22760:14:0::1;:30:::0;;::::1;::::0;::::1;::::0;22798:18;;10600:19:1;;22760:252:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;23032:48:0::1;::::0;;11422:25:1;;;11478:2;11463:18;;11456:34;;;23032:48:0::1;::::0;-1:-1:-1;11395:18:1;23032:48:0::1;;;;;;;22722:370;-1:-1:-1::0;;14303:6:0;:14;;-1:-1:-1;;14303:14:0;;;-1:-1:-1;;;;;;;;;21322:1777:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:180::-;808:6;861:2;849:9;840:7;836:23;832:32;829:52;;;877:1;874;867:12;829:52;-1:-1:-1;900:23:1;;749:180;-1:-1:-1;749:180:1:o;934:131::-;-1:-1:-1;;;;;1009:31:1;;999:42;;989:70;;1055:1;1052;1045:12;1070:315;1138:6;1146;1199:2;1187:9;1178:7;1174:23;1170:32;1167:52;;;1215:1;1212;1205:12;1167:52;1254:9;1241:23;1273:31;1298:5;1273:31;:::i;:::-;1323:5;1375:2;1360:18;;;;1347:32;;-1:-1:-1;;;1070:315:1:o;1582:160::-;1647:20;;1703:13;;1696:21;1686:32;;1676:60;;1732:1;1729;1722:12;1676:60;1582:160;;;:::o;1747:180::-;1803:6;1856:2;1844:9;1835:7;1831:23;1827:32;1824:52;;;1872:1;1869;1862:12;1824:52;1895:26;1911:9;1895:26;:::i;1932:248::-;2000:6;2008;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;-1:-1:-1;;2100:23:1;;;2170:2;2155:18;;;2142:32;;-1:-1:-1;1932:248:1:o;2185:247::-;2244:6;2297:2;2285:9;2276:7;2272:23;2268:32;2265:52;;;2313:1;2310;2303:12;2265:52;2352:9;2339:23;2371:31;2396:5;2371:31;:::i;2437:456::-;2514:6;2522;2530;2583:2;2571:9;2562:7;2558:23;2554:32;2551:52;;;2599:1;2596;2589:12;2551:52;2638:9;2625:23;2657:31;2682:5;2657:31;:::i;:::-;2707:5;-1:-1:-1;2764:2:1;2749:18;;2736:32;2777:33;2736:32;2777:33;:::i;:::-;2437:456;;2829:7;;-1:-1:-1;;;2883:2:1;2868:18;;;;2855:32;;2437:456::o;3295:315::-;3360:6;3368;3421:2;3409:9;3400:7;3396:23;3392:32;3389:52;;;3437:1;3434;3427:12;3389:52;3476:9;3463:23;3495:31;3520:5;3495:31;:::i;:::-;3545:5;-1:-1:-1;3569:35:1;3600:2;3585:18;;3569:35;:::i;:::-;3559:45;;3295:315;;;;;:::o;3850:385::-;3936:6;3944;3952;3960;4013:3;4001:9;3992:7;3988:23;3984:33;3981:53;;;4030:1;4027;4020:12;3981:53;-1:-1:-1;;4053:23:1;;;4123:2;4108:18;;4095:32;;-1:-1:-1;4174:2:1;4159:18;;4146:32;;4225:2;4210:18;4197:32;;-1:-1:-1;3850:385:1;-1:-1:-1;3850:385:1:o;4240:529::-;4317:6;4325;4333;4386:2;4374:9;4365:7;4361:23;4357:32;4354:52;;;4402:1;4399;4392:12;4354:52;4441:9;4428:23;4460:31;4485:5;4460:31;:::i;:::-;4510:5;-1:-1:-1;4567:2:1;4552:18;;4539:32;4580:33;4539:32;4580:33;:::i;:::-;4632:7;-1:-1:-1;4691:2:1;4676:18;;4663:32;4704:33;4663:32;4704:33;:::i;:::-;4756:7;4746:17;;;4240:529;;;;;:::o;4774:388::-;4842:6;4850;4903:2;4891:9;4882:7;4878:23;4874:32;4871:52;;;4919:1;4916;4909:12;4871:52;4958:9;4945:23;4977:31;5002:5;4977:31;:::i;:::-;5027:5;-1:-1:-1;5084:2:1;5069:18;;5056:32;5097:33;5056:32;5097:33;:::i;:::-;5149:7;5139:17;;;4774:388;;;;;:::o;5167:356::-;5369:2;5351:21;;;5388:18;;;5381:30;5447:34;5442:2;5427:18;;5420:62;5514:2;5499:18;;5167:356::o;5528:127::-;5589:10;5584:3;5580:20;5577:1;5570:31;5620:4;5617:1;5610:15;5644:4;5641:1;5634:15;5660:168;5733:9;;;5764;;5781:15;;;5775:22;;5761:37;5751:71;;5802:18;;:::i;5833:217::-;5873:1;5899;5889:132;;5943:10;5938:3;5934:20;5931:1;5924:31;5978:4;5975:1;5968:15;6006:4;6003:1;5996:15;5889:132;-1:-1:-1;6035:9:1;;5833:217::o;7164:125::-;7229:9;;;7250:10;;;7247:36;;;7263:18;;:::i;8131:128::-;8198:9;;;8219:11;;;8216:37;;;8233:18;;:::i;8742:127::-;8803:10;8798:3;8794:20;8791:1;8784:31;8834:4;8831:1;8824:15;8858:4;8855:1;8848:15;8874:251;8944:6;8997:2;8985:9;8976:7;8972:23;8968:32;8965:52;;;9013:1;9010;9003:12;8965:52;9045:9;9039:16;9064:31;9089:5;9064:31;:::i;9130:980::-;9392:4;9440:3;9429:9;9425:19;9471:6;9460:9;9453:25;9497:2;9535:6;9530:2;9519:9;9515:18;9508:34;9578:3;9573:2;9562:9;9558:18;9551:31;9602:6;9637;9631:13;9668:6;9660;9653:22;9706:3;9695:9;9691:19;9684:26;;9745:2;9737:6;9733:15;9719:29;;9766:1;9776:195;9790:6;9787:1;9784:13;9776:195;;;9855:13;;-1:-1:-1;;;;;9851:39:1;9839:52;;9946:15;;;;9911:12;;;;9887:1;9805:9;9776:195;;;-1:-1:-1;;;;;;;10027:32:1;;;;10022:2;10007:18;;10000:60;-1:-1:-1;;;10091:3:1;10076:19;10069:35;9988:3;9130:980;-1:-1:-1;;;9130:980:1:o;10937:306::-;11025:6;11033;11041;11094:2;11082:9;11073:7;11069:23;11065:32;11062:52;;;11110:1;11107;11100:12;11062:52;11139:9;11133:16;11123:26;;11189:2;11178:9;11174:18;11168:25;11158:35;;11233:2;11222:9;11218:18;11212:25;11202:35;;10937:306;;;;;:::o
Swarm Source
ipfs://5906d1fb6a81c90608b1acd4603eab3ab1239b72114bf040881f4e8faeeb493a
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.