ERC-20
Overview
Max Total Supply
100,000,000,000,000 PUMP
Holders
149
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
95,000,000,000 PUMPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PUMP
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /* Library Definitions */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); 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, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); 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); } contract ERC20 is Context, IERC20 { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /* Main Contract */ contract PUMP is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapRouter; address public uniswapPair; address public mkWallet; bool public tradingActive = false; bool public swapEnabled = false; bool public limitsInEffect = true; uint8 private _decimals = 18; uint256 public maxTxnSize; uint256 public swapTokensAtAmount; uint256 public maxWalletSize; uint256 public buyMarketFee; uint256 public sellMarketFee; uint256 public tokensForMarket; bool private swapping; constructor( string memory name_, string memory symbol_, uint8 decimals_, uint256 totalNativeSupply_, address marketingWallet_, uint256 buyFee_, uint256 sellFee_ ) ERC20(name_, symbol_) { _decimals = decimals_; mkWallet = marketingWallet_; buyMarketFee = buyFee_; sellMarketFee = sellFee_; if (block.chainid == 1) uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); else if (block.chainid == 11155111) uniswapRouter = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008); uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH()); uint256 totalSupply = totalNativeSupply_ * (10 ** _decimals); swapTokensAtAmount = (totalSupply * 5) / 1000; // 0.5% swap wallet maxTxnSize = (totalSupply * 1) / 100; // 1% from total supply maxTxnSize maxWalletSize = (totalSupply * 2) / 100; // 2% from total supply maxWalletSize _mint(msg.sender, totalSupply); } receive() external payable {} function decimals() public view override returns (uint8) { return _decimals; } function openTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function enableTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function updateMaxWallet(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWalletSize lower than 0.5%"); maxWalletSize = newNum * (10**18); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateMaxTxn(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTxnSize lower than 0.1%"); maxTxnSize = newNum * (10**18); } function setBuy(uint256 newMarketFee) external onlyOwner { buyMarketFee = newMarketFee; require(buyMarketFee <= 25, "Must keep fees at 25% or less"); } function setSell(uint256 newMarketFee) external onlyOwner { sellMarketFee = newMarketFee; require(sellMarketFee <= 25, "Must keep fees at 25% or less"); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarket; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) return; if (contractBalance > swapTokensAtAmount * 20) contractBalance = swapTokensAtAmount * 20; swapTokensForEth(contractBalance); tokensForMarket = 0; (success, ) = address(mkWallet).call{ value: address(this).balance }(""); } 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] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && from != address(this) && to != owner() && to != address(this) && to != address(0) && to != address(0xdead) && !swapping) { require(tradingActive, "Trading is not active."); //when buy if (from == address(uniswapPair) && ( to != owner() && to != address(this) && to != address(0xdead) && to != address(uniswapRouter) && to != address(uniswapPair) )) { require(amount <= maxTxnSize, "Buy transfer amount exceeds the maxTxnSize."); require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } //when sell else if (to == address(uniswapPair) && ( from != owner() && from != address(this) && from != address(0xdead) && from != address(uniswapRouter) && from != address(uniswapPair) )) { require(amount <= maxTxnSize, "Sell transfer amount exceeds the maxTxnSize."); } else if ( to != owner() && to != address(this) && to != address(0xdead) && to != address(uniswapRouter) && to != address(uniswapPair) ) { require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } } } uint256 contractBalance = balanceOf(address(this)); bool canSwap = contractBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && from != address(uniswapPair) && from != owner() && from != address(this) && from != address(0xdead) && to != owner() && to != address(this) && to != address(0xdead) ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if ( from == owner() || from == address(this) || from == address(0xdead) || to == owner() || to == address(this) || to == address(0xdead) ) takeFee = false; uint256 fee = 0; if (takeFee) { // on sell if (to == address(uniswapPair) && sellMarketFee > 0) { fee = amount.mul(sellMarketFee).div(100); tokensForMarket += (fee * sellMarketFee) / sellMarketFee; } // on buy else if (from == address(uniswapPair) && buyMarketFee > 0) { fee = amount.mul(buyMarketFee).div(100); tokensForMarket += (fee * buyMarketFee) / buyMarketFee; } if (fee > 0) super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"totalNativeSupply_","type":"uint256"},{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"buyFee_","type":"uint256"},{"internalType":"uint256","name":"sellFee_","type":"uint256"}],"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":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"enableTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"}],"name":"setBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"}],"name":"setSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f600860146101000a81548160ff0219169083151502179055505f600860156101000a81548160ff0219169083151502179055506001600860166101000a81548160ff0219169083151502179055506012600860176101000a81548160ff021916908360ff1602179055503480156200007b575f80fd5b5060405162005348380380620053488339818101604052810190620000a191906200094a565b8686815f9081620000b3919062000c64565b508060019081620000c5919062000c64565b505050620000e8620000dc620004ac60201b60201c565b620004b360201b60201c565b84600860176101000a81548160ff021916908360ff1602179055508260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c8190555080600d8190555060014603620001b457737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000215565b62aa36a74603620002145773c532a74256d3db42d0bf7a0400fefdbad769400860065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000280573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a6919062000d48565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000353919062000d48565b6040518363ffffffff1660e01b81526004016200037292919062000d89565b6020604051808303815f875af11580156200038f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b5919062000d48565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600860179054906101000a900460ff16600a62000413919062000f31565b8562000420919062000f81565b90506103e860058262000434919062000f81565b62000440919062000ff8565b600a81905550606460018262000457919062000f81565b62000463919062000ff8565b60098190555060646002826200047a919062000f81565b62000486919062000ff8565b600b819055506200049e33826200057660201b60201c565b505050505050505062001113565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005de906200108d565b60405180910390fd5b620005fa5f8383620006e760201b60201c565b8060025f8282546200060d9190620010ad565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620006629190620010ad565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006c89190620010f8565b60405180910390a3620006e35f8383620006ec60201b60201c565b5050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000752826200070a565b810181811067ffffffffffffffff821117156200077457620007736200071a565b5b80604052505050565b5f62000788620006f1565b905062000796828262000747565b919050565b5f67ffffffffffffffff821115620007b857620007b76200071a565b5b620007c3826200070a565b9050602081019050919050565b5f5b83811015620007ef578082015181840152602081019050620007d2565b5f8484015250505050565b5f620008106200080a846200079b565b6200077d565b9050828152602081018484840111156200082f576200082e62000706565b5b6200083c848285620007d0565b509392505050565b5f82601f8301126200085b576200085a62000702565b5b81516200086d848260208601620007fa565b91505092915050565b5f60ff82169050919050565b6200088d8162000876565b811462000898575f80fd5b50565b5f81519050620008ab8162000882565b92915050565b5f819050919050565b620008c581620008b1565b8114620008d0575f80fd5b50565b5f81519050620008e381620008ba565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200091482620008e9565b9050919050565b620009268162000908565b811462000931575f80fd5b50565b5f8151905062000944816200091b565b92915050565b5f805f805f805f60e0888a031215620009685762000967620006fa565b5b5f88015167ffffffffffffffff811115620009885762000987620006fe565b5b620009968a828b0162000844565b975050602088015167ffffffffffffffff811115620009ba57620009b9620006fe565b5b620009c88a828b0162000844565b9650506040620009db8a828b016200089b565b9550506060620009ee8a828b01620008d3565b945050608062000a018a828b0162000934565b93505060a062000a148a828b01620008d3565b92505060c062000a278a828b01620008d3565b91505092959891949750929550565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a8557607f821691505b60208210810362000a9b5762000a9a62000a40565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000aff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ac2565b62000b0b868362000ac2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000b4c62000b4662000b4084620008b1565b62000b23565b620008b1565b9050919050565b5f819050919050565b62000b678362000b2c565b62000b7f62000b768262000b53565b84845462000ace565b825550505050565b5f90565b62000b9562000b87565b62000ba281848462000b5c565b505050565b5b8181101562000bc95762000bbd5f8262000b8b565b60018101905062000ba8565b5050565b601f82111562000c185762000be28162000aa1565b62000bed8462000ab3565b8101602085101562000bfd578190505b62000c1562000c0c8562000ab3565b83018262000ba7565b50505b505050565b5f82821c905092915050565b5f62000c3a5f198460080262000c1d565b1980831691505092915050565b5f62000c54838362000c29565b9150826002028217905092915050565b62000c6f8262000a36565b67ffffffffffffffff81111562000c8b5762000c8a6200071a565b5b62000c97825462000a6d565b62000ca482828562000bcd565b5f60209050601f83116001811462000cda575f841562000cc5578287015190505b62000cd1858262000c47565b86555062000d40565b601f19841662000cea8662000aa1565b5f5b8281101562000d135784890151825560018201915060208501945060208101905062000cec565b8683101562000d33578489015162000d2f601f89168262000c29565b8355505b6001600288020188555050505b505050505050565b5f6020828403121562000d605762000d5f620006fa565b5b5f62000d6f8482850162000934565b91505092915050565b62000d838162000908565b82525050565b5f60408201905062000d9e5f83018562000d78565b62000dad602083018462000d78565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000e3e5780860481111562000e165762000e1562000db4565b5b600185161562000e265780820291505b808102905062000e368562000de1565b945062000df6565b94509492505050565b5f8262000e58576001905062000f2a565b8162000e67575f905062000f2a565b816001811462000e80576002811462000e8b5762000ec1565b600191505062000f2a565b60ff84111562000ea05762000e9f62000db4565b5b8360020a91508482111562000eba5762000eb962000db4565b5b5062000f2a565b5060208310610133831016604e8410600b841016171562000efb5782820a90508381111562000ef55762000ef462000db4565b5b62000f2a565b62000f0a848484600162000ded565b9250905081840481111562000f245762000f2362000db4565b5b81810290505b9392505050565b5f62000f3d82620008b1565b915062000f4a8362000876565b925062000f797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e47565b905092915050565b5f62000f8d82620008b1565b915062000f9a83620008b1565b925082820262000faa81620008b1565b9150828204841483151762000fc45762000fc362000db4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200100482620008b1565b91506200101183620008b1565b92508262001024576200102362000fcb565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001075601f836200102f565b915062001082826200103f565b602082019050919050565b5f6020820190508181035f830152620010a68162001067565b9050919050565b5f620010b982620008b1565b9150620010c683620008b1565b9250828201905080821115620010e157620010e062000db4565b5b92915050565b620010f281620008b1565b82525050565b5f6020820190506200110d5f830184620010e7565b92915050565b61422780620011215f395ff3fe6080604052600436106101fc575f3560e01c8063751039fc1161010c578063c02174ca1161009f578063d257b34f1161006e578063d257b34f14610703578063dd62ed3e1461073f578063e2f456051461077b578063e4a1b95f146107a5578063f2fde38b146107cf57610203565b8063c02174ca14610671578063c816841b1461069b578063c8da6596146106c5578063c9567bf9146106ed57610203565b8063a457c2d7116100db578063a457c2d7146105a7578063a9059cbb146105e3578063a90eab8c1461061f578063bbc0c7421461064757610203565b8063751039fc146104ff5780638da5cb5b146105295780638f3fa8601461055357806395d89b411461057d57610203565b80632bc4d48b1161018f5780634a62bb651161015e5780634a62bb651461042f5780636ddd17131461045957806370a0823114610483578063715018a6146104bf578063735de9f7146104d557610203565b80632bc4d48b14610377578063313ce5671461039f57806335b5fb63146103c957806339509351146103f357610203565b80631c499ab0116101cb5780631c499ab0146102bf5780631f7ea8da146102e757806323b872dd146103115780632b5f295a1461034d57610203565b806306fdde031461020757806309494a0114610231578063095ea7b31461025957806318160ddd1461029557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107f7565b6040516102289190612f48565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190612f9f565b610886565b005b348015610264575f80fd5b5061027f600480360381019061027a9190613024565b610952565b60405161028c919061307c565b60405180910390f35b3480156102a0575f80fd5b506102a961096f565b6040516102b691906130a4565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e09190612f9f565b610978565b005b3480156102f2575f80fd5b506102fb610a87565b60405161030891906130a4565b60405180910390f35b34801561031c575f80fd5b50610337600480360381019061033291906130bd565b610a8d565b604051610344919061307c565b60405180910390f35b348015610358575f80fd5b50610361610b7f565b60405161036e91906130a4565b60405180910390f35b348015610382575f80fd5b5061039d60048036038101906103989190612f9f565b610b85565b005b3480156103aa575f80fd5b506103b3610c94565b6040516103c09190613128565b60405180910390f35b3480156103d4575f80fd5b506103dd610caa565b6040516103ea91906130a4565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190613024565b610cb0565b604051610426919061307c565b60405180910390f35b34801561043a575f80fd5b50610443610d57565b604051610450919061307c565b60405180910390f35b348015610464575f80fd5b5061046d610d6a565b60405161047a919061307c565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190613141565b610d7d565b6040516104b691906130a4565b60405180910390f35b3480156104ca575f80fd5b506104d3610dc3565b005b3480156104e0575f80fd5b506104e9610e4a565b6040516104f691906131c7565b60405180910390f35b34801561050a575f80fd5b50610513610e6f565b604051610520919061307c565b60405180910390f35b348015610534575f80fd5b5061053d610f0d565b60405161054a91906131ef565b60405180910390f35b34801561055e575f80fd5b50610567610f35565b60405161057491906130a4565b60405180910390f35b348015610588575f80fd5b50610591610f3b565b60405161059e9190612f48565b60405180910390f35b3480156105b2575f80fd5b506105cd60048036038101906105c89190613024565b610fcb565b6040516105da919061307c565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190613024565b6110b1565b604051610616919061307c565b60405180910390f35b34801561062a575f80fd5b5061064560048036038101906106409190613265565b6110ce565b005b348015610652575f80fd5b5061065b611351565b604051610668919061307c565b60405180910390f35b34801561067c575f80fd5b50610685611364565b60405161069291906131ef565b60405180910390f35b3480156106a6575f80fd5b506106af611389565b6040516106bc91906131ef565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e69190612f9f565b6113ae565b005b3480156106f8575f80fd5b5061070161147a565b005b34801561070e575f80fd5b5061072960048036038101906107249190612f9f565b61152e565b604051610736919061307c565b60405180910390f35b34801561074a575f80fd5b50610765600480360381019061076091906132b5565b611682565b60405161077291906130a4565b60405180910390f35b348015610786575f80fd5b5061078f611704565b60405161079c91906130a4565b60405180910390f35b3480156107b0575f80fd5b506107b961170a565b6040516107c691906130a4565b60405180910390f35b3480156107da575f80fd5b506107f560048036038101906107f09190613141565b611710565b005b60605f805461080590613320565b80601f016020809104026020016040519081016040528092919081815260200182805461083190613320565b801561087c5780601f106108535761010080835404028352916020019161087c565b820191905f5260205f20905b81548152906001019060200180831161085f57829003601f168201915b5050505050905090565b61088e611806565b73ffffffffffffffffffffffffffffffffffffffff166108ac610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f99061339a565b60405180910390fd5b80600d819055506019600d54111561094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094690613402565b60405180910390fd5b50565b5f61096561095e611806565b848461180d565b6001905092915050565b5f600254905090565b610980611806565b73ffffffffffffffffffffffffffffffffffffffff1661099e610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb9061339a565b60405180910390fd5b670de0b6b3a76400006103e86005610a0a61096f565b610a14919061344d565b610a1e91906134bb565b610a2891906134bb565b811015610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a619061355b565b60405180910390fd5b670de0b6b3a764000081610a7e919061344d565b600b8190555050565b600e5481565b5f610a998484846119d0565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ae0611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906135e9565b60405180910390fd5b610b7385610b6b611806565b85840361180d565b60019150509392505050565b60095481565b610b8d611806565b73ffffffffffffffffffffffffffffffffffffffff16610bab610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061339a565b60405180910390fd5b670de0b6b3a76400006103e86001610c1761096f565b610c21919061344d565b610c2b91906134bb565b610c3591906134bb565b811015610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e90613677565b60405180910390fd5b670de0b6b3a764000081610c8b919061344d565b60098190555050565b5f600860179054906101000a900460ff16905090565b600d5481565b5f610d4d610cbc611806565b848460045f610cc9611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d489190613695565b61180d565b6001905092915050565b600860169054906101000a900460ff1681565b600860159054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dcb611806565b73ffffffffffffffffffffffffffffffffffffffff16610de9610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e369061339a565b60405180910390fd5b610e485f612824565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e78611806565b73ffffffffffffffffffffffffffffffffffffffff16610e96610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee39061339a565b60405180910390fd5b5f600860166101000a81548160ff0219169083151502179055506001905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b606060018054610f4a90613320565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690613320565b8015610fc15780601f10610f9857610100808354040283529160200191610fc1565b820191905f5260205f20905b815481529060010190602001808311610fa457829003601f168201915b5050505050905090565b5f8060045f610fd8611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990613738565b60405180910390fd5b6110a661109d611806565b8585840361180d565b600191505092915050565b5f6110c46110bd611806565b84846119d0565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611180959493929190613765565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f60405160200161120a939291906137b6565b6040516020818303038152906040528051906020012090505f828260405160200161123692919061385f565b6040516020818303038152906040528051906020012090505f6001828888886040515f81526020016040526040516112719493929190613895565b6020604051602081039080840390855afa158015611291573d5f803e3d5ffd5b5050506020604051035190506112a5610f0d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990613922565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600860149054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113b6611806565b73ffffffffffffffffffffffffffffffffffffffff166113d4610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114219061339a565b60405180910390fd5b80600c819055506019600c541115611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90613402565b60405180910390fd5b50565b611482611806565b73ffffffffffffffffffffffffffffffffffffffff166114a0610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061339a565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b5f611537611806565b73ffffffffffffffffffffffffffffffffffffffff16611555610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061339a565b60405180910390fd5b620186a060016115b961096f565b6115c3919061344d565b6115cd91906134bb565b82101561160f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611606906139b0565b60405180910390fd5b6103e8600561161c61096f565b611626919061344d565b61163091906134bb565b821115611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613a3e565b60405180910390fd5b81600a8190555060019050919050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b600c5481565b611718611806565b73ffffffffffffffffffffffffffffffffffffffff16611736610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461178c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117839061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613acc565b60405180910390fd5b61180381612824565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613b5a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613be8565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119c391906130a4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613d04565b60405180910390fd5b5f8103611ac357611abe83835f6128e7565b61281f565b600860169054906101000a900460ff16156122b557611ae0610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b4757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b865750611b56610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bbe57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c30575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c485750600f5f9054906101000a900460ff16155b156122b457600860149054906101000a900460ff16611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613d6c565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e4f5750611cfb610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d6257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df5575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e4e575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ef657600954811115611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090613dfa565b60405180910390fd5b600b54611ea583610d7d565b82611eb09190613695565b1115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee890613e62565b60405180910390fd5b6122b3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120a95750611f55610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fbc57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff6575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561204f575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a8575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120f8576009548111156120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613ef0565b60405180910390fd5b6122b2565b612100610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561216757503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121a1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121fa575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612253575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122b157600b5461226483610d7d565b8261226f9190613695565b11156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613e62565b60405180910390fd5b5b5b5b5b5b5f6122bf30610d7d565b90505f600a5482101590508080156122e35750600860159054906101000a900460ff165b80156122fb5750600f5f9054906101000a900460ff16155b8015612354575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123935750612363610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123cb57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612405575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124445750612414610f0d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124b6575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124f7576001600f5f6101000a81548160ff0219169083151502179055506124dd612b5f565b5f600f5f6101000a81548160ff0219169083151502179055505b5f600f5f9054906101000a900460ff16159050612512610f0d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061257657503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125ae575061dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125eb57506125bc610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061262157503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80612659575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15612662575f90505b5f811561280f5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156126c657505f600d54115b1561272c576126f360646126e5600d5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600d54600d5482612706919061344d565b61271091906134bb565b600e5f8282546127209190613695565b925050819055506127ec565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561278957505f600c54115b156127eb576127b660646127a8600c5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600c54600c54826127c9919061344d565b6127d391906134bb565b600e5f8282546127e39190613695565b925050819055505b5b5f811115612800576127ff8730836128e7565b5b808561280c9190613f0e565b94505b61281a8787876128e7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ba90613d04565b60405180910390fd5b6129ce838383612c7e565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4990613fb1565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612ae29190613695565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4691906130a4565b60405180910390a3612b59848484612c83565b50505050565b5f612b6930610d7d565b90505f600e5490505f80831480612b7f57505f82145b15612b8c57505050612c52565b6014600a54612b9b919061344d565b831115612bb4576014600a54612bb1919061344d565b92505b612bbd83612c88565b5f600e8190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0990613ffc565b5f6040518083038185875af1925050503d805f8114612c43576040519150601f19603f3d011682016040523d82523d5f602084013e612c48565b606091505b5050809150505050505b565b5f8183612c61919061344d565b905092915050565b5f8183612c7691906134bb565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115612ca457612ca3614010565b5b604051908082528060200260200182016040528015612cd25781602001602082028036833780820191505090505b50905030815f81518110612ce957612ce861403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db1919061407e565b81600181518110612dc557612dc461403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e2b3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461180d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612e8d959493929190614199565b5f604051808303815f87803b158015612ea4575f80fd5b505af1158015612eb6573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612ef5578082015181840152602081019050612eda565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f1a82612ebe565b612f248185612ec8565b9350612f34818560208601612ed8565b612f3d81612f00565b840191505092915050565b5f6020820190508181035f830152612f608184612f10565b905092915050565b5f80fd5b5f819050919050565b612f7e81612f6c565b8114612f88575f80fd5b50565b5f81359050612f9981612f75565b92915050565b5f60208284031215612fb457612fb3612f68565b5b5f612fc184828501612f8b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ff382612fca565b9050919050565b61300381612fe9565b811461300d575f80fd5b50565b5f8135905061301e81612ffa565b92915050565b5f806040838503121561303a57613039612f68565b5b5f61304785828601613010565b925050602061305885828601612f8b565b9150509250929050565b5f8115159050919050565b61307681613062565b82525050565b5f60208201905061308f5f83018461306d565b92915050565b61309e81612f6c565b82525050565b5f6020820190506130b75f830184613095565b92915050565b5f805f606084860312156130d4576130d3612f68565b5b5f6130e186828701613010565b93505060206130f286828701613010565b925050604061310386828701612f8b565b9150509250925092565b5f60ff82169050919050565b6131228161310d565b82525050565b5f60208201905061313b5f830184613119565b92915050565b5f6020828403121561315657613155612f68565b5b5f61316384828501613010565b91505092915050565b5f819050919050565b5f61318f61318a61318584612fca565b61316c565b612fca565b9050919050565b5f6131a082613175565b9050919050565b5f6131b182613196565b9050919050565b6131c1816131a7565b82525050565b5f6020820190506131da5f8301846131b8565b92915050565b6131e981612fe9565b82525050565b5f6020820190506132025f8301846131e0565b92915050565b6132118161310d565b811461321b575f80fd5b50565b5f8135905061322c81613208565b92915050565b5f819050919050565b61324481613232565b811461324e575f80fd5b50565b5f8135905061325f8161323b565b92915050565b5f805f6060848603121561327c5761327b612f68565b5b5f6132898682870161321e565b935050602061329a86828701613251565b92505060406132ab86828701613251565b9150509250925092565b5f80604083850312156132cb576132ca612f68565b5b5f6132d885828601613010565b92505060206132e985828601613010565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061333757607f821691505b60208210810361334a576133496132f3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613384602083612ec8565b915061338f82613350565b602082019050919050565b5f6020820190508181035f8301526133b181613378565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c6573730000005f82015250565b5f6133ec601d83612ec8565b91506133f7826133b8565b602082019050919050565b5f6020820190508181035f830152613419816133e0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61345782612f6c565b915061346283612f6c565b925082820261347081612f6c565b9150828204841483151761348757613486613420565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c582612f6c565b91506134d083612f6c565b9250826134e0576134df61348e565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f77657220745f8201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b5f613545602883612ec8565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6135d3602883612ec8565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e5f8201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b5f613661602583612ec8565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b5f61369f82612f6c565b91506136aa83612f6c565b92508282019050808211156136c2576136c1613420565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613722602583612ec8565b915061372d826136c8565b604082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b61375f81613232565b82525050565b5f60a0820190506137785f830188613756565b6137856020830187613756565b6137926040830186613756565b61379f6060830185613095565b6137ac60808301846131e0565b9695505050505050565b5f6060820190506137c95f830186613756565b6137d66020830185613756565b6137e36040830184613095565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6138296002836137eb565b9150613834826137f5565b600282019050919050565b5f819050919050565b61385961385482613232565b61383f565b82525050565b5f6138698261381d565b91506138758285613848565b6020820191506138858284613848565b6020820191508190509392505050565b5f6080820190506138a85f830187613756565b6138b56020830186613119565b6138c26040830185613756565b6138cf6060830184613756565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61390c601183612ec8565b9150613917826138d8565b602082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61399a603583612ec8565b91506139a582613940565b604082019050919050565b5f6020820190508181035f8301526139c78161398e565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613a28603483612ec8565b9150613a33826139ce565b604082019050919050565b5f6020820190508181035f830152613a5581613a1c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613ab6602683612ec8565b9150613ac182613a5c565b604082019050919050565b5f6020820190508181035f830152613ae381613aaa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613b44602483612ec8565b9150613b4f82613aea565b604082019050919050565b5f6020820190508181035f830152613b7181613b38565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bd2602283612ec8565b9150613bdd82613b78565b604082019050919050565b5f6020820190508181035f830152613bff81613bc6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c60602583612ec8565b9150613c6b82613c06565b604082019050919050565b5f6020820190508181035f830152613c8d81613c54565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613cee602383612ec8565b9150613cf982613c94565b604082019050919050565b5f6020820190508181035f830152613d1b81613ce2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613d56601683612ec8565b9150613d6182613d22565b602082019050919050565b5f6020820190508181035f830152613d8381613d4a565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b5f613de4602b83612ec8565b9150613def82613d8a565b604082019050919050565b5f6020820190508181035f830152613e1181613dd8565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613e4c601383612ec8565b9150613e5782613e18565b602082019050919050565b5f6020820190508181035f830152613e7981613e40565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b5f613eda602c83612ec8565b9150613ee582613e80565b604082019050919050565b5f6020820190508181035f830152613f0781613ece565b9050919050565b5f613f1882612f6c565b9150613f2383612f6c565b9250828203905081811115613f3b57613f3a613420565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613f9b602683612ec8565b9150613fa682613f41565b604082019050919050565b5f6020820190508181035f830152613fc881613f8f565b9050919050565b5f81905092915050565b50565b5f613fe75f83613fcf565b9150613ff282613fd9565b5f82019050919050565b5f61400682613fdc565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061407881612ffa565b92915050565b5f6020828403121561409357614092612f68565b5b5f6140a08482850161406a565b91505092915050565b5f819050919050565b5f6140cc6140c76140c2846140a9565b61316c565b612f6c565b9050919050565b6140dc816140b2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61411481612fe9565b82525050565b5f614125838361410b565b60208301905092915050565b5f602082019050919050565b5f614147826140e2565b61415181856140ec565b935061415c836140fc565b805f5b8381101561418c578151614173888261411a565b975061417e83614131565b92505060018101905061415f565b5085935050505092915050565b5f60a0820190506141ac5f830188613095565b6141b960208301876140d3565b81810360408301526141cb818661413d565b90506141da60608301856131e0565b6141e76080830184613095565b969550505050505056fea2646970667358221220cb3ad8bcfcc554366bbaafa415a0ef3d832272678a6ad2ca90434be9107562ca64736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000e5eff9f564d32f7e05d875cd3158aa48107f7a4800000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000750554d5020495400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450554d5000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101fc575f3560e01c8063751039fc1161010c578063c02174ca1161009f578063d257b34f1161006e578063d257b34f14610703578063dd62ed3e1461073f578063e2f456051461077b578063e4a1b95f146107a5578063f2fde38b146107cf57610203565b8063c02174ca14610671578063c816841b1461069b578063c8da6596146106c5578063c9567bf9146106ed57610203565b8063a457c2d7116100db578063a457c2d7146105a7578063a9059cbb146105e3578063a90eab8c1461061f578063bbc0c7421461064757610203565b8063751039fc146104ff5780638da5cb5b146105295780638f3fa8601461055357806395d89b411461057d57610203565b80632bc4d48b1161018f5780634a62bb651161015e5780634a62bb651461042f5780636ddd17131461045957806370a0823114610483578063715018a6146104bf578063735de9f7146104d557610203565b80632bc4d48b14610377578063313ce5671461039f57806335b5fb63146103c957806339509351146103f357610203565b80631c499ab0116101cb5780631c499ab0146102bf5780631f7ea8da146102e757806323b872dd146103115780632b5f295a1461034d57610203565b806306fdde031461020757806309494a0114610231578063095ea7b31461025957806318160ddd1461029557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107f7565b6040516102289190612f48565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190612f9f565b610886565b005b348015610264575f80fd5b5061027f600480360381019061027a9190613024565b610952565b60405161028c919061307c565b60405180910390f35b3480156102a0575f80fd5b506102a961096f565b6040516102b691906130a4565b60405180910390f35b3480156102ca575f80fd5b506102e560048036038101906102e09190612f9f565b610978565b005b3480156102f2575f80fd5b506102fb610a87565b60405161030891906130a4565b60405180910390f35b34801561031c575f80fd5b50610337600480360381019061033291906130bd565b610a8d565b604051610344919061307c565b60405180910390f35b348015610358575f80fd5b50610361610b7f565b60405161036e91906130a4565b60405180910390f35b348015610382575f80fd5b5061039d60048036038101906103989190612f9f565b610b85565b005b3480156103aa575f80fd5b506103b3610c94565b6040516103c09190613128565b60405180910390f35b3480156103d4575f80fd5b506103dd610caa565b6040516103ea91906130a4565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190613024565b610cb0565b604051610426919061307c565b60405180910390f35b34801561043a575f80fd5b50610443610d57565b604051610450919061307c565b60405180910390f35b348015610464575f80fd5b5061046d610d6a565b60405161047a919061307c565b60405180910390f35b34801561048e575f80fd5b506104a960048036038101906104a49190613141565b610d7d565b6040516104b691906130a4565b60405180910390f35b3480156104ca575f80fd5b506104d3610dc3565b005b3480156104e0575f80fd5b506104e9610e4a565b6040516104f691906131c7565b60405180910390f35b34801561050a575f80fd5b50610513610e6f565b604051610520919061307c565b60405180910390f35b348015610534575f80fd5b5061053d610f0d565b60405161054a91906131ef565b60405180910390f35b34801561055e575f80fd5b50610567610f35565b60405161057491906130a4565b60405180910390f35b348015610588575f80fd5b50610591610f3b565b60405161059e9190612f48565b60405180910390f35b3480156105b2575f80fd5b506105cd60048036038101906105c89190613024565b610fcb565b6040516105da919061307c565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190613024565b6110b1565b604051610616919061307c565b60405180910390f35b34801561062a575f80fd5b5061064560048036038101906106409190613265565b6110ce565b005b348015610652575f80fd5b5061065b611351565b604051610668919061307c565b60405180910390f35b34801561067c575f80fd5b50610685611364565b60405161069291906131ef565b60405180910390f35b3480156106a6575f80fd5b506106af611389565b6040516106bc91906131ef565b60405180910390f35b3480156106d0575f80fd5b506106eb60048036038101906106e69190612f9f565b6113ae565b005b3480156106f8575f80fd5b5061070161147a565b005b34801561070e575f80fd5b5061072960048036038101906107249190612f9f565b61152e565b604051610736919061307c565b60405180910390f35b34801561074a575f80fd5b50610765600480360381019061076091906132b5565b611682565b60405161077291906130a4565b60405180910390f35b348015610786575f80fd5b5061078f611704565b60405161079c91906130a4565b60405180910390f35b3480156107b0575f80fd5b506107b961170a565b6040516107c691906130a4565b60405180910390f35b3480156107da575f80fd5b506107f560048036038101906107f09190613141565b611710565b005b60605f805461080590613320565b80601f016020809104026020016040519081016040528092919081815260200182805461083190613320565b801561087c5780601f106108535761010080835404028352916020019161087c565b820191905f5260205f20905b81548152906001019060200180831161085f57829003601f168201915b5050505050905090565b61088e611806565b73ffffffffffffffffffffffffffffffffffffffff166108ac610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f99061339a565b60405180910390fd5b80600d819055506019600d54111561094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094690613402565b60405180910390fd5b50565b5f61096561095e611806565b848461180d565b6001905092915050565b5f600254905090565b610980611806565b73ffffffffffffffffffffffffffffffffffffffff1661099e610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb9061339a565b60405180910390fd5b670de0b6b3a76400006103e86005610a0a61096f565b610a14919061344d565b610a1e91906134bb565b610a2891906134bb565b811015610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a619061355b565b60405180910390fd5b670de0b6b3a764000081610a7e919061344d565b600b8190555050565b600e5481565b5f610a998484846119d0565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ae0611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906135e9565b60405180910390fd5b610b7385610b6b611806565b85840361180d565b60019150509392505050565b60095481565b610b8d611806565b73ffffffffffffffffffffffffffffffffffffffff16610bab610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061339a565b60405180910390fd5b670de0b6b3a76400006103e86001610c1761096f565b610c21919061344d565b610c2b91906134bb565b610c3591906134bb565b811015610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e90613677565b60405180910390fd5b670de0b6b3a764000081610c8b919061344d565b60098190555050565b5f600860179054906101000a900460ff16905090565b600d5481565b5f610d4d610cbc611806565b848460045f610cc9611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d489190613695565b61180d565b6001905092915050565b600860169054906101000a900460ff1681565b600860159054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dcb611806565b73ffffffffffffffffffffffffffffffffffffffff16610de9610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e369061339a565b60405180910390fd5b610e485f612824565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610e78611806565b73ffffffffffffffffffffffffffffffffffffffff16610e96610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee39061339a565b60405180910390fd5b5f600860166101000a81548160ff0219169083151502179055506001905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b606060018054610f4a90613320565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690613320565b8015610fc15780601f10610f9857610100808354040283529160200191610fc1565b820191905f5260205f20905b815481529060010190602001808311610fa457829003601f168201915b5050505050905090565b5f8060045f610fd8611806565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990613738565b60405180910390fd5b6110a661109d611806565b8585840361180d565b600191505092915050565b5f6110c46110bd611806565b84846119d0565b6001905092915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001611180959493929190613765565b6040516020818303038152906040528051906020012090505f7f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e67000000000000000000000000000000000000815250805190602001205f60405160200161120a939291906137b6565b6040516020818303038152906040528051906020012090505f828260405160200161123692919061385f565b6040516020818303038152906040528051906020012090505f6001828888886040515f81526020016040526040516112719493929190613895565b6020604051602081039080840390855afa158015611291573d5f803e3d5ffd5b5050506020604051035190506112a5610f0d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990613922565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600860149054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113b6611806565b73ffffffffffffffffffffffffffffffffffffffff166113d4610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114219061339a565b60405180910390fd5b80600c819055506019600c541115611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90613402565b60405180910390fd5b50565b611482611806565b73ffffffffffffffffffffffffffffffffffffffff166114a0610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061339a565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b5f611537611806565b73ffffffffffffffffffffffffffffffffffffffff16611555610f0d565b73ffffffffffffffffffffffffffffffffffffffff16146115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061339a565b60405180910390fd5b620186a060016115b961096f565b6115c3919061344d565b6115cd91906134bb565b82101561160f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611606906139b0565b60405180910390fd5b6103e8600561161c61096f565b611626919061344d565b61163091906134bb565b821115611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613a3e565b60405180910390fd5b81600a8190555060019050919050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b600c5481565b611718611806565b73ffffffffffffffffffffffffffffffffffffffff16611736610f0d565b73ffffffffffffffffffffffffffffffffffffffff161461178c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117839061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613acc565b60405180910390fd5b61180381612824565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613b5a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e090613be8565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119c391906130a4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613d04565b60405180910390fd5b5f8103611ac357611abe83835f6128e7565b61281f565b600860169054906101000a900460ff16156122b557611ae0610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b4757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b865750611b56610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bbe57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c30575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c485750600f5f9054906101000a900460ff16155b156122b457600860149054906101000a900460ff16611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613d6c565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e4f5750611cfb610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d6257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d9c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df5575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e4e575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ef657600954811115611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090613dfa565b60405180910390fd5b600b54611ea583610d7d565b82611eb09190613695565b1115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee890613e62565b60405180910390fd5b6122b3565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120a95750611f55610f0d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fbc57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff6575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561204f575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a8575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120f8576009548111156120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613ef0565b60405180910390fd5b6122b2565b612100610f0d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561216757503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121a1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121fa575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612253575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122b157600b5461226483610d7d565b8261226f9190613695565b11156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613e62565b60405180910390fd5b5b5b5b5b5b5f6122bf30610d7d565b90505f600a5482101590508080156122e35750600860159054906101000a900460ff165b80156122fb5750600f5f9054906101000a900460ff16155b8015612354575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123935750612363610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123cb57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612405575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124445750612414610f0d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124b6575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124f7576001600f5f6101000a81548160ff0219169083151502179055506124dd612b5f565b5f600f5f6101000a81548160ff0219169083151502179055505b5f600f5f9054906101000a900460ff16159050612512610f0d565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061257657503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125ae575061dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b806125eb57506125bc610f0d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061262157503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80612659575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15612662575f90505b5f811561280f5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156126c657505f600d54115b1561272c576126f360646126e5600d5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600d54600d5482612706919061344d565b61271091906134bb565b600e5f8282546127209190613695565b925050819055506127ec565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561278957505f600c54115b156127eb576127b660646127a8600c5488612c5490919063ffffffff16565b612c6990919063ffffffff16565b9050600c54600c54826127c9919061344d565b6127d391906134bb565b600e5f8282546127e39190613695565b925050819055505b5b5f811115612800576127ff8730836128e7565b5b808561280c9190613f0e565b94505b61281a8787876128e7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90613c76565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ba90613d04565b60405180910390fd5b6129ce838383612c7e565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4990613fb1565b60405180910390fd5b81810360035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612ae29190613695565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4691906130a4565b60405180910390a3612b59848484612c83565b50505050565b5f612b6930610d7d565b90505f600e5490505f80831480612b7f57505f82145b15612b8c57505050612c52565b6014600a54612b9b919061344d565b831115612bb4576014600a54612bb1919061344d565b92505b612bbd83612c88565b5f600e8190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0990613ffc565b5f6040518083038185875af1925050503d805f8114612c43576040519150601f19603f3d011682016040523d82523d5f602084013e612c48565b606091505b5050809150505050505b565b5f8183612c61919061344d565b905092915050565b5f8183612c7691906134bb565b905092915050565b505050565b505050565b5f600267ffffffffffffffff811115612ca457612ca3614010565b5b604051908082528060200260200182016040528015612cd25781602001602082028036833780820191505090505b50905030815f81518110612ce957612ce861403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db1919061407e565b81600181518110612dc557612dc461403d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e2b3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461180d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612e8d959493929190614199565b5f604051808303815f87803b158015612ea4575f80fd5b505af1158015612eb6573d5f803e3d5ffd5b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612ef5578082015181840152602081019050612eda565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612f1a82612ebe565b612f248185612ec8565b9350612f34818560208601612ed8565b612f3d81612f00565b840191505092915050565b5f6020820190508181035f830152612f608184612f10565b905092915050565b5f80fd5b5f819050919050565b612f7e81612f6c565b8114612f88575f80fd5b50565b5f81359050612f9981612f75565b92915050565b5f60208284031215612fb457612fb3612f68565b5b5f612fc184828501612f8b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612ff382612fca565b9050919050565b61300381612fe9565b811461300d575f80fd5b50565b5f8135905061301e81612ffa565b92915050565b5f806040838503121561303a57613039612f68565b5b5f61304785828601613010565b925050602061305885828601612f8b565b9150509250929050565b5f8115159050919050565b61307681613062565b82525050565b5f60208201905061308f5f83018461306d565b92915050565b61309e81612f6c565b82525050565b5f6020820190506130b75f830184613095565b92915050565b5f805f606084860312156130d4576130d3612f68565b5b5f6130e186828701613010565b93505060206130f286828701613010565b925050604061310386828701612f8b565b9150509250925092565b5f60ff82169050919050565b6131228161310d565b82525050565b5f60208201905061313b5f830184613119565b92915050565b5f6020828403121561315657613155612f68565b5b5f61316384828501613010565b91505092915050565b5f819050919050565b5f61318f61318a61318584612fca565b61316c565b612fca565b9050919050565b5f6131a082613175565b9050919050565b5f6131b182613196565b9050919050565b6131c1816131a7565b82525050565b5f6020820190506131da5f8301846131b8565b92915050565b6131e981612fe9565b82525050565b5f6020820190506132025f8301846131e0565b92915050565b6132118161310d565b811461321b575f80fd5b50565b5f8135905061322c81613208565b92915050565b5f819050919050565b61324481613232565b811461324e575f80fd5b50565b5f8135905061325f8161323b565b92915050565b5f805f6060848603121561327c5761327b612f68565b5b5f6132898682870161321e565b935050602061329a86828701613251565b92505060406132ab86828701613251565b9150509250925092565b5f80604083850312156132cb576132ca612f68565b5b5f6132d885828601613010565b92505060206132e985828601613010565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061333757607f821691505b60208210810361334a576133496132f3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613384602083612ec8565b915061338f82613350565b602082019050919050565b5f6020820190508181035f8301526133b181613378565b9050919050565b7f4d757374206b656570206665657320617420323525206f72206c6573730000005f82015250565b5f6133ec601d83612ec8565b91506133f7826133b8565b602082019050919050565b5f6020820190508181035f830152613419816133e0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61345782612f6c565b915061346283612f6c565b925082820261347081612f6c565b9150828204841483151761348757613486613420565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c582612f6c565b91506134d083612f6c565b9250826134e0576134df61348e565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f77657220745f8201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b5f613545602883612ec8565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6135d3602883612ec8565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e5f8201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b5f613661602583612ec8565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b5f61369f82612f6c565b91506136aa83612f6c565b92508282019050808211156136c2576136c1613420565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613722602583612ec8565b915061372d826136c8565b604082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b61375f81613232565b82525050565b5f60a0820190506137785f830188613756565b6137856020830187613756565b6137926040830186613756565b61379f6060830185613095565b6137ac60808301846131e0565b9695505050505050565b5f6060820190506137c95f830186613756565b6137d66020830185613756565b6137e36040830184613095565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6138296002836137eb565b9150613834826137f5565b600282019050919050565b5f819050919050565b61385961385482613232565b61383f565b82525050565b5f6138698261381d565b91506138758285613848565b6020820191506138858284613848565b6020820191508190509392505050565b5f6080820190506138a85f830187613756565b6138b56020830186613119565b6138c26040830185613756565b6138cf6060830184613756565b95945050505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f61390c601183612ec8565b9150613917826138d8565b602082019050919050565b5f6020820190508181035f83015261393981613900565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61399a603583612ec8565b91506139a582613940565b604082019050919050565b5f6020820190508181035f8301526139c78161398e565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613a28603483612ec8565b9150613a33826139ce565b604082019050919050565b5f6020820190508181035f830152613a5581613a1c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613ab6602683612ec8565b9150613ac182613a5c565b604082019050919050565b5f6020820190508181035f830152613ae381613aaa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613b44602483612ec8565b9150613b4f82613aea565b604082019050919050565b5f6020820190508181035f830152613b7181613b38565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613bd2602283612ec8565b9150613bdd82613b78565b604082019050919050565b5f6020820190508181035f830152613bff81613bc6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c60602583612ec8565b9150613c6b82613c06565b604082019050919050565b5f6020820190508181035f830152613c8d81613c54565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613cee602383612ec8565b9150613cf982613c94565b604082019050919050565b5f6020820190508181035f830152613d1b81613ce2565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613d56601683612ec8565b9150613d6182613d22565b602082019050919050565b5f6020820190508181035f830152613d8381613d4a565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b5f613de4602b83612ec8565b9150613def82613d8a565b604082019050919050565b5f6020820190508181035f830152613e1181613dd8565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613e4c601383612ec8565b9150613e5782613e18565b602082019050919050565b5f6020820190508181035f830152613e7981613e40565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b5f613eda602c83612ec8565b9150613ee582613e80565b604082019050919050565b5f6020820190508181035f830152613f0781613ece565b9050919050565b5f613f1882612f6c565b9150613f2383612f6c565b9250828203905081811115613f3b57613f3a613420565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613f9b602683612ec8565b9150613fa682613f41565b604082019050919050565b5f6020820190508181035f830152613fc881613f8f565b9050919050565b5f81905092915050565b50565b5f613fe75f83613fcf565b9150613ff282613fd9565b5f82019050919050565b5f61400682613fdc565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061407881612ffa565b92915050565b5f6020828403121561409357614092612f68565b5b5f6140a08482850161406a565b91505092915050565b5f819050919050565b5f6140cc6140c76140c2846140a9565b61316c565b612f6c565b9050919050565b6140dc816140b2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61411481612fe9565b82525050565b5f614125838361410b565b60208301905092915050565b5f602082019050919050565b5f614147826140e2565b61415181856140ec565b935061415c836140fc565b805f5b8381101561418c578151614173888261411a565b975061417e83614131565b92505060018101905061415f565b5085935050505092915050565b5f60a0820190506141ac5f830188613095565b6141b960208301876140d3565b81810360408301526141cb818661413d565b90506141da60608301856131e0565b6141e76080830184613095565b969550505050505056fea2646970667358221220cb3ad8bcfcc554366bbaafa415a0ef3d832272678a6ad2ca90434be9107562ca64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000e5eff9f564d32f7e05d875cd3158aa48107f7a4800000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000750554d5020495400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450554d5000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): PUMP IT
Arg [1] : symbol_ (string): PUMP
Arg [2] : decimals_ (uint8): 9
Arg [3] : totalNativeSupply_ (uint256): 100000000000000
Arg [4] : marketingWallet_ (address): 0xe5eff9F564D32F7e05d875cD3158aa48107f7A48
Arg [5] : buyFee_ (uint256): 5
Arg [6] : sellFee_ (uint256): 5
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 00000000000000000000000000000000000000000000000000005af3107a4000
Arg [4] : 000000000000000000000000e5eff9f564d32f7e05d875cd3158aa48107f7a48
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [8] : 50554d5020495400000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 50554d5000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.