More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 130 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 16429321 | 657 days ago | IN | 0 ETH | 0.00110057 | ||||
Approve | 16411152 | 660 days ago | IN | 0 ETH | 0.00036031 | ||||
Approve | 16328402 | 671 days ago | IN | 0 ETH | 0.00145827 | ||||
Approve | 16308996 | 674 days ago | IN | 0 ETH | 0.00083838 | ||||
Approve | 16278536 | 678 days ago | IN | 0 ETH | 0.0011727 | ||||
Approve | 16278110 | 678 days ago | IN | 0 ETH | 0.00139199 | ||||
Approve | 16218264 | 687 days ago | IN | 0 ETH | 0.00057413 | ||||
Approve | 16202065 | 689 days ago | IN | 0 ETH | 0.00083935 | ||||
Approve | 16201812 | 689 days ago | IN | 0 ETH | 0.00071527 | ||||
Approve | 16200906 | 689 days ago | IN | 0 ETH | 0.00072937 | ||||
Approve | 16200267 | 689 days ago | IN | 0 ETH | 0.0008151 | ||||
Transfer | 16199904 | 689 days ago | IN | 0 ETH | 0.00358233 | ||||
Approve | 16198610 | 689 days ago | IN | 0 ETH | 0.00085523 | ||||
Approve | 16198608 | 689 days ago | IN | 0 ETH | 0.00153865 | ||||
Transfer | 16198586 | 689 days ago | IN | 0 ETH | 0.00521503 | ||||
Approve | 16198395 | 689 days ago | IN | 0 ETH | 0.00145065 | ||||
Approve | 16198334 | 689 days ago | IN | 0 ETH | 0.00126965 | ||||
Approve | 16197814 | 690 days ago | IN | 0 ETH | 0.00206753 | ||||
Approve | 16196447 | 690 days ago | IN | 0 ETH | 0.0006943 | ||||
Approve | 16196239 | 690 days ago | IN | 0 ETH | 0.00261256 | ||||
Approve | 16196239 | 690 days ago | IN | 0 ETH | 0.00261256 | ||||
Approve | 16193603 | 690 days ago | IN | 0 ETH | 0.00063448 | ||||
Approve | 16193293 | 690 days ago | IN | 0 ETH | 0.0006185 | ||||
Approve | 16192878 | 690 days ago | IN | 0 ETH | 0.00098271 | ||||
Approve | 16192869 | 690 days ago | IN | 0 ETH | 0.00104356 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16360045 | 667 days ago | 0.00075194 ETH | ||||
16360045 | 667 days ago | 0.00075194 ETH | ||||
16339376 | 670 days ago | 0.00121105 ETH | ||||
16339376 | 670 days ago | 0.00121105 ETH | ||||
16329613 | 671 days ago | 0.0015979 ETH | ||||
16329613 | 671 days ago | 0.0015979 ETH | ||||
16320958 | 672 days ago | 0.00141205 ETH | ||||
16320958 | 672 days ago | 0.00141205 ETH | ||||
16309041 | 674 days ago | 0.00262949 ETH | ||||
16309041 | 674 days ago | 0.00262949 ETH | ||||
16278542 | 678 days ago | 0.00175432 ETH | ||||
16278542 | 678 days ago | 0.00175432 ETH | ||||
16278113 | 678 days ago | 0.00186951 ETH | ||||
16278113 | 678 days ago | 0.00186951 ETH | ||||
16225798 | 686 days ago | 0.00150396 ETH | ||||
16225798 | 686 days ago | 0.00150396 ETH | ||||
16219737 | 686 days ago | 0.00170304 ETH | ||||
16219737 | 686 days ago | 0.00170304 ETH | ||||
16218272 | 687 days ago | 0.00166556 ETH | ||||
16218272 | 687 days ago | 0.00166556 ETH | ||||
16215299 | 687 days ago | 0.00229326 ETH | ||||
16215299 | 687 days ago | 0.00229326 ETH | ||||
16214144 | 687 days ago | 0.00039199 ETH | ||||
16214144 | 687 days ago | 0.00039199 ETH | ||||
16202676 | 689 days ago | 0.00106052 ETH |
Loading...
Loading
Contract Name:
LNYF
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-15 */ /** Telegram: https://t.me/LNYFloki Website: https://www.lunarnewyearfloki.com */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; //hash address of empty contract assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renouncedOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } 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 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 burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract LNYF is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "Lunar New Year Floki"; string private _symbol = "LNYFLOKI"; uint8 private _decimals = 9; address public marketingWallet = 0x9Efbac151f69e484Af25372398810AD696Ab6CF0; address public developerWallet = 0xDd8122d14c32363893C528e06385A63594f9c8D2; address public liquidityReciever; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 _buyLiquidityFee = 0; uint256 _buyMarketingFee = 30; uint256 _buyDeveloperFee = 0; uint256 _sellLiquidityFee = 0; uint256 _sellMarketingFee = 50; uint256 _sellDeveloperFee = 0; uint256 totalBuy; uint256 totalSell; uint256 denominator = 1000; uint256 private _totalSupply = 888_888 * 10**_decimals; uint256 public minimumTokensBeforeSwap = 100 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(20).div(denominator); //2% uint256 public _walletMax = _totalSupply.mul(20).div(denominator); //2% bool public EnableTxLimit = true; bool public checkWalletLimit = true; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); liquidityReciever = msg.sender; isExcludedFromFee[address(this)] = true; isExcludedFromFee[msg.sender] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[developerWallet] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } /*==================================== | Getters | ====================================*/ function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { swapAndLiquify(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); 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 swapAndLiquify() private lockTheSwap { uint256 contractBalance = balanceOf(address(this)); if(contractBalance == 0) return; uint256 totalShares = totalBuy.add(totalSell); uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee); uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2); uint256 tokensForSwap = contractBalance.sub(tokensForLP); uint256 initialBalance = address(this).balance; swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance.sub(initialBalance); uint256 totalBNBFee = totalShares.sub(_liquidityShare.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2); uint256 amountBNBMarketing = amountReceived.mul(_MarketingShare).div(totalBNBFee); uint256 amountBNBDeveloper = amountReceived.sub(amountBNBLiquidity).sub(amountBNBMarketing); if(amountBNBMarketing > 0) transferToAddressETH(marketingWallet, amountBNBMarketing); if(amountBNBDeveloper > 0) transferToAddressETH(developerWallet, amountBNBDeveloper); if(amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } function transferToAddressETH(address recipient, uint256 amount) private { payable(recipient).transfer(amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityReciever, block.timestamp ); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; unchecked { if(isMarketPair[sender]) { feeAmount = amount.mul(totalBuy).div(denominator); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(totalSell).div(denominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } } /*==================================== | Setters | ====================================*/ //To Rescue Stucked Balance function rescueFunds() public onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os,"Transaction Failed!!"); } //To Rescue Stucked Tokens function rescueTokens(IERC20 adr,address recipient,uint amount) public onlyOwner { adr.transfer(recipient,amount); } function enableTxLimit(bool _status) public onlyOwner { EnableTxLimit = _status; } function enableWalletLimit(bool _status) public onlyOwner { checkWalletLimit = _status; } function setBuyFee(uint _newLP , uint _newMarket , uint _newDeveloper) public onlyOwner { _buyLiquidityFee = _newLP; _buyMarketingFee = _newMarket; _buyDeveloperFee = _newDeveloper; totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); } function setSellFee(uint _newLP , uint _newMarket , uint _newDeveloper) public onlyOwner { _sellLiquidityFee = _newLP; _sellMarketingFee = _newMarket; _sellDeveloperFee = _newDeveloper; totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); } function setWallets(address _market,address _developer,address _liquidityRec) public onlyOwner { marketingWallet = _market; developerWallet = _developer; liquidityReciever = _liquidityRec; } function setExcludeFromFee(address _adr,bool _status) public onlyOwner { require(isExcludedFromFee[_adr] != _status,"Not Changed!!"); isExcludedFromFee[_adr] = _status; } function ExcludeWalletLimit(address _adr,bool _status) public onlyOwner { require(isWalletLimitExempt[_adr] != _status,"Not Changed!!"); isWalletLimitExempt[_adr] = _status; } function ExcludeTxLimit(address _adr,bool _status) public onlyOwner { require(isTxLimitExempt[_adr] != _status,"Not Changed!!"); isTxLimitExempt[_adr] = _status; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function setTxLimit(uint256 newLimit) external onlyOwner() { _maxTxAmount = newLimit; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setMarketPair(address _pair, bool _status) public onlyOwner { isMarketPair[_pair] = _status; } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newDeveloper","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newDeveloper","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_market","type":"address"},{"internalType":"address","name":"_developer","type":"address"},{"internalType":"address","name":"_liquidityRec","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052601460c08190527f4c756e6172204e6577205965617220466c6f6b6900000000000000000000000060e090815262000041916001919062000709565b50604080518082019091526008808252674c4e59464c4f4b4960c01b6020909201918252620000739160029162000709565b5060038054749efbac151f69e484af25372398810ad696ab6cf0096001600160a81b0319909116179055600480546001600160a01b03191673dd8122d14c32363893c528e06385a63594f9c8d21790556ddead000000000000000000000000608052600060a0819052600c819055601e600d55600e819055600f81905560326010556011556103e86014556200010c6009600a620008b3565b6200011b90620d903862000972565b601555600354620001319060ff16600a620008b3565b6200013e90606462000972565b601655620001796014546200016560146015546200058c60201b620016cd1790919060201c565b6200062060201b6200174c1790919060201c565b601755620001a06014546200016560146015546200058c60201b620016cd1790919060201c565b6018556019805461010161ffff19909116179055601a805460ff60a81b1916600160a81b179055348015620001d457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026957600080fd5b505afa1580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620007af565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ed57600080fd5b505afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003289190620007af565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200037157600080fd5b505af115801562000386573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ac9190620007af565b601a80546001600160a01b03199081166001600160a01b039384161782556019805462010000600160b01b031916620100008686168102919091179182905530600081815260076020908152604080832094909504881682529283528381206000199055600580543396168617905581815260088352838120805460ff19908116600190811790925586835285832080548216831790556003546101009004891683528583208054821683179055600454891683528583208054821683179055868352600a8552858320805482168317905587548916835285832080548216831790558383528583208054821683179055958252600b845284822080548716821790559181528381208054861683179055945490951684526009815292208054909116909217909155600e54600d54600c546200050c93620004f892906200066a811b6200178e17901c565b6200066a60201b6200178e1790919060201c565b60128190555062000537601154620004f8601054600f546200066a60201b6200178e1790919060201c565b60135560155433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620009e7565b6000826200059d575060006200061a565b6000620005ab838562000972565b905082620005ba858362000849565b14620006175760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200061783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006cd60201b60201c565b6000806200067983856200082e565b905083811015620006175760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200060e565b60008183620006f15760405162461bcd60e51b81526004016200060e9190620007d8565b50600062000700848662000849565b95945050505050565b828054620007179062000994565b90600052602060002090601f0160209004810192826200073b576000855562000786565b82601f106200075657805160ff191683800117855562000786565b8280016001018555821562000786579182015b828111156200078657825182559160200191906001019062000769565b506200079492915062000798565b5090565b5b8082111562000794576000815560010162000799565b600060208284031215620007c1578081fd5b81516001600160a01b038116811462000617578182fd5b6000602080835283518082850152825b818110156200080657858101830151858201604001528201620007e8565b81811115620008185783604083870101525b50601f01601f1916929092016040019392505050565b60008219821115620008445762000844620009d1565b500190565b6000826200086557634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620008ab5781600019048211156200088f576200088f620009d1565b808516156200089d57918102915b93841c93908002906200086f565b509250929050565b60006200061760ff841683600082620008cf575060016200061a565b81620008de575060006200061a565b8160018114620008f75760028114620009025762000922565b60019150506200061a565b60ff841115620009165762000916620009d1565b50506001821b6200061a565b5060208310610133831016604e8410600b841016171562000947575081810a6200061a565b6200095383836200086a565b80600019048211156200096a576200096a620009d1565b029392505050565b60008160001904831182151516156200098f576200098f620009d1565b500290565b600181811c90821680620009a957607f821691505b60208210811415620009cb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c6129b062000a21600039600081816102fb0152610c4a0152600081816104730152610c8501526129b06000f3fe6080604052600436106102b25760003560e01c806370a0823111610175578063a9059cbb116100dc578063cea9d26f11610095578063e6b2603b1161006f578063e6b2603b146108fd578063ee828db314610912578063f2fde38b14610932578063f872858a1461095257600080fd5b8063cea9d26f14610881578063d2d7ad83146108a1578063dd62ed3e146108b757600080fd5b8063a9059cbb146107b1578063af9549e0146107d1578063c16dd4a4146107f1578063c49b9a8014610811578063c816841b14610831578063c867d60b1461085157600080fd5b80638b42507f1161012e5780638b42507f146106ee5780638da5cb5b1461071e5780638f32d59b1461073c57806395d89b411461075c57806398e944c814610771578063a457c2d71461079157600080fd5b806370a0823114610627578063728d41c91461065d57806375cb1bd11461067d57806375f0a8741461069d5780637d1db4a5146106c2578063807c2d9c146106d857600080fd5b80632b112e49116102195780634974d88f116101d25780634974d88f1461055c5780634a74bb021461057c5780635342acb41461059d5780635881f3ef146105cd5780635c85974f146105ed5780635e42358c1461060d57600080fd5b80632b112e4914610495578063313ce567146104aa57806338ec0b11146104cc57806339509351146104ec5780633b97084a1461050c5780633ecad2711461052c57600080fd5b8063185870f91161026b578063185870f9146103cc5780631d865c30146103ec57806320365d5f1461040c57806323b872dd1461042157806325519cf21461044157806327c8f8351461046157600080fd5b806306fdde03146102be5780630930907b146102e9578063095ea7b31461033557806313ea1d89146103655780631694505e1461038757806318160ddd146103ad57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610971565b6040516102e0919061273f565b60405180910390f35b3480156102f557600080fd5b5061031d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e0565b34801561034157600080fd5b50610355610350366004612629565b610a03565b60405190151581526020016102e0565b34801561037157600080fd5b506103856103803660046125fc565b610a1a565b005b34801561039357600080fd5b5060195461031d906201000090046001600160a01b031681565b3480156103b957600080fd5b506015545b6040519081526020016102e0565b3480156103d857600080fd5b5060045461031d906001600160a01b031681565b3480156103f857600080fd5b506103856104073660046126a4565b610ab7565b34801561041857600080fd5b50610385610b0c565b34801561042d57600080fd5b5061035561043c3660046125bc565b610b86565b34801561044d57600080fd5b5061038561045c3660046126a4565b610bf1565b34801561046d57600080fd5b5061031d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a157600080fd5b506103be610c40565b3480156104b657600080fd5b5060035460405160ff90911681526020016102e0565b3480156104d857600080fd5b506103856104e73660046125fc565b610cd3565b3480156104f857600080fd5b50610355610507366004612629565b610d67565b34801561051857600080fd5b5061038561052736600461268c565b610d9d565b34801561053857600080fd5b50610355610547366004612502565b60096020526000908152604090205460ff1681565b34801561056857600080fd5b50610385610577366004612654565b610dcc565b34801561058857600080fd5b50601a5461035590600160a81b900460ff1681565b3480156105a957600080fd5b506103556105b8366004612502565b60086020526000908152604090205460ff1681565b3480156105d957600080fd5b5061031d6105e8366004612502565b610e10565b3480156105f957600080fd5b5061038561060836600461268c565b611192565b34801561061957600080fd5b506019546103559060ff1681565b34801561063357600080fd5b506103be610642366004612502565b6001600160a01b031660009081526006602052604090205490565b34801561066957600080fd5b5061038561067836600461268c565b6111c1565b34801561068957600080fd5b50610385610698366004612572565b6111f0565b3480156106a957600080fd5b5060035461031d9061010090046001600160a01b031681565b3480156106ce57600080fd5b506103be60175481565b3480156106e457600080fd5b506103be60185481565b3480156106fa57600080fd5b50610355610709366004612502565b600b6020526000908152604090205460ff1681565b34801561072a57600080fd5b506000546001600160a01b031661031d565b34801561074857600080fd5b506000546001600160a01b03163314610355565b34801561076857600080fd5b506102d3611262565b34801561077d57600080fd5b5060055461031d906001600160a01b031681565b34801561079d57600080fd5b506103556107ac366004612629565b611271565b3480156107bd57600080fd5b506103556107cc366004612629565b6112c0565b3480156107dd57600080fd5b506103856107ec3660046125fc565b6112cd565b3480156107fd57600080fd5b5061038561080c3660046125fc565b611361565b34801561081d57600080fd5b5061038561082c366004612654565b6113b6565b34801561083d57600080fd5b50601a5461031d906001600160a01b031681565b34801561085d57600080fd5b5061035561086c366004612502565b600a6020526000908152604090205460ff1681565b34801561088d57600080fd5b5061038561089c3660046125bc565b611438565b3480156108ad57600080fd5b506103be60165481565b3480156108c357600080fd5b506103be6108d236600461253a565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561090957600080fd5b506103856114ea565b34801561091e57600080fd5b5061038561092d366004612654565b6115a6565b34801561093e57600080fd5b5061038561094d366004612502565b6115e3565b34801561095e57600080fd5b5060195461035590610100900460ff1681565b606060018054610980906128b9565b80601f01602080910402602001604051908101604052809291908181526020018280546109ac906128b9565b80156109f95780601f106109ce576101008083540402835291602001916109f9565b820191906000526020600020905b8154815290600101906020018083116109dc57829003601f168201915b5050505050905090565b6000610a103384846117ed565b5060015b92915050565b6000546001600160a01b03163314610a4d5760405162461bcd60e51b8152600401610a44906127b9565b60405180910390fd5b6001600160a01b0382166000908152600b602052604090205460ff1615158115151415610a8c5760405162461bcd60e51b8152600401610a4490612792565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae15760405162461bcd60e51b8152600401610a44906127b9565b600f83905560108290556011819055610b0481610afe858561178e565b9061178e565b601355505050565b6000546001600160a01b03163314610b365760405162461bcd60e51b8152600401610a44906127b9565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000610b93848484611911565b50610be68433610be18560405180606001604052806028815260200161292e602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611d51565b6117ed565b5060015b9392505050565b6000546001600160a01b03163314610c1b5760405162461bcd60e51b8152600401610a44906127b9565b600c839055600d829055600e819055610c3881610afe858561178e565b601255505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260066020526040812054610cce90610cc8610cbf7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526006602052604090205490565b60155490611d8b565b90611d8b565b905090565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b0382166000908152600a602052604090205460ff1615158115151415610d3c5760405162461bcd60e51b8152600401610a4490612792565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610a10918590610be1908661178e565b6000546001600160a01b03163314610dc75760405162461bcd60e51b8152600401610a44906127b9565b601655565b6000546001600160a01b03163314610df65760405162461bcd60e51b8152600401610a44906127b9565b601980549115156101000261ff0019909216919091179055565b600080546001600160a01b03163314610e3b5760405162461bcd60e51b8152600401610a44906127b9565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7957600080fd5b505afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb1919061251e565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef957600080fd5b505afa158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f31919061251e565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f7757600080fd5b505afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf919061251e565b91506001600160a01b03821661113357806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611030919061251e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561107857600080fd5b505afa15801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b0919061251e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611130919061251e565b91505b601a80546001600160a01b038085166001600160a01b031990921682179092556019805493909216620100000262010000600160b01b03199093169290921790556000908152600960205260409020805460ff19166001179055919050565b6000546001600160a01b031633146111bc5760405162461bcd60e51b8152600401610a44906127b9565b601755565b6000546001600160a01b031633146111eb5760405162461bcd60e51b8152600401610a44906127b9565b601855565b6000546001600160a01b0316331461121a5760405162461bcd60e51b8152600401610a44906127b9565b600380546001600160a01b0394851661010002610100600160a81b0319909116179055600480549284166001600160a01b031993841617905560058054919093169116179055565b606060028054610980906128b9565b6000610a103384610be185604051806060016040528060258152602001612956602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611d51565b6000610be6338484611911565b6000546001600160a01b031633146112f75760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b03821660009081526008602052604090205460ff16151581151514156113365760405162461bcd60e51b8152600401610a4490612792565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461138b5760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113e05760405162461bcd60e51b8152600401610a44906127b9565b601a8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061142d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114625760405162461bcd60e51b8152600401610a44906127b9565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156114ac57600080fd5b505af11580156114c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e49190612670565b50505050565b6000546001600160a01b031633146115145760405162461bcd60e51b8152600401610a44906127b9565b604051600090339047908381818185875af1925050503d8060008114611556576040519150601f19603f3d011682016040523d82523d6000602084013e61155b565b606091505b50509050806115a35760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a44565b50565b6000546001600160a01b031633146115d05760405162461bcd60e51b8152600401610a44906127b9565b6019805460ff1916911515919091179055565b6000546001600160a01b0316331461160d5760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b0381166116725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a44565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826116dc57506000610a14565b60006116e88385612883565b9050826116f58583612863565b14610bea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a44565b6000610bea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dcd565b60008061179b838561284b565b905083811015610bea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a44565b6001600160a01b03831661184f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a44565b6001600160a01b0382166118b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a44565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166119775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a44565b6001600160a01b0383166119d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a44565b60008211611a3b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a44565b601a54600160a01b900460ff1615611a5f57611a58848484611dfb565b9050610bea565b6001600160a01b0384166000908152600b602052604090205460ff16158015611aa157506001600160a01b0383166000908152600b602052604090205460ff16155b8015611aaf575060195460ff165b15611b1757601754821115611b175760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a44565b3060009081526006602052604090205460165481108015908190611b455750601a54600160a01b900460ff16155b8015611b6a57506001600160a01b03861660009081526009602052604090205460ff16155b8015611b7f5750601a54600160a81b900460ff165b15611b8c57611b8c611ee1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611bde918690611d51565b6001600160a01b038716600090815260066020526040812091909155611c04878761206d565b611c1857611c1387878761210d565b611c1a565b845b601954909150610100900460ff168015611c4d57506001600160a01b0386166000908152600a602052604090205460ff16155b15611cc657601854611c7882610afe896001600160a01b031660009081526006602052604090205490565b1115611cc65760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610a44565b6001600160a01b038616600090815260066020526040902054611ce9908261178e565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d3d9085815260200190565b60405180910390a360019350505050610bea565b60008184841115611d755760405162461bcd60e51b8152600401610a44919061273f565b506000611d8284866128a2565b95945050505050565b6000610bea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d51565b60008183611dee5760405162461bcd60e51b8152600401610a44919061273f565b506000611d828486612863565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611e4c918490611d51565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611e7b908361178e565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ecf9086815260200190565b60405180910390a35060019392505050565b601a805460ff60a01b1916600160a01b17905530600090815260066020526040812054905080611f11575061205e565b6000611f2a60135460125461178e90919063ffffffff16565b90506000611f45600f54600c5461178e90919063ffffffff16565b90506000611f60601054600d5461178e90919063ffffffff16565b90506000611f7b6002611f75868189886116cd565b9061174c565b90506000611f898683611d8b565b905047611f9582612215565b6000611fa14783611d8b565b90506000611fba611fb388600261174c565b8990611d8b565b90506000611fcf6002611f758481878d6116cd565b90506000611fe183611f75868b6116cd565b90506000611ff382610cc88786611d8b565b90508115612016576003546120169061010090046001600160a01b0316836123f8565b801561203257600454612032906001600160a01b0316826123f8565b6000831180156120425750600088115b15612051576120518884612433565b5050505050505050505050505b601a805460ff60a01b19169055565b6001600160a01b03821660009081526008602052604081205460ff16806120ac57506001600160a01b03821660009081526008602052604090205460ff165b156120b957506001610a14565b6001600160a01b03831660009081526009602052604090205460ff16806120f857506001600160a01b03821660009081526009602052604090205460ff165b1561210557506000610a14565b506000610a14565b6001600160a01b038316600090815260096020526040812054819060ff16156121525761214b601454611f75601254866116cd90919063ffffffff16565b9050612191565b6001600160a01b03841660009081526009602052604090205460ff16156121915761218e601454611f75601354866116cd90919063ffffffff16565b90505b801561220b57306000908152600660205260409020546121b1908261178e565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122029085815260200190565b60405180910390a35b611d828382611d8b565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061225857634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050601960029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c657600080fd5b505afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe919061251e565b8160018151811061231f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260195461234b91309162010000900416846117ed565b60195460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061238990859060009086903090429060040161280f565b600060405180830381600087803b1580156123a357600080fd5b505af11580156123b7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516123ec9291906127ee565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561242e573d6000803e3d6000fd5b505050565b6019546124519030906201000090046001600160a01b0316846117ed565b60195460055460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c4016060604051808303818588803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124fb91906126cf565b5050505050565b600060208284031215612513578081fd5b8135610bea8161290a565b60006020828403121561252f578081fd5b8151610bea8161290a565b6000806040838503121561254c578081fd5b82356125578161290a565b915060208301356125678161290a565b809150509250929050565b600080600060608486031215612586578081fd5b83356125918161290a565b925060208401356125a18161290a565b915060408401356125b18161290a565b809150509250925092565b6000806000606084860312156125d0578283fd5b83356125db8161290a565b925060208401356125eb8161290a565b929592945050506040919091013590565b6000806040838503121561260e578182fd5b82356126198161290a565b915060208301356125678161291f565b6000806040838503121561263b578182fd5b82356126468161290a565b946020939093013593505050565b600060208284031215612665578081fd5b8135610bea8161291f565b600060208284031215612681578081fd5b8151610bea8161291f565b60006020828403121561269d578081fd5b5035919050565b6000806000606084860312156126b8578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156126e3578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156127345781516001600160a01b03168752958201959082019060010161270f565b509495945050505050565b6000602080835283518082850152825b8181101561276b5785810183015185820160400152820161274f565b8181111561277c5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600d908201526c4e6f74204368616e676564212160981b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061280760408301846126fc565b949350505050565b85815284602082015260a06040820152600061282e60a08301866126fc565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561285e5761285e6128f4565b500190565b60008261287e57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561289d5761289d6128f4565b500290565b6000828210156128b4576128b46128f4565b500390565b600181811c908216806128cd57607f821691505b602082108114156128ee57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146115a357600080fd5b80151581146115a357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200ee475a3c9d24ac146b9136e372e85d5a6bf3081804d63802c1c94d7e3016bbe64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102b25760003560e01c806370a0823111610175578063a9059cbb116100dc578063cea9d26f11610095578063e6b2603b1161006f578063e6b2603b146108fd578063ee828db314610912578063f2fde38b14610932578063f872858a1461095257600080fd5b8063cea9d26f14610881578063d2d7ad83146108a1578063dd62ed3e146108b757600080fd5b8063a9059cbb146107b1578063af9549e0146107d1578063c16dd4a4146107f1578063c49b9a8014610811578063c816841b14610831578063c867d60b1461085157600080fd5b80638b42507f1161012e5780638b42507f146106ee5780638da5cb5b1461071e5780638f32d59b1461073c57806395d89b411461075c57806398e944c814610771578063a457c2d71461079157600080fd5b806370a0823114610627578063728d41c91461065d57806375cb1bd11461067d57806375f0a8741461069d5780637d1db4a5146106c2578063807c2d9c146106d857600080fd5b80632b112e49116102195780634974d88f116101d25780634974d88f1461055c5780634a74bb021461057c5780635342acb41461059d5780635881f3ef146105cd5780635c85974f146105ed5780635e42358c1461060d57600080fd5b80632b112e4914610495578063313ce567146104aa57806338ec0b11146104cc57806339509351146104ec5780633b97084a1461050c5780633ecad2711461052c57600080fd5b8063185870f91161026b578063185870f9146103cc5780631d865c30146103ec57806320365d5f1461040c57806323b872dd1461042157806325519cf21461044157806327c8f8351461046157600080fd5b806306fdde03146102be5780630930907b146102e9578063095ea7b31461033557806313ea1d89146103655780631694505e1461038757806318160ddd146103ad57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610971565b6040516102e0919061273f565b60405180910390f35b3480156102f557600080fd5b5061031d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e0565b34801561034157600080fd5b50610355610350366004612629565b610a03565b60405190151581526020016102e0565b34801561037157600080fd5b506103856103803660046125fc565b610a1a565b005b34801561039357600080fd5b5060195461031d906201000090046001600160a01b031681565b3480156103b957600080fd5b506015545b6040519081526020016102e0565b3480156103d857600080fd5b5060045461031d906001600160a01b031681565b3480156103f857600080fd5b506103856104073660046126a4565b610ab7565b34801561041857600080fd5b50610385610b0c565b34801561042d57600080fd5b5061035561043c3660046125bc565b610b86565b34801561044d57600080fd5b5061038561045c3660046126a4565b610bf1565b34801561046d57600080fd5b5061031d7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104a157600080fd5b506103be610c40565b3480156104b657600080fd5b5060035460405160ff90911681526020016102e0565b3480156104d857600080fd5b506103856104e73660046125fc565b610cd3565b3480156104f857600080fd5b50610355610507366004612629565b610d67565b34801561051857600080fd5b5061038561052736600461268c565b610d9d565b34801561053857600080fd5b50610355610547366004612502565b60096020526000908152604090205460ff1681565b34801561056857600080fd5b50610385610577366004612654565b610dcc565b34801561058857600080fd5b50601a5461035590600160a81b900460ff1681565b3480156105a957600080fd5b506103556105b8366004612502565b60086020526000908152604090205460ff1681565b3480156105d957600080fd5b5061031d6105e8366004612502565b610e10565b3480156105f957600080fd5b5061038561060836600461268c565b611192565b34801561061957600080fd5b506019546103559060ff1681565b34801561063357600080fd5b506103be610642366004612502565b6001600160a01b031660009081526006602052604090205490565b34801561066957600080fd5b5061038561067836600461268c565b6111c1565b34801561068957600080fd5b50610385610698366004612572565b6111f0565b3480156106a957600080fd5b5060035461031d9061010090046001600160a01b031681565b3480156106ce57600080fd5b506103be60175481565b3480156106e457600080fd5b506103be60185481565b3480156106fa57600080fd5b50610355610709366004612502565b600b6020526000908152604090205460ff1681565b34801561072a57600080fd5b506000546001600160a01b031661031d565b34801561074857600080fd5b506000546001600160a01b03163314610355565b34801561076857600080fd5b506102d3611262565b34801561077d57600080fd5b5060055461031d906001600160a01b031681565b34801561079d57600080fd5b506103556107ac366004612629565b611271565b3480156107bd57600080fd5b506103556107cc366004612629565b6112c0565b3480156107dd57600080fd5b506103856107ec3660046125fc565b6112cd565b3480156107fd57600080fd5b5061038561080c3660046125fc565b611361565b34801561081d57600080fd5b5061038561082c366004612654565b6113b6565b34801561083d57600080fd5b50601a5461031d906001600160a01b031681565b34801561085d57600080fd5b5061035561086c366004612502565b600a6020526000908152604090205460ff1681565b34801561088d57600080fd5b5061038561089c3660046125bc565b611438565b3480156108ad57600080fd5b506103be60165481565b3480156108c357600080fd5b506103be6108d236600461253a565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561090957600080fd5b506103856114ea565b34801561091e57600080fd5b5061038561092d366004612654565b6115a6565b34801561093e57600080fd5b5061038561094d366004612502565b6115e3565b34801561095e57600080fd5b5060195461035590610100900460ff1681565b606060018054610980906128b9565b80601f01602080910402602001604051908101604052809291908181526020018280546109ac906128b9565b80156109f95780601f106109ce576101008083540402835291602001916109f9565b820191906000526020600020905b8154815290600101906020018083116109dc57829003601f168201915b5050505050905090565b6000610a103384846117ed565b5060015b92915050565b6000546001600160a01b03163314610a4d5760405162461bcd60e51b8152600401610a44906127b9565b60405180910390fd5b6001600160a01b0382166000908152600b602052604090205460ff1615158115151415610a8c5760405162461bcd60e51b8152600401610a4490612792565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae15760405162461bcd60e51b8152600401610a44906127b9565b600f83905560108290556011819055610b0481610afe858561178e565b9061178e565b601355505050565b6000546001600160a01b03163314610b365760405162461bcd60e51b8152600401610a44906127b9565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000610b93848484611911565b50610be68433610be18560405180606001604052806028815260200161292e602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611d51565b6117ed565b5060015b9392505050565b6000546001600160a01b03163314610c1b5760405162461bcd60e51b8152600401610a44906127b9565b600c839055600d829055600e819055610c3881610afe858561178e565b601255505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260066020526040812054610cce90610cc8610cbf7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526006602052604090205490565b60155490611d8b565b90611d8b565b905090565b6000546001600160a01b03163314610cfd5760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b0382166000908152600a602052604090205460ff1615158115151415610d3c5760405162461bcd60e51b8152600401610a4490612792565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610a10918590610be1908661178e565b6000546001600160a01b03163314610dc75760405162461bcd60e51b8152600401610a44906127b9565b601655565b6000546001600160a01b03163314610df65760405162461bcd60e51b8152600401610a44906127b9565b601980549115156101000261ff0019909216919091179055565b600080546001600160a01b03163314610e3b5760405162461bcd60e51b8152600401610a44906127b9565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7957600080fd5b505afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb1919061251e565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ef957600080fd5b505afa158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f31919061251e565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f7757600080fd5b505afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf919061251e565b91506001600160a01b03821661113357806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ff857600080fd5b505afa15801561100c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611030919061251e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561107857600080fd5b505afa15801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b0919061251e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611130919061251e565b91505b601a80546001600160a01b038085166001600160a01b031990921682179092556019805493909216620100000262010000600160b01b03199093169290921790556000908152600960205260409020805460ff19166001179055919050565b6000546001600160a01b031633146111bc5760405162461bcd60e51b8152600401610a44906127b9565b601755565b6000546001600160a01b031633146111eb5760405162461bcd60e51b8152600401610a44906127b9565b601855565b6000546001600160a01b0316331461121a5760405162461bcd60e51b8152600401610a44906127b9565b600380546001600160a01b0394851661010002610100600160a81b0319909116179055600480549284166001600160a01b031993841617905560058054919093169116179055565b606060028054610980906128b9565b6000610a103384610be185604051806060016040528060258152602001612956602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611d51565b6000610be6338484611911565b6000546001600160a01b031633146112f75760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b03821660009081526008602052604090205460ff16151581151514156113365760405162461bcd60e51b8152600401610a4490612792565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461138b5760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113e05760405162461bcd60e51b8152600401610a44906127b9565b601a8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061142d90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114625760405162461bcd60e51b8152600401610a44906127b9565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156114ac57600080fd5b505af11580156114c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e49190612670565b50505050565b6000546001600160a01b031633146115145760405162461bcd60e51b8152600401610a44906127b9565b604051600090339047908381818185875af1925050503d8060008114611556576040519150601f19603f3d011682016040523d82523d6000602084013e61155b565b606091505b50509050806115a35760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a44565b50565b6000546001600160a01b031633146115d05760405162461bcd60e51b8152600401610a44906127b9565b6019805460ff1916911515919091179055565b6000546001600160a01b0316331461160d5760405162461bcd60e51b8152600401610a44906127b9565b6001600160a01b0381166116725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a44565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826116dc57506000610a14565b60006116e88385612883565b9050826116f58583612863565b14610bea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a44565b6000610bea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dcd565b60008061179b838561284b565b905083811015610bea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a44565b6001600160a01b03831661184f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a44565b6001600160a01b0382166118b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a44565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166119775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a44565b6001600160a01b0383166119d95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a44565b60008211611a3b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a44565b601a54600160a01b900460ff1615611a5f57611a58848484611dfb565b9050610bea565b6001600160a01b0384166000908152600b602052604090205460ff16158015611aa157506001600160a01b0383166000908152600b602052604090205460ff16155b8015611aaf575060195460ff165b15611b1757601754821115611b175760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a44565b3060009081526006602052604090205460165481108015908190611b455750601a54600160a01b900460ff16155b8015611b6a57506001600160a01b03861660009081526009602052604090205460ff16155b8015611b7f5750601a54600160a81b900460ff165b15611b8c57611b8c611ee1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611bde918690611d51565b6001600160a01b038716600090815260066020526040812091909155611c04878761206d565b611c1857611c1387878761210d565b611c1a565b845b601954909150610100900460ff168015611c4d57506001600160a01b0386166000908152600a602052604090205460ff16155b15611cc657601854611c7882610afe896001600160a01b031660009081526006602052604090205490565b1115611cc65760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610a44565b6001600160a01b038616600090815260066020526040902054611ce9908261178e565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d3d9085815260200190565b60405180910390a360019350505050610bea565b60008184841115611d755760405162461bcd60e51b8152600401610a44919061273f565b506000611d8284866128a2565b95945050505050565b6000610bea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d51565b60008183611dee5760405162461bcd60e51b8152600401610a44919061273f565b506000611d828486612863565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611e4c918490611d51565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611e7b908361178e565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ecf9086815260200190565b60405180910390a35060019392505050565b601a805460ff60a01b1916600160a01b17905530600090815260066020526040812054905080611f11575061205e565b6000611f2a60135460125461178e90919063ffffffff16565b90506000611f45600f54600c5461178e90919063ffffffff16565b90506000611f60601054600d5461178e90919063ffffffff16565b90506000611f7b6002611f75868189886116cd565b9061174c565b90506000611f898683611d8b565b905047611f9582612215565b6000611fa14783611d8b565b90506000611fba611fb388600261174c565b8990611d8b565b90506000611fcf6002611f758481878d6116cd565b90506000611fe183611f75868b6116cd565b90506000611ff382610cc88786611d8b565b90508115612016576003546120169061010090046001600160a01b0316836123f8565b801561203257600454612032906001600160a01b0316826123f8565b6000831180156120425750600088115b15612051576120518884612433565b5050505050505050505050505b601a805460ff60a01b19169055565b6001600160a01b03821660009081526008602052604081205460ff16806120ac57506001600160a01b03821660009081526008602052604090205460ff165b156120b957506001610a14565b6001600160a01b03831660009081526009602052604090205460ff16806120f857506001600160a01b03821660009081526009602052604090205460ff165b1561210557506000610a14565b506000610a14565b6001600160a01b038316600090815260096020526040812054819060ff16156121525761214b601454611f75601254866116cd90919063ffffffff16565b9050612191565b6001600160a01b03841660009081526009602052604090205460ff16156121915761218e601454611f75601354866116cd90919063ffffffff16565b90505b801561220b57306000908152600660205260409020546121b1908261178e565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122029085815260200190565b60405180910390a35b611d828382611d8b565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061225857634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050601960029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c657600080fd5b505afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe919061251e565b8160018151811061231f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260195461234b91309162010000900416846117ed565b60195460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061238990859060009086903090429060040161280f565b600060405180830381600087803b1580156123a357600080fd5b505af11580156123b7573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516123ec9291906127ee565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561242e573d6000803e3d6000fd5b505050565b6019546124519030906201000090046001600160a01b0316846117ed565b60195460055460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c4016060604051808303818588803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124fb91906126cf565b5050505050565b600060208284031215612513578081fd5b8135610bea8161290a565b60006020828403121561252f578081fd5b8151610bea8161290a565b6000806040838503121561254c578081fd5b82356125578161290a565b915060208301356125678161290a565b809150509250929050565b600080600060608486031215612586578081fd5b83356125918161290a565b925060208401356125a18161290a565b915060408401356125b18161290a565b809150509250925092565b6000806000606084860312156125d0578283fd5b83356125db8161290a565b925060208401356125eb8161290a565b929592945050506040919091013590565b6000806040838503121561260e578182fd5b82356126198161290a565b915060208301356125678161291f565b6000806040838503121561263b578182fd5b82356126468161290a565b946020939093013593505050565b600060208284031215612665578081fd5b8135610bea8161291f565b600060208284031215612681578081fd5b8151610bea8161291f565b60006020828403121561269d578081fd5b5035919050565b6000806000606084860312156126b8578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156126e3578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156127345781516001600160a01b03168752958201959082019060010161270f565b509495945050505050565b6000602080835283518082850152825b8181101561276b5785810183015185820160400152820161274f565b8181111561277c5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600d908201526c4e6f74204368616e676564212160981b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061280760408301846126fc565b949350505050565b85815284602082015260a06040820152600061282e60a08301866126fc565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561285e5761285e6128f4565b500190565b60008261287e57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561289d5761289d6128f4565b500290565b6000828210156128b4576128b46128f4565b500390565b600181811c908216806128cd57607f821691505b602082108114156128ee57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146115a357600080fd5b80151581146115a357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200ee475a3c9d24ac146b9136e372e85d5a6bf3081804d63802c1c94d7e3016bbe64736f6c63430008040033
Deployed Bytecode Sourcemap
14008:15659:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17750:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14557:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5376:32:1;;;5358:51;;5346:2;5331:18;14557:81:0;5313:102:1;18920:161:0;;;;;;;;;;-1:-1:-1;18920:161:0;;;;;:::i;:::-;;:::i;:::-;;;6785:14:1;;6778:22;6760:41;;6748:2;6733:18;18920:161:0;6715:92:1;28061:186:0;;;;;;;;;;-1:-1:-1;28061:186:0;;;;;:::i;:::-;;:::i;:::-;;15694:41;;;;;;;;;;-1:-1:-1;15694:41:0;;;;;;;-1:-1:-1;;;;;15694:41:0;;;18027:100;;;;;;;;;;-1:-1:-1;18107:12:0;;18027:100;;;12811:25:1;;;12799:2;12784:18;18027:100:0;12766:76:1;14346:75:0;;;;;;;;;;-1:-1:-1;14346:75:0;;;;-1:-1:-1;;;;;14346:75:0;;;27103:313;;;;;;;;;;-1:-1:-1;27103:313:0;;;;;:::i;:::-;;:::i;5684:231::-;;;;;;;;;;;;;:::i;19871:313::-;;;;;;;;;;-1:-1:-1;19871:313:0;;;;;:::i;:::-;;:::i;26793:302::-;;;;;;;;;;-1:-1:-1;26793:302:0;;;;;:::i;:::-;;:::i;14469:81::-;;;;;;;;;;;;;;;19438:156;;;;;;;;;;;;;:::i;17936:83::-;;;;;;;;;;-1:-1:-1;18002:9:0;;17936:83;;18002:9;;;;13913:36:1;;13901:2;13886:18;17936:83:0;13868:87:1;27855:198:0;;;;;;;;;;-1:-1:-1;27855:198:0;;;;;:::i;:::-;;:::i;18417:218::-;;;;;;;;;;-1:-1:-1;18417:218:0;;;;;:::i;:::-;;:::i;28255:124::-;;;;;;;;;;-1:-1:-1;28255:124:0;;;;;:::i;:::-;;:::i;14835:45::-;;;;;;;;;;-1:-1:-1;14835:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26682:103;;;;;;;;;;-1:-1:-1;26682:103:0;;;;;:::i;:::-;;:::i;15809:40::-;;;;;;;;;;-1:-1:-1;15809:40:0;;;;-1:-1:-1;;;15809:40:0;;;;;;14778:50;;;;;;;;;;-1:-1:-1;14778:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;28914:748;;;;;;;;;;-1:-1:-1;28914:748:0;;;;;:::i;:::-;;:::i;28501:101::-;;;;;;;;;;-1:-1:-1;28501:101:0;;;;;:::i;:::-;;:::i;15611:32::-;;;;;;;;;;-1:-1:-1;15611:32:0;;;;;;;;18135:123;;;;;;;;;;-1:-1:-1;18135:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;18227:18:0;18201:7;18227:18;;;:9;:18;;;;;;;18135:123;28387:106;;;;;;;;;;-1:-1:-1;28387:106:0;;;;;:::i;:::-;;:::i;27424:222::-;;;;;;;;;;-1:-1:-1;27424:222:0;;;;;:::i;:::-;;:::i;14264:75::-;;;;;;;;;;-1:-1:-1;14264:75:0;;;;;;;-1:-1:-1;;;;;14264:75:0;;;15445:68;;;;;;;;;;;;;;;;15529:65;;;;;;;;;;;;;;;;14946:48;;;;;;;;;;-1:-1:-1;14946:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5359:79;;;;;;;;;;-1:-1:-1;5397:7:0;5424:6;-1:-1:-1;;;;;5424:6:0;5359:79;;5584:92;;;;;;;;;;-1:-1:-1;5624:4:0;5662:6;-1:-1:-1;;;;;5662:6:0;5648:10;:20;5584:92;;17841:87;;;;;;;;;;;;;:::i;14428:32::-;;;;;;;;;;-1:-1:-1;14428:32:0;;;;-1:-1:-1;;;;;14428:32:0;;;18643:269;;;;;;;;;;-1:-1:-1;18643:269:0;;;;;:::i;:::-;;:::i;19696:167::-;;;;;;;;;;-1:-1:-1;19696:167:0;;;;;:::i;:::-;;:::i;27654:193::-;;;;;;;;;;-1:-1:-1;27654:193:0;;;;;:::i;:::-;;:::i;28789:117::-;;;;;;;;;;-1:-1:-1;28789:117:0;;;;;:::i;:::-;;:::i;28610:171::-;;;;;;;;;;-1:-1:-1;28610:171:0;;;;;:::i;:::-;;:::i;15742:26::-;;;;;;;;;;-1:-1:-1;15742:26:0;;;;-1:-1:-1;;;;;15742:26:0;;;14887:52;;;;;;;;;;-1:-1:-1;14887:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26440:130;;;;;;;;;;-1:-1:-1;26440:130:0;;;;;:::i;:::-;;:::i;15376:60::-;;;;;;;;;;;;;;;;18266:143;;;;;;;;;;-1:-1:-1;18266:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18374:18:0;;;18347:7;18374:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18266:143;26224:176;;;;;;;;;;;;;:::i;26578:96::-;;;;;;;;;;-1:-1:-1;26578:96:0;;;;;:::i;:::-;;:::i;5923:244::-;;;;;;;;;;-1:-1:-1;5923:244:0;;;;;:::i;:::-;;:::i;15650:35::-;;;;;;;;;;-1:-1:-1;15650:35:0;;;;;;;;;;;17750:83;17787:13;17820:5;17813:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17750:83;:::o;18920:161::-;18995:4;19012:39;283:10;19035:7;19044:6;19012:8;:39::i;:::-;-1:-1:-1;19069:4:0;18920:161;;;;;:::o;28061:186::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;28148:21:0;::::1;;::::0;;;:15:::1;:21;::::0;;;;;::::1;;:32;;::::0;::::1;;;;28140:57;;;;-1:-1:-1::0;;;28140:57:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28208:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;28208:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28061:186::o;27103:313::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;27211:17:::1;:26:::0;;;27248:17:::1;:30:::0;;;27289:17:::1;:33:::0;;;27345:63:::1;27309:13:::0;27345:40:::1;27231:6:::0;27268:10;27345:21:::1;:40::i;:::-;:44:::0;::::1;:63::i;:::-;27333:9;:75:::0;-1:-1:-1;;;27103:313:0:o;5684:231::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;5776:6:::1;::::0;;5755:81:::1;::::0;5792:42:::1;::::0;-1:-1:-1;;;;;5776:6:0;;::::1;::::0;5755:81:::1;::::0;::::1;5847:6;:60:::0;;-1:-1:-1;;;;;;5847:60:0::1;5864:42;5847:60;::::0;;5684:231::o;19871:313::-;19969:4;19986:36;19996:6;20004:9;20015:6;19986:9;:36::i;:::-;-1:-1:-1;20033:121:0;20042:6;283:10;20064:89;20102:6;20064:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20064:19:0;;;;;;:11;:19;;;;;;;;283:10;20064:33;;;;;;;;;;:37;:89::i;:::-;20033:8;:121::i;:::-;-1:-1:-1;20172:4:0;19871:313;;;;;;:::o;26793:302::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;26897:16:::1;:25:::0;;;26933:16:::1;:29:::0;;;26973:16:::1;:32:::0;;;27027:60:::1;26992:13:::0;27027:38:::1;26916:6:::0;26952:10;27027:20:::1;:38::i;:60::-;27016:8;:71:::0;-1:-1:-1;;;26793:302:0:o;19438:156::-;-1:-1:-1;;;;;19573:11:0;18227:18;19491:7;18227:18;;;:9;:18;;;;;;19518:68;;:40;19535:22;19545:11;-1:-1:-1;;;;;18227:18:0;18201:7;18227:18;;;:9;:18;;;;;;;18135:123;19535:22;19518:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;19511:75;;19438:156;:::o;27855:198::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27946:25:0;::::1;;::::0;;;:19:::1;:25;::::0;;;;;::::1;;:36;;::::0;::::1;;;;27938:61;;;;-1:-1:-1::0;;;27938:61:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28010:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;28010:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27855:198::o;18417:218::-;283:10;18505:4;18554:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18554:34:0;;;;;;;;;;18505:4;;18522:83;;18545:7;;18554:50;;18593:10;18554:38;:50::i;28255:124::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;28337:23:::1;:34:::0;28255:124::o;26682:103::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;26751:16:::1;:26:::0;;;::::1;;;;-1:-1:-1::0;;26751:26:0;;::::1;::::0;;;::::1;::::0;;26682:103::o;28914:748::-;28994:22;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;29031:35:::1;29088:16;29031:74;;29154:16;-1:-1:-1::0;;;;;29154:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29136:53:0::1;;29198:4;29205:16;-1:-1:-1::0;;;;;29205:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29136:93;::::0;-1:-1:-1;;;;;;29136:93:0::1;::::0;;;;;;-1:-1:-1;;;;;5650:15:1;;;29136:93:0::1;::::0;::::1;5632:34:1::0;5702:15;;5682:18;;;5675:43;5567:18;;29136:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29119:110:::0;-1:-1:-1;;;;;;29245:28:0;::::1;29242:225;;29359:16;-1:-1:-1::0;;;;;29359:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29341:74:0::1;;29424:4;29431:16;-1:-1:-1::0;;;;;29431:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29341:114;::::0;-1:-1:-1;;;;;;29341:114:0::1;::::0;;;;;;-1:-1:-1;;;;;5650:15:1;;;29341:114:0::1;::::0;::::1;5632:34:1::0;5702:15;;5682:18;;;5675:43;5567:18;;29341:114:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29324:131;;29242:225;29479:11;:28:::0;;-1:-1:-1;;;;;29479:28:0;;::::1;-1:-1:-1::0;;;;;;29479:28:0;;::::1;::::0;::::1;::::0;;;29541:15:::1;:34:::0;;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;29541:34:0;;::::1;::::0;;;::::1;::::0;;29479:11:::1;29613:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;29613:41:0::1;29479:28:::0;29613:41:::1;::::0;;29493:14;28914:748;-1:-1:-1;28914:748:0:o;28501:101::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;28571:12:::1;:23:::0;28501:101::o;28387:106::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;28464:10:::1;:21:::0;28387:106::o;27424:222::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;27530:15:::1;:25:::0;;-1:-1:-1;;;;;27530:25:0;;::::1;;;-1:-1:-1::0;;;;;;27530:25:0;;::::1;;::::0;;27566:15:::1;:28:::0;;;;::::1;-1:-1:-1::0;;;;;;27566:28:0;;::::1;;::::0;;27605:17:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;27424:222::o;17841:87::-;17880:13;17913:7;17906:14;;;;;:::i;18643:269::-;18736:4;18753:129;283:10;18776:7;18785:96;18824:15;18785:96;;;;;;;;;;;;;;;;;283:10;18785:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18785:34:0;;;;;;;;;;;;:38;:96::i;19696:167::-;19774:4;19791:42;283:10;19815:9;19826:6;19791:9;:42::i;27654:193::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27744:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;::::1;;:34;;::::0;::::1;;;;27736:59;;;;-1:-1:-1::0;;;27736:59:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27806:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;27806:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27654:193::o;28789:117::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28869:19:0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;28869:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28789:117::o;28610:171::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;28687:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;28687:32:0::1;-1:-1:-1::0;;;;28687:32:0;;::::1;;::::0;;28735:38:::1;::::0;::::1;::::0;::::1;::::0;28711:8;6785:14:1;6778:22;6760:41;;6748:2;6733:18;;6715:92;28735:38:0::1;;;;;;;;28610:171:::0;:::o;26440:130::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;26532:30:::1;::::0;-1:-1:-1;;;26532:30:0;;-1:-1:-1;;;;;5921:32:1;;;26532:30:0::1;::::0;::::1;5903:51:1::0;5970:18;;;5963:34;;;26532:12:0;::::1;::::0;::::1;::::0;5876:18:1;;26532:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26440:130:::0;;;:::o;26224:176::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;26289:58:::1;::::0;26277:7:::1;::::0;26297:10:::1;::::0;26321:21:::1;::::0;26277:7;26289:58;26277:7;26289:58;26321:21;26297:10;26289:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26276:71;;;26366:2;26358:34;;;::::0;-1:-1:-1;;;26358:34:0;;12518:2:1;26358:34:0::1;::::0;::::1;12500:21:1::0;12557:2;12537:18;;;12530:30;-1:-1:-1;;;12576:18:1;;;12569:50;12636:18;;26358:34:0::1;12490:170:1::0;26358:34:0::1;5563:1;26224:176::o:0;26578:96::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;26643:13:::1;:23:::0;;-1:-1:-1;;26643:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26578:96::o;5923:244::-;5493:6;;-1:-1:-1;;;;;5493:6:0;283:10;5493:22;5485:67;;;;-1:-1:-1;;;5485:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6012:22:0;::::1;6004:73;;;::::0;-1:-1:-1;;;6004:73:0;;8617:2:1;6004:73:0::1;::::0;::::1;8599:21:1::0;8656:2;8636:18;;;8629:30;8695:34;8675:18;;;8668:62;-1:-1:-1;;;8746:18:1;;;8739:36;8792:19;;6004:73:0::1;8589:228:1::0;6004:73:0::1;6114:6;::::0;;6093:38:::1;::::0;-1:-1:-1;;;;;6093:38:0;;::::1;::::0;6114:6;::::1;::::0;6093:38:::1;::::0;::::1;6142:6;:17:::0;;-1:-1:-1;;;;;;6142:17:0::1;-1:-1:-1::0;;;;;6142:17:0;;;::::1;::::0;;;::::1;::::0;;5923:244::o;1669:250::-;1727:7;1751:6;1747:47;;-1:-1:-1;1781:1:0;1774:8;;1747:47;1806:9;1818:5;1822:1;1818;:5;:::i;:::-;1806:17;-1:-1:-1;1851:1:0;1842:5;1846:1;1806:17;1842:5;:::i;:::-;:10;1834:56;;;;-1:-1:-1;;;1834:56:0;;10534:2:1;1834:56:0;;;10516:21:1;10573:2;10553:18;;;10546:30;10612:34;10592:18;;;10585:62;-1:-1:-1;;;10663:18:1;;;10656:31;10704:19;;1834:56:0;10506:223:1;1927:132:0;1985:7;2012:39;2016:1;2019;2012:39;;;;;;;;;;;;;;;;;:3;:39::i;1136:181::-;1194:7;;1226:5;1230:1;1226;:5;:::i;:::-;1214:17;;1255:1;1250;:6;;1242:46;;;;-1:-1:-1;;;1242:46:0;;9427:2:1;1242:46:0;;;9409:21:1;9466:2;9446:18;;;9439:30;9505:29;9485:18;;;9478:57;9552:18;;1242:46:0;9399:177:1;19089:337:0;-1:-1:-1;;;;;19182:19:0;;19174:68;;;;-1:-1:-1;;;19174:68:0;;12113:2:1;19174:68:0;;;12095:21:1;12152:2;12132:18;;;12125:30;12191:34;12171:18;;;12164:62;-1:-1:-1;;;12242:18:1;;;12235:34;12286:19;;19174:68:0;12085:226:1;19174:68:0;-1:-1:-1;;;;;19261:21:0;;19253:68;;;;-1:-1:-1;;;19253:68:0;;9024:2:1;19253:68:0;;;9006:21:1;9063:2;9043:18;;;9036:30;9102:34;9082:18;;;9075:62;-1:-1:-1;;;9153:18:1;;;9146:32;9195:19;;19253:68:0;8996:224:1;19253:68:0;-1:-1:-1;;;;;19334:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19386:32;;12811:25:1;;;19386:32:0;;12784:18:1;19386:32:0;;;;;;;19089:337;;;:::o;20192:1636::-;20279:4;-1:-1:-1;;;;;20306:20:0;;20298:70;;;;-1:-1:-1;;;20298:70:0;;11707:2:1;20298:70:0;;;11689:21:1;11746:2;11726:18;;;11719:30;11785:34;11765:18;;;11758:62;-1:-1:-1;;;11836:18:1;;;11829:35;11881:19;;20298:70:0;11679:227:1;20298:70:0;-1:-1:-1;;;;;20387:23:0;;20379:71;;;;-1:-1:-1;;;20379:71:0;;7857:2:1;20379:71:0;;;7839:21:1;7896:2;7876:18;;;7869:30;7935:34;7915:18;;;7908:62;-1:-1:-1;;;7986:18:1;;;7979:33;8029:19;;20379:71:0;7829:225:1;20379:71:0;20478:1;20469:6;:10;20461:64;;;;-1:-1:-1;;;20461:64:0;;11297:2:1;20461:64:0;;;11279:21:1;11336:2;11316:18;;;11309:30;11375:34;11355:18;;;11348:62;-1:-1:-1;;;11426:18:1;;;11419:39;11475:19;;20461:64:0;11269:231:1;20461:64:0;20551:16;;-1:-1:-1;;;20551:16:0;;;;20548:1273;;;20601:41;20616:6;20624:9;20635:6;20601:14;:41::i;:::-;20594:48;;;;20548:1273;-1:-1:-1;;;;;20700:23:0;;;;;;:15;:23;;;;;;;;20699:24;:55;;;;-1:-1:-1;;;;;;20728:26:0;;;;;;:15;:26;;;;;;;;20727:27;20699:55;:72;;;;-1:-1:-1;20758:13:0;;;;20699:72;20696:187;;;20810:12;;20800:6;:22;;20792:75;;;;-1:-1:-1;;;20792:75:0;;10125:2:1;20792:75:0;;;10107:21:1;10164:2;10144:18;;;10137:30;10203:34;10183:18;;;10176:62;-1:-1:-1;;;10254:18:1;;;10247:38;10302:19;;20792:75:0;10097:230:1;20792:75:0;20949:4;20900:28;18227:18;;;:9;:18;;;;;;21025:23;;21001:47;;;;;;;21081:44;;-1:-1:-1;21109:16:0;;-1:-1:-1;;;21109:16:0;;;;21108:17;21081:44;:69;;;;-1:-1:-1;;;;;;21130:20:0;;;;;;:12;:20;;;;;;;;21129:21;21081:69;:94;;;;-1:-1:-1;21154:21:0;;-1:-1:-1;;;21154:21:0;;;;21081:94;21077:165;;;21210:16;:14;:16::i;:::-;21278:53;;;;;;;;;;;-1:-1:-1;;;21278:53:0;;;;;;;;-1:-1:-1;;;;;21278:17:0;;-1:-1:-1;21278:17:0;;;:9;:17;;;;;;;;:53;;21300:6;;21278:21;:53::i;:::-;-1:-1:-1;;;;;21258:17:0;;;;;;:9;:17;;;;;:73;;;;21370:31;21268:6;21391:9;21370:13;:31::i;:::-;:77;;21413:34;21421:6;21429:9;21440:6;21413:7;:34::i;:::-;21370:77;;;21404:6;21370:77;21467:16;;21348:99;;-1:-1:-1;21467:16:0;;;;;:51;;;;-1:-1:-1;;;;;;21488:30:0;;;;;;:19;:30;;;;;;;;21487:31;21467:51;21464:181;;;21588:10;;21547:37;21572:11;21547:20;21557:9;-1:-1:-1;;;;;18227:18:0;18201:7;18227:18;;;:9;:18;;;;;;;18135:123;21547:37;:51;;21539:90;;;;-1:-1:-1;;;21539:90:0;;8261:2:1;21539:90:0;;;8243:21:1;8300:2;8280:18;;;8273:30;8339:29;8319:18;;;8312:57;8386:18;;21539:90:0;8233:177:1;21539:90:0;-1:-1:-1;;;;;21684:20:0;;;;;;:9;:20;;;;;;:37;;21709:11;21684:24;:37::i;:::-;-1:-1:-1;;;;;21661:20:0;;;;;;;:9;:20;;;;;;;:60;;;;21743:40;;;;;;;;;;21771:11;12811:25:1;;12799:2;12784:18;;12766:76;21743:40:0;;;;;;;;21805:4;21798:11;;;;;;;1469:192;1555:7;1591:12;1583:6;;;;1575:29;;;;-1:-1:-1;;;1575:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1615:9:0;1627:5;1631:1;1627;:5;:::i;:::-;1615:17;1469:192;-1:-1:-1;;;;;1469:192:0:o;1325:136::-;1383:7;1410:43;1414:1;1417;1410:43;;;;;;;;;;;;;;;;;:3;:43::i;2067:278::-;2153:7;2188:12;2181:5;2173:28;;;;-1:-1:-1;;;2173:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2212:9:0;2224:5;2228:1;2224;:5;:::i;21836:330::-;21966:53;;;;;;;;;;;-1:-1:-1;;;21966:53:0;;;;;;;;-1:-1:-1;;;;;21966:17:0;;21929:4;21966:17;;;:9;:17;;;;;;;:53;;21988:6;;21966:21;:53::i;:::-;-1:-1:-1;;;;;21946:17:0;;;;;;;:9;:17;;;;;;:73;;;;22053:20;;;;;;;:32;;22078:6;22053:24;:32::i;:::-;-1:-1:-1;;;;;22030:20:0;;;;;;;:9;:20;;;;;;;:55;;;;22101:35;;;;;;;;;;22129:6;12811:25:1;;12799:2;12784:18;;12766:76;22101:35:0;;;;;;;;-1:-1:-1;22154:4:0;21836:330;;;;;:::o;22174:1425::-;16274:16;:23;;-1:-1:-1;;;;16274:23:0;-1:-1:-1;;;16274:23:0;;;22277:4:::1;-1:-1:-1::0;18227:18:0;;;:9;:18;;;;;;22233:50;-1:-1:-1;22299:20:0;22296:32:::1;;22321:7;;;22296:32;22340:19;22362:23;22375:9;;22362:8;;:12;;:23;;;;:::i;:::-;22340:45;;22396:23;22422:39;22443:17;;22422:16;;:20;;:39;;;;:::i;:::-;22396:65;;22472:23;22498:39;22519:17;;22498:16;;:20;;:39;;;;:::i;:::-;22472:65:::0;-1:-1:-1;22550:19:0::1;22572:60;22630:1;22572:53;22613:11:::0;22572:53;:15;22592;22572:19:::1;:36::i;:::-;:40:::0;::::1;:53::i;:60::-;22550:82:::0;-1:-1:-1;22643:21:0::1;22667:32;:15:::0;22550:82;22667:19:::1;:32::i;:::-;22643:56:::0;-1:-1:-1;22737:21:0::1;22769:31;22643:56:::0;22769:16:::1;:31::i;:::-;22811:22;22836:41;:21;22862:14:::0;22836:25:::1;:41::i;:::-;22811:66:::0;-1:-1:-1;22890:19:0::1;22912:39;22928:22;:15:::0;22948:1:::1;22928:19;:22::i;:::-;22912:11:::0;;:15:::1;:39::i;:::-;22890:61:::0;-1:-1:-1;22972:26:0::1;23001:59;23058:1;23001:52;22890:61:::0;23001:52;:14;23020:15;23001:18:::1;:35::i;:59::-;22972:88:::0;-1:-1:-1;23071:26:0::1;23100:52;23140:11:::0;23100:35:::1;:14:::0;23119:15;23100:18:::1;:35::i;:52::-;23071:81:::0;-1:-1:-1;23163:26:0::1;23192:62;23071:81:::0;23192:38:::1;:14:::0;23211:18;23192::::1;:38::i;:62::-;23163:91:::0;-1:-1:-1;23270:22:0;;23267:97:::1;;23328:15;::::0;23307:57:::1;::::0;23328:15:::1;::::0;::::1;-1:-1:-1::0;;;;;23328:15:0::1;23345:18:::0;23307:20:::1;:57::i;:::-;23380:22:::0;;23377:97:::1;;23438:15;::::0;23417:57:::1;::::0;-1:-1:-1;;;;;23438:15:0::1;23455:18:::0;23417:20:::1;:57::i;:::-;23511:1;23490:18;:22;:41;;;;;23530:1;23516:11;:15;23490:41;23487:104;;;23546:45;23559:11;23572:18;23546:12;:45::i;:::-;16308:1;;;;;;;;;;;;;16320:16:::0;:24;;-1:-1:-1;;;;16320:24:0;;;22174:1425::o;24951:366::-;-1:-1:-1;;;;;25052:25:0;;25032:4;25052:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25081:28:0;;;;;;:17;:28;;;;;;;;25052:57;25049:261;;;-1:-1:-1;25133:4:0;25126:11;;25049:261;-1:-1:-1;;;;;25168:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;25192:23:0;;;;;;:12;:23;;;;;;;;25168:47;25164:146;;;-1:-1:-1;25239:5:0;25232:12;;25164:146;-1:-1:-1;25293:5:0;25286:12;;25325:724;-1:-1:-1;;;;;25498:20:0;;25411:7;25498:20;;;:12;:20;;;;;;25411:7;;25498:20;;25495:275;;;25565:37;25590:11;;25565:20;25576:8;;25565:6;:10;;:20;;;;:::i;:37::-;25553:49;;25495:275;;;-1:-1:-1;;;;;25640:23:0;;;;;;:12;:23;;;;;;;;25637:133;;;25698:38;25724:11;;25698:21;25709:9;;25698:6;:10;;:21;;;;:::i;:38::-;25686:50;;25637:133;25794:13;;25791:185;;25873:4;25855:24;;;;:9;:24;;;;;;:39;;25884:9;25855:28;:39::i;:::-;25846:4;25828:24;;;;:9;:24;;;;;;;:66;;;;25918:42;;-1:-1:-1;;;;;25918:42:0;;;;;;;25950:9;12811:25:1;;12799:2;12784:18;;12766:76;25918:42:0;;;;;;;;25791:185;25999:21;:6;26010:9;25999:10;:21::i;23746:666::-;23896:16;;;23910:1;23896:16;;;;;;;;23872:21;;23896:16;;;;;;;;;;-1:-1:-1;23896:16:0;23872:40;;23941:4;23923;23928:1;23923:7;;;;;;-1:-1:-1;;;23923:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;23923:23:0;;;-1:-1:-1;;;;;23923:23:0;;;;;23967:15;;;;;;;;;-1:-1:-1;;;;;23967:15:0;-1:-1:-1;;;;;23967:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23957:4;23962:1;23957:7;;;;;;-1:-1:-1;;;23957:7:0;;;;;;;;;-1:-1:-1;;;;;23957:32:0;;;:7;;;;;;;;;:32;24034:15;;24002:62;;24019:4;;24034:15;;;;24052:11;24002:8;:62::i;:::-;24103:15;;:240;;-1:-1:-1;;;24103:240:0;;:15;;;;-1:-1:-1;;;;;24103:15:0;;:66;;:240;;24184:11;;24210:1;;24254:4;;24281;;24317:15;;24103:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24369:35;24386:11;24399:4;24369:35;;;;;;;:::i;:::-;;;;;;;;23746:666;;:::o;23607:127::-;23691:35;;-1:-1:-1;;;;;23691:27:0;;;:35;;;;;23719:6;;23691:35;;;;23719:6;23691:27;:35;;;;;;;;;;;;;;;;;;;;;23607:127;;:::o;24420:523::-;24600:15;;24568:62;;24585:4;;24600:15;;;-1:-1:-1;;;;;24600:15:0;24618:11;24568:8;:62::i;:::-;24673:15;;24877:17;;24673:262;;-1:-1:-1;;;24673:262:0;;24745:4;24673:262;;;6349:34:1;6399:18;;;6392:34;;;24791:1:0;6442:18:1;;;6435:34;;;6485:18;;;6478:34;-1:-1:-1;;;;;24877:17:0;;;6528:19:1;;;6521:44;24909:15:0;6581:19:1;;;6574:35;24673:15:0;;;;;;:31;;24712:9;;6283:19:1;;24673:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24420:523;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:539::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1347:7;-1:-1:-1;1406:2:1;1391:18;;1378:32;1419:33;1378:32;1419:33;:::i;:::-;1471:7;1461:17;;;1049:435;;;;;:::o;1489:466::-;1566:6;1574;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:2;;;1656:6;1648;1641:22;1603:2;1700:9;1687:23;1719:31;1744:5;1719:31;:::i;:::-;1769:5;-1:-1:-1;1826:2:1;1811:18;;1798:32;1839:33;1798:32;1839:33;:::i;:::-;1593:362;;1891:7;;-1:-1:-1;;;1945:2:1;1930:18;;;;1917:32;;1593:362::o;1960:392::-;2025:6;2033;2086:2;2074:9;2065:7;2061:23;2057:32;2054:2;;;2107:6;2099;2092:22;2054:2;2151:9;2138:23;2170:31;2195:5;2170:31;:::i;:::-;2220:5;-1:-1:-1;2277:2:1;2262:18;;2249:32;2290:30;2249:32;2290:30;:::i;2357:325::-;2425:6;2433;2486:2;2474:9;2465:7;2461:23;2457:32;2454:2;;;2507:6;2499;2492:22;2454:2;2551:9;2538:23;2570:31;2595:5;2570:31;:::i;:::-;2620:5;2672:2;2657:18;;;;2644:32;;-1:-1:-1;;;2444:238:1:o;2687:251::-;2743:6;2796:2;2784:9;2775:7;2771:23;2767:32;2764:2;;;2817:6;2809;2802:22;2764:2;2861:9;2848:23;2880:28;2902:5;2880:28;:::i;2943:255::-;3010:6;3063:2;3051:9;3042:7;3038:23;3034:32;3031:2;;;3084:6;3076;3069:22;3031:2;3121:9;3115:16;3140:28;3162:5;3140:28;:::i;3687:190::-;3746:6;3799:2;3787:9;3778:7;3774:23;3770:32;3767:2;;;3820:6;3812;3805:22;3767:2;-1:-1:-1;3848:23:1;;3757:120;-1:-1:-1;3757:120:1:o;3882:326::-;3959:6;3967;3975;4028:2;4016:9;4007:7;4003:23;3999:32;3996:2;;;4049:6;4041;4034:22;3996:2;-1:-1:-1;;4077:23:1;;;4147:2;4132:18;;4119:32;;-1:-1:-1;4198:2:1;4183:18;;;4170:32;;3986:222;-1:-1:-1;3986:222:1:o;4213:316::-;4301:6;4309;4317;4370:2;4358:9;4349:7;4345:23;4341:32;4338:2;;;4391:6;4383;4376:22;4338:2;4425:9;4419:16;4409:26;;4475:2;4464:9;4460:18;4454:25;4444:35;;4519:2;4508:9;4504:18;4498:25;4488:35;;4328:201;;;;;:::o;4534:463::-;4587:3;4625:5;4619:12;4652:6;4647:3;4640:19;4678:4;4707:2;4702:3;4698:12;4691:19;;4744:2;4737:5;4733:14;4765:3;4777:195;4791:6;4788:1;4785:13;4777:195;;;4856:13;;-1:-1:-1;;;;;4852:39:1;4840:52;;4912:12;;;;4947:15;;;;4888:1;4806:9;4777:195;;;-1:-1:-1;4988:3:1;;4595:402;-1:-1:-1;;;;;4595:402:1:o;7047:603::-;7159:4;7188:2;7217;7206:9;7199:21;7249:6;7243:13;7292:6;7287:2;7276:9;7272:18;7265:34;7317:4;7330:140;7344:6;7341:1;7338:13;7330:140;;;7439:14;;;7435:23;;7429:30;7405:17;;;7424:2;7401:26;7394:66;7359:10;;7330:140;;;7488:6;7485:1;7482:13;7479:2;;;7558:4;7553:2;7544:6;7533:9;7529:22;7525:31;7518:45;7479:2;-1:-1:-1;7634:2:1;7613:15;-1:-1:-1;;7609:29:1;7594:45;;;;7641:2;7590:54;;7168:482;-1:-1:-1;;;7168:482:1:o;9581:337::-;9783:2;9765:21;;;9822:2;9802:18;;;9795:30;-1:-1:-1;;;9856:2:1;9841:18;;9834:43;9909:2;9894:18;;9755:163::o;10734:356::-;10936:2;10918:21;;;10955:18;;;10948:30;11014:34;11009:2;10994:18;;10987:62;11081:2;11066:18;;10908:182::o;12847:332::-;13054:6;13043:9;13036:25;13097:2;13092;13081:9;13077:18;13070:30;13017:4;13117:56;13169:2;13158:9;13154:18;13146:6;13117:56;:::i;:::-;13109:64;13026:153;-1:-1:-1;;;;13026:153:1:o;13184:582::-;13483:6;13472:9;13465:25;13526:6;13521:2;13510:9;13506:18;13499:34;13569:3;13564:2;13553:9;13549:18;13542:31;13446:4;13590:57;13642:3;13631:9;13627:19;13619:6;13590:57;:::i;:::-;-1:-1:-1;;;;;13683:32:1;;;;13678:2;13663:18;;13656:60;-1:-1:-1;13747:3:1;13732:19;13725:35;13582:65;13455:311;-1:-1:-1;;;13455:311:1:o;13960:128::-;14000:3;14031:1;14027:6;14024:1;14021:13;14018:2;;;14037:18;;:::i;:::-;-1:-1:-1;14073:9:1;;14008:80::o;14093:217::-;14133:1;14159;14149:2;;-1:-1:-1;;;14184:31:1;;14238:4;14235:1;14228:15;14266:4;14191:1;14256:15;14149:2;-1:-1:-1;14295:9:1;;14139:171::o;14315:168::-;14355:7;14421:1;14417;14413:6;14409:14;14406:1;14403:21;14398:1;14391:9;14384:17;14380:45;14377:2;;;14428:18;;:::i;:::-;-1:-1:-1;14468:9:1;;14367:116::o;14488:125::-;14528:4;14556:1;14553;14550:8;14547:2;;;14561:18;;:::i;:::-;-1:-1:-1;14598:9:1;;14537:76::o;14618:380::-;14697:1;14693:12;;;;14740;;;14761:2;;14815:4;14807:6;14803:17;14793:27;;14761:2;14868;14860:6;14857:14;14837:18;14834:38;14831:2;;;14914:10;14909:3;14905:20;14902:1;14895:31;14949:4;14946:1;14939:15;14977:4;14974:1;14967:15;14831:2;;14673:325;;;:::o;15003:127::-;15064:10;15059:3;15055:20;15052:1;15045:31;15095:4;15092:1;15085:15;15119:4;15116:1;15109:15;15135:131;-1:-1:-1;;;;;15210:31:1;;15200:42;;15190:2;;15256:1;15253;15246:12;15271:118;15357:5;15350:13;15343:21;15336:5;15333:32;15323:2;;15379:1;15376;15369:12
Swarm Source
ipfs://0ee475a3c9d24ac146b9136e372e85d5a6bf3081804d63802c1c94d7e3016bbe
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.