Contract Address Details
0x37E5E8E10e857D61144704Ed1E1396dC17956835
- Token
- DogePad (DGP)
- Creator
- 0xba52d8–f7eb2e at 0x2b84ef–4c22c1
- Balance
- 0 Doge
- Tokens
-
Fetching tokens...
- Transactions
- 889 Transactions
- Transfers
- 2,802 Transfers
- Gas Used
- 39,671,970
- Last Balance Update
- 26534722
Transactions
Token Transfers
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
- Contract name:
- DogePad
- Optimization enabled
- true
- Compiler version
- v0.8.16+commit.07a7930e
- Optimization runs
- 200
- EVM Version
- default
- Verified at
- 2022-08-16T16:59:04.995290Z
Contract source code
// File: Utils.sol 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; 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; 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"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (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; address private asdasd; uint256 private _lockTime; 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 waiveOwnership() 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; } function getTime() public view returns (uint256) { return block.timestamp; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WWDOGE() 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 addLiquidityWDOGE( address token, uint amountTokenDesired, uint amountTokenMin, uint amountWDOGEMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountWDOGE, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactWDOGEForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForWDOGESupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } // File: DogePad.sol /* ___ ___ _ _ __ | \ ___ __ _ ___| _ \__ _ __| | __ _/ | / \ | |) / _ \/ _` / -_) _/ _` / _` | \ V / || () | |___/\___/\__, \___|_| \__,_\__,_| \_/|_(_)__/ |___/ ------------------------------------------------------------------------------------------------------------- */ pragma solidity ^0.8.4; contract DogePad is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "DogePad"; string private _symbol = "DGP"; uint8 private _decimals = 9; address payable public marketingWalletAddress = payable(0xBA52D856Be21eB7aFB2d9E7e01C2992945f7eb2E); address payable public teamWalletAddress = payable(0x8c1A172B07B9C87aaC90bf21836C34FD5B9eF592); address payable public treasuryWalletAddress = payable(0x2016fcb6d48aef2D68a42C3326E62Be1bcA796Ab); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; //Testnet: 0x2465086E721F68761e3275A54802C985FFd0D727 //Production: 0xB7ddC6414bf4F5515b52D8BdD69973Ae205ff101 address WDOGE = 0xB7ddC6414bf4F5515b52D8BdD69973Ae205ff101; //B //Testnet: 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3 //Production: 0x10ED43C718714eb63d5aA57B78B54704E256024E //D //Testnet: 0xf78CB981272840292a1275224aF55C917d106983 //Production: 0xa4EE06Ce40cb7e8c04E127c1F7D3dFB7F7039C81 address ROUTER = 0xa4EE06Ce40cb7e8c04E127c1F7D3dFB7F7039C81; 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 _isBlacklisted; uint256 public _buyLiquidityFee = 2; uint256 public _buyMarketingFee = 5; uint256 public _buyTreasuryFee = 1; uint256 public _buyTeamFee = 0; uint256 public _sellLiquidityFee = 2; uint256 public _sellMarketingFee = 7; uint256 public _sellTreasuryFee = 1; uint256 public _sellTeamFee = 0; uint256 public _liquidityShare = 30; uint256 public _marketingShare = 50; uint256 public _teamShare = 0; uint256 public _treasuryShare = 20; uint256 public _totalTaxIfBuying = 8; uint256 public _totalTaxIfSelling = 10; uint256 public _totalDistributionShares = 100; uint256 public _totalSupply = 1000000000 * 10**_decimals; uint256 public _walletMax = 10000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = 3000000 * 10**_decimals; IDEXRouter public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = true; bool public checkWalletLimit = false; bool public market_active=false; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); event inSwapAndLiquifyStatus(bool p); event stepLiquify(bool overMinimumTokenBalanceStatus,bool inSwapAndLiquifyStatus, bool isMarketPair_sender, bool swapAndLiquifyEnabledStatus); event stepFee(bool p); event teamGetBnb(uint256 amount); event marketingGetBnb(uint256 amount); event liquidityGetBnb(uint256 amount); event eventSwapAndLiquify(uint256 amount); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IDEXRouter _uniswapV2Router = IDEXRouter(ROUTER); uniswapPair = IDEXFactory(_uniswapV2Router.factory()) .createPair(WDOGE,address(this)); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee).add(_buyTreasuryFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee).add(_sellTreasuryFee); _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare).add(_treasuryShare); isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } 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 minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } 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 setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setBuyTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax,uint256 newTreasuryTax) external onlyOwner() { require(newLiquidityTax.add(newMarketingTax).add(newTeamTax).add(newTreasuryTax) <= 12, "Tax exceeds the 12%."); _buyLiquidityFee = newLiquidityTax; _buyMarketingFee = newMarketingTax; _buyTeamFee = newTeamTax; _buyTreasuryFee=newTreasuryTax; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee).add(_buyTreasuryFee); } function setSellTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax,uint256 newTreasuryTax) external onlyOwner() { require(newLiquidityTax.add(newMarketingTax).add(newTeamTax).add(newTreasuryTax) <= 13, "Tax exceeds the 13%."); _sellLiquidityFee = newLiquidityTax; _sellMarketingFee = newMarketingTax; _sellTeamFee = newTeamTax; _sellTreasuryFee=newTreasuryTax; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee).add(_sellTreasuryFee); } function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare,uint256 newTreasuryShare) external onlyOwner() { _liquidityShare = newLiquidityShare; _marketingShare = newMarketingShare; _teamShare = newTeamShare; _treasuryShare=newTreasuryShare; _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare).add(newTreasuryShare); } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { require(newLimit >= 15000000, "Max Wallet min 15000000."); _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setTeamWalletAddress(address newAddress) external onlyOwner() { teamWalletAddress = payable(newAddress); } function setTreasuryWalletAddress(address newAddress) external onlyOwner() { treasuryWalletAddress = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } 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(!_isBlacklisted[sender] && !_isBlacklisted[recipient], 'Blacklisted address'); if(!market_active && sender != owner() && recipient != owner()) require(market_active,"cannot trade before the market opening"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; emit stepLiquify(overMinimumTokenBalance,!inSwapAndLiquify,!isMarketPair[sender],swapAndLiquifyEnabled); if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isMarketPair[recipient] && recipient != owner()) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _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(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; emit eventSwapAndLiquify(amountReceived); uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2); uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee); uint256 amountTreasury = amountReceived.mul(_treasuryShare).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam).sub(amountTreasury); emit teamGetBnb(amountBNBTeam); emit marketingGetBnb(amountBNBMarketing); emit liquidityGetBnb(amountBNBLiquidity); if(amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if(amountBNBTeam > 0) transferToAddressETH(teamWalletAddress, amountBNBTeam); if(amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); if(amountTreasury > 0) transferToAddressETH(treasuryWalletAddress, amountTreasury); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = WDOGE; _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForWDOGESupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityWDOGE{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function edit_blacklistAddress(address account, bool value) external onlyOwner{ _isBlacklisted[account] = value; } function activate_market(bool active) external onlyOwner { market_active = active; } }
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"SwapAndLiquify","inputs":[{"type":"uint256","name":"tokensSwapped","internalType":"uint256","indexed":false},{"type":"uint256","name":"ethReceived","internalType":"uint256","indexed":false},{"type":"uint256","name":"tokensIntoLiqudity","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"SwapAndLiquifyEnabledUpdated","inputs":[{"type":"bool","name":"enabled","internalType":"bool","indexed":false}],"anonymous":false},{"type":"event","name":"SwapETHForTokens","inputs":[{"type":"uint256","name":"amountIn","internalType":"uint256","indexed":false},{"type":"address[]","name":"path","internalType":"address[]","indexed":false}],"anonymous":false},{"type":"event","name":"SwapTokensForETH","inputs":[{"type":"uint256","name":"amountIn","internalType":"uint256","indexed":false},{"type":"address[]","name":"path","internalType":"address[]","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"eventSwapAndLiquify","inputs":[{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"inSwapAndLiquifyStatus","inputs":[{"type":"bool","name":"p","internalType":"bool","indexed":false}],"anonymous":false},{"type":"event","name":"liquidityGetBnb","inputs":[{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"marketingGetBnb","inputs":[{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"stepFee","inputs":[{"type":"bool","name":"p","internalType":"bool","indexed":false}],"anonymous":false},{"type":"event","name":"stepLiquify","inputs":[{"type":"bool","name":"overMinimumTokenBalanceStatus","internalType":"bool","indexed":false},{"type":"bool","name":"inSwapAndLiquifyStatus","internalType":"bool","indexed":false},{"type":"bool","name":"isMarketPair_sender","internalType":"bool","indexed":false},{"type":"bool","name":"swapAndLiquifyEnabledStatus","internalType":"bool","indexed":false}],"anonymous":false},{"type":"event","name":"teamGetBnb","inputs":[{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_buyLiquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_buyMarketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_buyTeamFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_buyTreasuryFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"_isBlacklisted","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_liquidityShare","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_marketingShare","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_sellLiquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_sellMarketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_sellTeamFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_sellTreasuryFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_teamShare","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalDistributionShares","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalTaxIfBuying","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalTaxIfSelling","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_treasuryShare","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_walletMax","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"activate_market","inputs":[{"type":"bool","name":"active","internalType":"bool"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"checkWalletLimit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"deadAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"edit_blacklistAddress","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"bool","name":"value","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"enableDisableWalletLimit","inputs":[{"type":"bool","name":"newValue","internalType":"bool"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCirculatingSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getTime","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isExcludedFromFee","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isMarketPair","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"market_active","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"marketingWalletAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"minimumTokensBeforeSwap","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"minimumTokensBeforeSwapAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setBuyTaxes","inputs":[{"type":"uint256","name":"newLiquidityTax","internalType":"uint256"},{"type":"uint256","name":"newMarketingTax","internalType":"uint256"},{"type":"uint256","name":"newTeamTax","internalType":"uint256"},{"type":"uint256","name":"newTreasuryTax","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setDistributionSettings","inputs":[{"type":"uint256","name":"newLiquidityShare","internalType":"uint256"},{"type":"uint256","name":"newMarketingShare","internalType":"uint256"},{"type":"uint256","name":"newTeamShare","internalType":"uint256"},{"type":"uint256","name":"newTreasuryShare","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsExcludedFromFee","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"bool","name":"newValue","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMarketPairStatus","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"bool","name":"newValue","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMarketingWalletAddress","inputs":[{"type":"address","name":"newAddress","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setNumTokensBeforeSwap","inputs":[{"type":"uint256","name":"newLimit","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSellTaxes","inputs":[{"type":"uint256","name":"newLiquidityTax","internalType":"uint256"},{"type":"uint256","name":"newMarketingTax","internalType":"uint256"},{"type":"uint256","name":"newTeamTax","internalType":"uint256"},{"type":"uint256","name":"newTreasuryTax","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSwapAndLiquifyByLimitOnly","inputs":[{"type":"bool","name":"newValue","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSwapAndLiquifyEnabled","inputs":[{"type":"bool","name":"_enabled","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTeamWalletAddress","inputs":[{"type":"address","name":"newAddress","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTreasuryWalletAddress","inputs":[{"type":"address","name":"newAddress","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setWalletLimit","inputs":[{"type":"uint256","name":"newLimit","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapAndLiquifyByLimitOnly","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapAndLiquifyEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"teamWalletAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"treasuryWalletAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"uniswapPair","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IDEXRouter"}],"name":"uniswapV2Router","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"waiveOwnership","inputs":[]},{"type":"receive","stateMutability":"payable"}]
Contract Creation Code
0x60e0604052600760a090815266111bd9d954185960ca1b60c05260039062000028908262000615565b5060408051808201909152600381526204447560ec1b602082015260049062000052908262000615565b506005805474ba52d856be21eb7afb2d9e7e01c2992945f7eb2e096001600160a81b0319909116178155600680546001600160a01b0319908116738c1a172b07b9c87aac90bf21836c34fd5b9ef59217909155600780548216732016fcb6d48aef2d68a42c3326e62be1bca796ab17815561dead60805260088054831673b7ddc6414bf4f5515b52d8bdd69973ae205ff1011781556009805490931673a4ee06ce40cb7e8c04e127c1f7d3dfb7f7039c811783556002600f819055601094909455600160118190556000601281905560139590955560149283556015556016849055601e6017556032601855601993909355601a55601b91909155600a601c8190556064601d55620001659190620007f4565b6200017590633b9aca006200080c565b601e556005546200018b9060ff16600a620007f4565b6200019a90629896806200080c565b601f55600554620001b09060ff16600a620007f4565b620001bf90622dc6c06200080c565b6020556022805463ffffffff60a81b191661010160a81b179055348015620001e657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506009546040805163c45a015560e01b815290516001600160a01b0390921691829163c45a01559160048083019260209291908290030181865afa15801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a91906200082e565b6008546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031291906200082e565b602280546001600160a01b039283166001600160a01b031991821617909155602180549284169290911682179055601e54306000908152600b6020908152604080832094835293905291822055600190600c90620003786000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600c8352208054909216600117909155601154601254601054600f54620003f494620003e093928492916200149162000501821b17901c565b6200050160201b620014911790919060201c565b601b8190555062000426601554620003e0601654620003e06014546013546200050160201b620014911790919060201c565b601c8190555062000458601a54620003e0601954620003e06018546017546200050160201b620014911790919060201c565b601d556022546001600160a01b03166000908152600d60205260408120805460ff19166001179055601e5490600a906200048f3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601e54604051620004f291815260200190565b60405180910390a3506200086f565b60008062000510838562000859565b905083811015620005675760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059b57607f821691505b602082108103620005bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200061057600081815260208120601f850160051c81016020861015620005eb5750805b601f850160051c820191505b818110156200060c57828155600101620005f7565b5050505b505050565b81516001600160401b0381111562000631576200063162000570565b620006498162000642845462000586565b84620005c2565b602080601f831160018114620006815760008415620006685750858301515b600019600386901b1c1916600185901b1785556200060c565b600085815260208120601f198616915b82811015620006b25788860151825594840194600190910190840162000691565b5085821015620006d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007385781600019048211156200071c576200071c620006e1565b808516156200072a57918102915b93841c9390800290620006fc565b509250929050565b60008262000751575060016200056a565b8162000760575060006200056a565b81600181146200077957600281146200078457620007a4565b60019150506200056a565b60ff841115620007985762000798620006e1565b50506001821b6200056a565b5060208310610133831016604e8410600b8410161715620007c9575081810a6200056a565b620007d58383620006f7565b8060001904821115620007ec57620007ec620006e1565b029392505050565b60006200080560ff84168362000740565b9392505050565b6000816000190483118215151615620008295762000829620006e1565b500290565b6000602082840312156200084157600080fd5b81516001600160a01b03811681146200056757600080fd5b808201808211156200056a576200056a620006e1565b60805161270262000892600039600081816105540152610d2701526127026000f3fe6080604052600436106103bc5760003560e01c806388790a68116101f2578063c816841b1161010d578063dd62ed3e116100a0578063f1d5f5171161006f578063f1d5f51714610af7578063f2fde38b14610b17578063f480fec214610b37578063f872858a14610b5757600080fd5b8063dd62ed3e14610a5b578063e4bf1bed14610aa1578063ef422a1814610ac1578063f0cd1dac14610ae157600080fd5b8063d2d7ad83116100dc578063d2d7ad83146109f8578063d628df9c14610a0e578063da00097d14610a24578063dc44b6a014610a4557600080fd5b8063c816841b14610987578063c8607952146109a7578063cab03471146109bd578063d158272d146109d357600080fd5b8063a5d69d1f11610185578063b1c0b91211610154578063b1c0b9121461091b578063c469b6dd1461093b578063c49b9a8014610951578063c5d241891461097157600080fd5b8063a5d69d1f146108a5578063a83f53a7146108c5578063a9059cbb146108db578063b16f2bb4146108fb57600080fd5b806395d89b41116101c157806395d89b4114610845578063a073d37f1461085a578063a08e671f1461086f578063a457c2d71461088557600080fd5b806388790a68146107db5780638da5cb5b146107f1578063914eb66a1461080f5780639216effe1461082457600080fd5b80633b97084a116102e257806357a5802f1161027557806370a082311161024457806370a0823114610759578063807c2d9c1461078f57806382eefb43146107a5578063844d591c146107bb57600080fd5b806357a5802f146106f75780635efd930b1461070d57806361a23c691461072d5780636d0676961461074357600080fd5b80634a74bb02116102b15780634a74bb02146106735780634cb80fd5146106945780635342acb4146106b4578063557ed1ba146106e457600080fd5b80633b97084a146105ed5780633eaaf86b1461060d5780633ecad271146106235780633ef88edd1461065357600080fd5b806323b872dd1161035a5780632b112e49116103295780632b112e49146105765780632c4b23341461058b578063313ce567146105ab57806339509351146105cd57600080fd5b806323b872dd146104ec57806324fcf8cf1461050c5780632563ae831461052257806327c8f8351461054257600080fd5b80631694505e116103965780631694505e1461045b57806318160ddd1461047b5780631cdd3be31461049a5780631e08d440146104ca57600080fd5b806306fdde03146103c8578063095ea7b3146103f35780631245e3471461042357600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610b78565b6040516103ea91906122f0565b60405180910390f35b3480156103ff57600080fd5b5061041361040e36600461235a565b610c0a565b60405190151581526020016103ea565b34801561042f57600080fd5b50600654610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103ea565b34801561046757600080fd5b50602154610443906001600160a01b031681565b34801561048757600080fd5b50601e545b6040519081526020016103ea565b3480156104a657600080fd5b506104136104b5366004612384565b600e6020526000908152604090205460ff1681565b3480156104d657600080fd5b506104ea6104e53660046123af565b610c21565b005b3480156104f857600080fd5b506104136105073660046123ca565b610c72565b34801561051857600080fd5b5061048c60155481565b34801561052e57600080fd5b506104ea61053d3660046123af565b610cdd565b34801561054e57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000000081565b34801561058257600080fd5b5061048c610d25565b34801561059757600080fd5b506104ea6105a6366004612384565b610d6f565b3480156105b757600080fd5b5060055460405160ff90911681526020016103ea565b3480156105d957600080fd5b506104136105e836600461235a565b610dbb565b3480156105f957600080fd5b506104ea610608366004612406565b610df1565b34801561061957600080fd5b5061048c601e5481565b34801561062f57600080fd5b5061041361063e366004612384565b600d6020526000908152604090205460ff1681565b34801561065f57600080fd5b506104ea61066e36600461241f565b610e20565b34801561067f57600080fd5b5060225461041390600160a81b900460ff1681565b3480156106a057600080fd5b506104ea6106af366004612384565b610e7d565b3480156106c057600080fd5b506104136106cf366004612384565b600c6020526000908152604090205460ff1681565b3480156106f057600080fd5b504261048c565b34801561070357600080fd5b5061048c60175481565b34801561071957600080fd5b506104ea610728366004612384565b610ecf565b34801561073957600080fd5b5061048c60185481565b34801561074f57600080fd5b5061048c601a5481565b34801561076557600080fd5b5061048c610774366004612384565b6001600160a01b03166000908152600a602052604090205490565b34801561079b57600080fd5b5061048c601f5481565b3480156107b157600080fd5b5061048c601c5481565b3480156107c757600080fd5b506104ea6107d6366004612451565b610f1b565b3480156107e757600080fd5b5061048c60135481565b3480156107fd57600080fd5b506000546001600160a01b0316610443565b34801561081b57600080fd5b506104ea610f70565b34801561083057600080fd5b5060225461041390600160c01b900460ff1681565b34801561085157600080fd5b506103dd610fea565b34801561086657600080fd5b5060205461048c565b34801561087b57600080fd5b5061048c601d5481565b34801561089157600080fd5b506104136108a036600461235a565b610ff9565b3480156108b157600080fd5b506104ea6108c03660046123af565b611048565b3480156108d157600080fd5b5061048c60195481565b3480156108e757600080fd5b506104136108f636600461235a565b611090565b34801561090757600080fd5b506104ea610916366004612451565b61109d565b34801561092757600080fd5b50600754610443906001600160a01b031681565b34801561094757600080fd5b5061048c60125481565b34801561095d57600080fd5b506104ea61096c3660046123af565b6110f2565b34801561097d57600080fd5b5061048c60105481565b34801561099357600080fd5b50602254610443906001600160a01b031681565b3480156109b357600080fd5b5061048c60145481565b3480156109c957600080fd5b5061048c60165481565b3480156109df57600080fd5b506005546104439061010090046001600160a01b031681565b348015610a0457600080fd5b5061048c60205481565b348015610a1a57600080fd5b5061048c60115481565b348015610a3057600080fd5b5060225461041390600160b01b900460ff1681565b348015610a5157600080fd5b5061048c600f5481565b348015610a6757600080fd5b5061048c610a76366004612484565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610aad57600080fd5b506104ea610abc36600461241f565b611174565b348015610acd57600080fd5b506104ea610adc366004612451565b611222565b348015610aed57600080fd5b5061048c601b5481565b348015610b0357600080fd5b506104ea610b12366004612406565b611277565b348015610b2357600080fd5b506104ea610b32366004612384565b6112f9565b348015610b4357600080fd5b506104ea610b5236600461241f565b6113e3565b348015610b6357600080fd5b5060225461041390600160b81b900460ff1681565b606060038054610b87906124ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb3906124ae565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b5050505050905090565b6000610c173384846114f0565b5060015b92915050565b6000546001600160a01b03163314610c545760405162461bcd60e51b8152600401610c4b906124e8565b60405180910390fd5b60228054911515600160c01b0260ff60c01b19909216919091179055565b6000610c7f848484611614565b50610cd28433610ccd85604051806060016040528060288152602001612680602891396001600160a01b038a166000908152600b602090815260408083203384529091529020549190611b03565b6114f0565b5060015b9392505050565b6000546001600160a01b03163314610d075760405162461bcd60e51b8152600401610c4b906124e8565b60228054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152600a6020526040812054601e54610d6a91611b3d565b905090565b6000546001600160a01b03163314610d995760405162461bcd60e51b8152600401610c4b906124e8565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610c17918590610ccd9086611491565b6000546001600160a01b03163314610e1b5760405162461bcd60e51b8152600401610c4b906124e8565b602055565b6000546001600160a01b03163314610e4a5760405162461bcd60e51b8152600401610c4b906124e8565b601784905560188390556019829055601a819055610e7481610e6e84818888611491565b90611491565b601d5550505050565b6000546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610c4b906124e8565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610ef95760405162461bcd60e51b8152600401610c4b906124e8565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f455760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f9a5760405162461bcd60e51b8152600401610c4b906124e8565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060048054610b87906124ae565b6000610c173384610ccd856040518060600160405280602581526020016126a860259139336000908152600b602090815260408083206001600160a01b038d1684529091529020549190611b03565b6000546001600160a01b031633146110725760405162461bcd60e51b8152600401610c4b906124e8565b60228054911515600160b01b0260ff60b01b19909216919091179055565b6000610cd2338484611614565b6000546001600160a01b031633146110c75760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461111c5760405162461bcd60e51b8152600401610c4b906124e8565b60228054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061116990831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610c4b906124e8565b600c6111b082610e6e85818989611491565b11156111f55760405162461bcd60e51b81526020600482015260146024820152732a30bc1032bc31b2b2b239903a3432901899129760611b6044820152606401610c4b565b600f84905560108390556012829055601181905561121981610e6e84818888611491565b601b5550505050565b6000546001600160a01b0316331461124c5760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112a15760405162461bcd60e51b8152600401610c4b906124e8565b62e4e1c08110156112f45760405162461bcd60e51b815260206004820152601860248201527f4d61782057616c6c6574206d696e2031353030303030302e00000000000000006044820152606401610c4b565b601f55565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b0381166113885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c4b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461140d5760405162461bcd60e51b8152600401610c4b906124e8565b600d61141f82610e6e85818989611491565b11156114645760405162461bcd60e51b81526020600482015260146024820152732a30bc1032bc31b2b2b239903a3432901899929760611b6044820152606401610c4b565b601384905560148390556016829055601581905561148881610e6e84818888611491565b601c5550505050565b60008061149e8385612533565b905083811015610cd65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c4b565b6001600160a01b0383166115525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c4b565b6001600160a01b0382166115b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c4b565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661167a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c4b565b6001600160a01b0383166116dc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c4b565b6001600160a01b0384166000908152600e602052604090205460ff1615801561171e57506001600160a01b0383166000908152600e602052604090205460ff16155b6117605760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610c4b565b602254600160c01b900460ff1615801561178857506000546001600160a01b03858116911614155b80156117a257506000546001600160a01b03848116911614155b1561180f57602254600160c01b900460ff1661180f5760405162461bcd60e51b815260206004820152602660248201527f63616e6e6f74207472616465206265666f726520746865206d61726b6574206f60448201526570656e696e6760d01b6064820152608401610c4b565b602254600160a01b900460ff16156118335761182c848484611b7f565b9050610cd6565b306000908152600a602090815260408083205482546022546001600160a01b038a168652600d85529483902054835191831015808352600160a01b870460ff90811615968401969096529085161582850152600160a81b9095049093161515606084015290519092917f1fad8c17d8ced3651b0034c888f06409479ba9ae982b5d5919fa7d45976755dd919081900360800190a18080156118de5750602254600160a01b900460ff16155b801561190357506001600160a01b0386166000908152600d602052604090205460ff16155b80156119185750602254600160a81b900460ff165b1561193e57602254600160b01b900460ff16156119355760205491505b61193e82611c65565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600a9091529190912054611990918690611b03565b6001600160a01b0387166000908152600a6020908152604080832093909355600c90529081205460ff16806119dd57506001600160a01b0386166000908152600c602052604090205460ff165b6119f1576119ec878787611eb4565b6119f3565b845b602254909150600160b81b900460ff168015611a2857506001600160a01b0386166000908152600d602052604090205460ff16155b8015611a4257506000546001600160a01b03878116911614155b15611a7857601f54611a6d82610e6e896001600160a01b03166000908152600a602052604090205490565b1115611a7857600080fd5b6001600160a01b0386166000908152600a6020526040902054611a9b9082611491565b6001600160a01b038088166000818152600a602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611aef9085815260200190565b60405180910390a360019350505050610cd6565b60008184841115611b275760405162461bcd60e51b8152600401610c4b91906122f0565b506000611b348486612546565b95945050505050565b6000610cd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b03565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a90915291822054611bd0918490611b03565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611bff9083611491565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c539086815260200190565b60405180910390a35060019392505050565b6022805460ff60a01b1916600160a01b179055601d54601754600091611c9b91600291611c959182908790611fba565b9061203c565b90506000611ca98383611b3d565b9050611cb48161207e565b60405147808252907f4392400490f2e1381256cdefd182251d97bf9d33c3cb3f98f4631e63dc5e43d69060200160405180910390a16000611d0d611d04600260175461203c90919063ffffffff16565b601d5490611b3d565b90506000611d2f6002611c9584611c9560175488611fba90919063ffffffff16565b90506000611d4c83611c9560195487611fba90919063ffffffff16565b90506000611d6984611c95601a5488611fba90919063ffffffff16565b90506000611d8382611d7d85818a89611b3d565b90611b3d565b90507fdd5d17f8bac550a1fcd2d7da79e044db216d923fc4344988dc10903a577b830e83604051611db691815260200190565b60405180910390a16040518181527fbf35ce9e6c1288192cf24447a81f0dc45c9da1d0ea729d7ee3c3df4ac87a60f39060200160405180910390a16040518481527fe5eae915a30d9dae96d461f62d00d9061799266f874e9716685c86ccbf93ac709060200160405180910390a18015611e4557600554611e459061010090046001600160a01b0316826121b2565b8215611e6157600654611e61906001600160a01b0316846121b2565b600084118015611e715750600088115b15611e8057611e8088856121ed565b8115611e9c57600754611e9c906001600160a01b0316836121b2565b50506022805460ff60a01b1916905550505050505050565b6001600160a01b0383166000908152600d6020526040812054819060ff1615611ef857611ef16064611c95601b5486611fba90919063ffffffff16565b9050611f36565b6001600160a01b0384166000908152600d602052604090205460ff1615611f3657611f336064611c95601c5486611fba90919063ffffffff16565b90505b8015611fb057306000908152600a6020526040902054611f569082611491565b306000818152600a6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611fa79085815260200190565b60405180910390a35b611b348382611b3d565b600082600003611fcc57506000610c1b565b6000611fd88385612559565b905082611fe58583612578565b14610cd65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c4b565b6000610cd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c2565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120b3576120b361259a565b6001600160a01b0392831660209182029290920101526008548251911690829060019081106120e4576120e461259a565b6001600160a01b03928316602091820292909201015260215461210a91309116846114f0565b60215460405163b43d9bbb60e01b81526001600160a01b039091169063b43d9bbb906121439085906000908690309042906004016125f4565b600060405180830381600087803b15801561215d57600080fd5b505af1158015612171573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121a6929190612630565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156121e8573d6000803e3d6000fd5b505050565b6021546122059030906001600160a01b0316846114f0565b6021546001600160a01b031663e6529ab482308560008061222e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612296573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122bb9190612651565b5050505050565b600081836122e35760405162461bcd60e51b8152600401610c4b91906122f0565b506000611b348486612578565b600060208083528351808285015260005b8181101561231d57858101830151858201604001528201612301565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461235557600080fd5b919050565b6000806040838503121561236d57600080fd5b6123768361233e565b946020939093013593505050565b60006020828403121561239657600080fd5b610cd68261233e565b8035801515811461235557600080fd5b6000602082840312156123c157600080fd5b610cd68261239f565b6000806000606084860312156123df57600080fd5b6123e88461233e565b92506123f66020850161233e565b9150604084013590509250925092565b60006020828403121561241857600080fd5b5035919050565b6000806000806080858703121561243557600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561246457600080fd5b61246d8361233e565b915061247b6020840161239f565b90509250929050565b6000806040838503121561249757600080fd5b6124a08361233e565b915061247b6020840161233e565b600181811c908216806124c257607f821691505b6020821081036124e257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1b57610c1b61251d565b81810381811115610c1b57610c1b61251d565b60008160001904831182151516156125735761257361251d565b500290565b60008261259557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156125e95781516001600160a01b0316875295820195908201906001016125c4565b509495945050505050565b85815284602082015260a06040820152600061261360a08301866125b0565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061264960408301846125b0565b949350505050565b60008060006060848603121561266657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208ad24cbe86ddcbc2166063e1136144fd1c17f593e5cab6bd959c52aa2a3d439964736f6c63430008100033
Deployed ByteCode
0x6080604052600436106103bc5760003560e01c806388790a68116101f2578063c816841b1161010d578063dd62ed3e116100a0578063f1d5f5171161006f578063f1d5f51714610af7578063f2fde38b14610b17578063f480fec214610b37578063f872858a14610b5757600080fd5b8063dd62ed3e14610a5b578063e4bf1bed14610aa1578063ef422a1814610ac1578063f0cd1dac14610ae157600080fd5b8063d2d7ad83116100dc578063d2d7ad83146109f8578063d628df9c14610a0e578063da00097d14610a24578063dc44b6a014610a4557600080fd5b8063c816841b14610987578063c8607952146109a7578063cab03471146109bd578063d158272d146109d357600080fd5b8063a5d69d1f11610185578063b1c0b91211610154578063b1c0b9121461091b578063c469b6dd1461093b578063c49b9a8014610951578063c5d241891461097157600080fd5b8063a5d69d1f146108a5578063a83f53a7146108c5578063a9059cbb146108db578063b16f2bb4146108fb57600080fd5b806395d89b41116101c157806395d89b4114610845578063a073d37f1461085a578063a08e671f1461086f578063a457c2d71461088557600080fd5b806388790a68146107db5780638da5cb5b146107f1578063914eb66a1461080f5780639216effe1461082457600080fd5b80633b97084a116102e257806357a5802f1161027557806370a082311161024457806370a0823114610759578063807c2d9c1461078f57806382eefb43146107a5578063844d591c146107bb57600080fd5b806357a5802f146106f75780635efd930b1461070d57806361a23c691461072d5780636d0676961461074357600080fd5b80634a74bb02116102b15780634a74bb02146106735780634cb80fd5146106945780635342acb4146106b4578063557ed1ba146106e457600080fd5b80633b97084a146105ed5780633eaaf86b1461060d5780633ecad271146106235780633ef88edd1461065357600080fd5b806323b872dd1161035a5780632b112e49116103295780632b112e49146105765780632c4b23341461058b578063313ce567146105ab57806339509351146105cd57600080fd5b806323b872dd146104ec57806324fcf8cf1461050c5780632563ae831461052257806327c8f8351461054257600080fd5b80631694505e116103965780631694505e1461045b57806318160ddd1461047b5780631cdd3be31461049a5780631e08d440146104ca57600080fd5b806306fdde03146103c8578063095ea7b3146103f35780631245e3471461042357600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610b78565b6040516103ea91906122f0565b60405180910390f35b3480156103ff57600080fd5b5061041361040e36600461235a565b610c0a565b60405190151581526020016103ea565b34801561042f57600080fd5b50600654610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103ea565b34801561046757600080fd5b50602154610443906001600160a01b031681565b34801561048757600080fd5b50601e545b6040519081526020016103ea565b3480156104a657600080fd5b506104136104b5366004612384565b600e6020526000908152604090205460ff1681565b3480156104d657600080fd5b506104ea6104e53660046123af565b610c21565b005b3480156104f857600080fd5b506104136105073660046123ca565b610c72565b34801561051857600080fd5b5061048c60155481565b34801561052e57600080fd5b506104ea61053d3660046123af565b610cdd565b34801561054e57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000dead81565b34801561058257600080fd5b5061048c610d25565b34801561059757600080fd5b506104ea6105a6366004612384565b610d6f565b3480156105b757600080fd5b5060055460405160ff90911681526020016103ea565b3480156105d957600080fd5b506104136105e836600461235a565b610dbb565b3480156105f957600080fd5b506104ea610608366004612406565b610df1565b34801561061957600080fd5b5061048c601e5481565b34801561062f57600080fd5b5061041361063e366004612384565b600d6020526000908152604090205460ff1681565b34801561065f57600080fd5b506104ea61066e36600461241f565b610e20565b34801561067f57600080fd5b5060225461041390600160a81b900460ff1681565b3480156106a057600080fd5b506104ea6106af366004612384565b610e7d565b3480156106c057600080fd5b506104136106cf366004612384565b600c6020526000908152604090205460ff1681565b3480156106f057600080fd5b504261048c565b34801561070357600080fd5b5061048c60175481565b34801561071957600080fd5b506104ea610728366004612384565b610ecf565b34801561073957600080fd5b5061048c60185481565b34801561074f57600080fd5b5061048c601a5481565b34801561076557600080fd5b5061048c610774366004612384565b6001600160a01b03166000908152600a602052604090205490565b34801561079b57600080fd5b5061048c601f5481565b3480156107b157600080fd5b5061048c601c5481565b3480156107c757600080fd5b506104ea6107d6366004612451565b610f1b565b3480156107e757600080fd5b5061048c60135481565b3480156107fd57600080fd5b506000546001600160a01b0316610443565b34801561081b57600080fd5b506104ea610f70565b34801561083057600080fd5b5060225461041390600160c01b900460ff1681565b34801561085157600080fd5b506103dd610fea565b34801561086657600080fd5b5060205461048c565b34801561087b57600080fd5b5061048c601d5481565b34801561089157600080fd5b506104136108a036600461235a565b610ff9565b3480156108b157600080fd5b506104ea6108c03660046123af565b611048565b3480156108d157600080fd5b5061048c60195481565b3480156108e757600080fd5b506104136108f636600461235a565b611090565b34801561090757600080fd5b506104ea610916366004612451565b61109d565b34801561092757600080fd5b50600754610443906001600160a01b031681565b34801561094757600080fd5b5061048c60125481565b34801561095d57600080fd5b506104ea61096c3660046123af565b6110f2565b34801561097d57600080fd5b5061048c60105481565b34801561099357600080fd5b50602254610443906001600160a01b031681565b3480156109b357600080fd5b5061048c60145481565b3480156109c957600080fd5b5061048c60165481565b3480156109df57600080fd5b506005546104439061010090046001600160a01b031681565b348015610a0457600080fd5b5061048c60205481565b348015610a1a57600080fd5b5061048c60115481565b348015610a3057600080fd5b5060225461041390600160b01b900460ff1681565b348015610a5157600080fd5b5061048c600f5481565b348015610a6757600080fd5b5061048c610a76366004612484565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610aad57600080fd5b506104ea610abc36600461241f565b611174565b348015610acd57600080fd5b506104ea610adc366004612451565b611222565b348015610aed57600080fd5b5061048c601b5481565b348015610b0357600080fd5b506104ea610b12366004612406565b611277565b348015610b2357600080fd5b506104ea610b32366004612384565b6112f9565b348015610b4357600080fd5b506104ea610b5236600461241f565b6113e3565b348015610b6357600080fd5b5060225461041390600160b81b900460ff1681565b606060038054610b87906124ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb3906124ae565b8015610c005780601f10610bd557610100808354040283529160200191610c00565b820191906000526020600020905b815481529060010190602001808311610be357829003601f168201915b5050505050905090565b6000610c173384846114f0565b5060015b92915050565b6000546001600160a01b03163314610c545760405162461bcd60e51b8152600401610c4b906124e8565b60405180910390fd5b60228054911515600160c01b0260ff60c01b19909216919091179055565b6000610c7f848484611614565b50610cd28433610ccd85604051806060016040528060288152602001612680602891396001600160a01b038a166000908152600b602090815260408083203384529091529020549190611b03565b6114f0565b5060015b9392505050565b6000546001600160a01b03163314610d075760405162461bcd60e51b8152600401610c4b906124e8565b60228054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03166000908152600a6020526040812054601e54610d6a91611b3d565b905090565b6000546001600160a01b03163314610d995760405162461bcd60e51b8152600401610c4b906124e8565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610c17918590610ccd9086611491565b6000546001600160a01b03163314610e1b5760405162461bcd60e51b8152600401610c4b906124e8565b602055565b6000546001600160a01b03163314610e4a5760405162461bcd60e51b8152600401610c4b906124e8565b601784905560188390556019829055601a819055610e7481610e6e84818888611491565b90611491565b601d5550505050565b6000546001600160a01b03163314610ea75760405162461bcd60e51b8152600401610c4b906124e8565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610ef95760405162461bcd60e51b8152600401610c4b906124e8565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f455760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f9a5760405162461bcd60e51b8152600401610c4b906124e8565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060048054610b87906124ae565b6000610c173384610ccd856040518060600160405280602581526020016126a860259139336000908152600b602090815260408083206001600160a01b038d1684529091529020549190611b03565b6000546001600160a01b031633146110725760405162461bcd60e51b8152600401610c4b906124e8565b60228054911515600160b01b0260ff60b01b19909216919091179055565b6000610cd2338484611614565b6000546001600160a01b031633146110c75760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461111c5760405162461bcd60e51b8152600401610c4b906124e8565b60228054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061116990831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610c4b906124e8565b600c6111b082610e6e85818989611491565b11156111f55760405162461bcd60e51b81526020600482015260146024820152732a30bc1032bc31b2b2b239903a3432901899129760611b6044820152606401610c4b565b600f84905560108390556012829055601181905561121981610e6e84818888611491565b601b5550505050565b6000546001600160a01b0316331461124c5760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112a15760405162461bcd60e51b8152600401610c4b906124e8565b62e4e1c08110156112f45760405162461bcd60e51b815260206004820152601860248201527f4d61782057616c6c6574206d696e2031353030303030302e00000000000000006044820152606401610c4b565b601f55565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610c4b906124e8565b6001600160a01b0381166113885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c4b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461140d5760405162461bcd60e51b8152600401610c4b906124e8565b600d61141f82610e6e85818989611491565b11156114645760405162461bcd60e51b81526020600482015260146024820152732a30bc1032bc31b2b2b239903a3432901899929760611b6044820152606401610c4b565b601384905560148390556016829055601581905561148881610e6e84818888611491565b601c5550505050565b60008061149e8385612533565b905083811015610cd65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c4b565b6001600160a01b0383166115525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c4b565b6001600160a01b0382166115b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c4b565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661167a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c4b565b6001600160a01b0383166116dc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c4b565b6001600160a01b0384166000908152600e602052604090205460ff1615801561171e57506001600160a01b0383166000908152600e602052604090205460ff16155b6117605760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610c4b565b602254600160c01b900460ff1615801561178857506000546001600160a01b03858116911614155b80156117a257506000546001600160a01b03848116911614155b1561180f57602254600160c01b900460ff1661180f5760405162461bcd60e51b815260206004820152602660248201527f63616e6e6f74207472616465206265666f726520746865206d61726b6574206f60448201526570656e696e6760d01b6064820152608401610c4b565b602254600160a01b900460ff16156118335761182c848484611b7f565b9050610cd6565b306000908152600a602090815260408083205482546022546001600160a01b038a168652600d85529483902054835191831015808352600160a01b870460ff90811615968401969096529085161582850152600160a81b9095049093161515606084015290519092917f1fad8c17d8ced3651b0034c888f06409479ba9ae982b5d5919fa7d45976755dd919081900360800190a18080156118de5750602254600160a01b900460ff16155b801561190357506001600160a01b0386166000908152600d602052604090205460ff16155b80156119185750602254600160a81b900460ff165b1561193e57602254600160b01b900460ff16156119355760205491505b61193e82611c65565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600a9091529190912054611990918690611b03565b6001600160a01b0387166000908152600a6020908152604080832093909355600c90529081205460ff16806119dd57506001600160a01b0386166000908152600c602052604090205460ff165b6119f1576119ec878787611eb4565b6119f3565b845b602254909150600160b81b900460ff168015611a2857506001600160a01b0386166000908152600d602052604090205460ff16155b8015611a4257506000546001600160a01b03878116911614155b15611a7857601f54611a6d82610e6e896001600160a01b03166000908152600a602052604090205490565b1115611a7857600080fd5b6001600160a01b0386166000908152600a6020526040902054611a9b9082611491565b6001600160a01b038088166000818152600a602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611aef9085815260200190565b60405180910390a360019350505050610cd6565b60008184841115611b275760405162461bcd60e51b8152600401610c4b91906122f0565b506000611b348486612546565b95945050505050565b6000610cd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b03565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a90915291822054611bd0918490611b03565b6001600160a01b038086166000908152600a60205260408082209390935590851681522054611bff9083611491565b6001600160a01b038085166000818152600a602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c539086815260200190565b60405180910390a35060019392505050565b6022805460ff60a01b1916600160a01b179055601d54601754600091611c9b91600291611c959182908790611fba565b9061203c565b90506000611ca98383611b3d565b9050611cb48161207e565b60405147808252907f4392400490f2e1381256cdefd182251d97bf9d33c3cb3f98f4631e63dc5e43d69060200160405180910390a16000611d0d611d04600260175461203c90919063ffffffff16565b601d5490611b3d565b90506000611d2f6002611c9584611c9560175488611fba90919063ffffffff16565b90506000611d4c83611c9560195487611fba90919063ffffffff16565b90506000611d6984611c95601a5488611fba90919063ffffffff16565b90506000611d8382611d7d85818a89611b3d565b90611b3d565b90507fdd5d17f8bac550a1fcd2d7da79e044db216d923fc4344988dc10903a577b830e83604051611db691815260200190565b60405180910390a16040518181527fbf35ce9e6c1288192cf24447a81f0dc45c9da1d0ea729d7ee3c3df4ac87a60f39060200160405180910390a16040518481527fe5eae915a30d9dae96d461f62d00d9061799266f874e9716685c86ccbf93ac709060200160405180910390a18015611e4557600554611e459061010090046001600160a01b0316826121b2565b8215611e6157600654611e61906001600160a01b0316846121b2565b600084118015611e715750600088115b15611e8057611e8088856121ed565b8115611e9c57600754611e9c906001600160a01b0316836121b2565b50506022805460ff60a01b1916905550505050505050565b6001600160a01b0383166000908152600d6020526040812054819060ff1615611ef857611ef16064611c95601b5486611fba90919063ffffffff16565b9050611f36565b6001600160a01b0384166000908152600d602052604090205460ff1615611f3657611f336064611c95601c5486611fba90919063ffffffff16565b90505b8015611fb057306000908152600a6020526040902054611f569082611491565b306000818152600a6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611fa79085815260200190565b60405180910390a35b611b348382611b3d565b600082600003611fcc57506000610c1b565b6000611fd88385612559565b905082611fe58583612578565b14610cd65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c4b565b6000610cd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c2565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120b3576120b361259a565b6001600160a01b0392831660209182029290920101526008548251911690829060019081106120e4576120e461259a565b6001600160a01b03928316602091820292909201015260215461210a91309116846114f0565b60215460405163b43d9bbb60e01b81526001600160a01b039091169063b43d9bbb906121439085906000908690309042906004016125f4565b600060405180830381600087803b15801561215d57600080fd5b505af1158015612171573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121a6929190612630565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156121e8573d6000803e3d6000fd5b505050565b6021546122059030906001600160a01b0316846114f0565b6021546001600160a01b031663e6529ab482308560008061222e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612296573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122bb9190612651565b5050505050565b600081836122e35760405162461bcd60e51b8152600401610c4b91906122f0565b506000611b348486612578565b600060208083528351808285015260005b8181101561231d57858101830151858201604001528201612301565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461235557600080fd5b919050565b6000806040838503121561236d57600080fd5b6123768361233e565b946020939093013593505050565b60006020828403121561239657600080fd5b610cd68261233e565b8035801515811461235557600080fd5b6000602082840312156123c157600080fd5b610cd68261239f565b6000806000606084860312156123df57600080fd5b6123e88461233e565b92506123f66020850161233e565b9150604084013590509250925092565b60006020828403121561241857600080fd5b5035919050565b6000806000806080858703121561243557600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561246457600080fd5b61246d8361233e565b915061247b6020840161239f565b90509250929050565b6000806040838503121561249757600080fd5b6124a08361233e565b915061247b6020840161233e565b600181811c908216806124c257607f821691505b6020821081036124e257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1b57610c1b61251d565b81810381811115610c1b57610c1b61251d565b60008160001904831182151516156125735761257361251d565b500290565b60008261259557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156125e95781516001600160a01b0316875295820195908201906001016125c4565b509495945050505050565b85815284602082015260a06040820152600061261360a08301866125b0565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061264960408301846125b0565b949350505050565b60008060006060848603121561266657600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208ad24cbe86ddcbc2166063e1136144fd1c17f593e5cab6bd959c52aa2a3d439964736f6c63430008100033