ERC-20
Overview
Max Total Supply
1,000,000 QWIK
Holders
279
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1.490317726561532514 QWIKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
QWIKMINE
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // www.qwikmine.com pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _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); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(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); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract QWIKMINE is Context, IERC20, IERC20Metadata, ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public rescueAddress; address private taxWallet; bool private swapping; bool private tradeInLimits = true; bool private isTrading = false; bool public swapAllowed = false; bool public taxShortTermTraders = false; mapping (address => uint256) private _traderFirstSwapTimestamp; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTradeAmount; mapping (address => bool) public automatedMarketMakerPairs; uint256 private buyFeeTotal; uint256 private buyProtocolFee; uint256 private buyLiquidityFee; uint256 private sellFeeTotal; uint256 private sellProtocolFee; uint256 private sellLiquidityFee; uint256 private quickSellLiquidityFee; uint256 private quickSellProtocolFee; uint256 private tokensForProtocol; uint256 private tokensForLiquidity; uint256 private maxTradeAmount; uint256 private whenToSwapToken; uint256 private maxHolding; uint256 launchedAt; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor( string memory name, string memory symbol, address _rescueAddress, address _taxWalletAddress, uint256 totalSupply, uint256 _buyProtocolFee, uint256 _sellProtocolFee, uint256 _quickSellProtocolFee, uint256 _buyLiquidityFee, uint256 _sellLiquidityFee, uint256 _quickSellLiquidityFee ) ERC20(name, symbol) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTrade(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTrade(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); rescueAddress = _rescueAddress; taxWallet = _taxWalletAddress; buyProtocolFee = _buyProtocolFee; buyLiquidityFee = _buyLiquidityFee; buyFeeTotal = buyProtocolFee + buyLiquidityFee; sellProtocolFee = _sellProtocolFee; sellLiquidityFee = _sellLiquidityFee; sellFeeTotal = sellProtocolFee + sellLiquidityFee; quickSellLiquidityFee = _quickSellLiquidityFee; quickSellProtocolFee = _quickSellProtocolFee; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromMaxTrade(owner(), true); excludeFromMaxTrade(address(this), true); maxTradeAmount = totalSupply * 10 / 1000; maxHolding = totalSupply * 10 / 1000; whenToSwapToken = totalSupply * 10 / 10000; _mint(msg.sender, totalSupply); } receive() external payable {} function startTrading() external onlyOwner { isTrading = true; swapAllowed = true; launchedAt = block.number; } function removeLimits() external onlyOwner returns (bool){ tradeInLimits = false; return true; } function updateSwapAllowed(bool enabled) external onlyOwner(){ swapAllowed = enabled; } function setQuickSell(bool onoff) external onlyOwner { taxShortTermTraders = onoff; } function excludeFromMaxTrade(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTradeAmount[updAds] = isEx; } function updateQuickBuyFees(uint256 _ProtocolFee, uint256 _liquidityFee) external onlyOwner { buyProtocolFee = _ProtocolFee; buyLiquidityFee = _liquidityFee; buyFeeTotal = buyProtocolFee + buyLiquidityFee; require(buyFeeTotal <= 40, "Cannot exceed 40% Buy fees"); } function updateExitFee(uint256 _protocolFee, uint256 _liquidityFee, uint256 _quickSellLiquidityFee, uint256 _quickSellProtocolFee) external onlyOwner { sellProtocolFee = _protocolFee; sellLiquidityFee = _liquidityFee; quickSellLiquidityFee = _quickSellLiquidityFee; quickSellProtocolFee = _quickSellProtocolFee; sellFeeTotal = sellProtocolFee + sellLiquidityFee; require(sellFeeTotal <= 40, "Cannot exceed 40% Sell fees"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from AMM Pairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function rescueTokens(IERC20 token, uint256 amount) public { require(address(token) != address(0), "Token address cannot be zero"); require(msg.sender == rescueAddress, "Only the rescue address can call this function"); token.transfer(msg.sender, amount); } 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(tradeInLimits){ if ( from != owner() && to != owner() && to != address(0) && !swapping ){ if(!isTrading){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTradeAmount[to]) { require(amount <= maxTradeAmount, "Transfer amount exceeds the maxTradeAmount."); require(amount + balanceOf(to) <= maxHolding, "Max Holding exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTradeAmount[from]) { require(amount <= maxTradeAmount, "Transfer amount exceeds the maxTradeAmount."); } else if(!_isExcludedMaxTradeAmount[to]){ require(amount + balanceOf(to) <= maxHolding, "Max Holding exceeded"); } } } bool isBuy = from == uniswapV2Pair; if (!isBuy && taxShortTermTraders) { if (_traderFirstSwapTimestamp[from] != 0 && (_traderFirstSwapTimestamp[from] + (730 hours) >= block.timestamp)) { sellLiquidityFee = quickSellLiquidityFee; sellProtocolFee = quickSellProtocolFee; sellFeeTotal = sellProtocolFee + sellLiquidityFee; } else { sellLiquidityFee = 0; sellProtocolFee = 0; sellFeeTotal = sellProtocolFee + sellLiquidityFee; } } else { if (_traderFirstSwapTimestamp[to] == 0) { _traderFirstSwapTimestamp[to] = block.timestamp; } if (!taxShortTermTraders) { sellLiquidityFee = 0; sellProtocolFee = 0; sellFeeTotal = sellProtocolFee + sellLiquidityFee; } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= whenToSwapToken; if( canSwap && swapAllowed && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if(takeFee){ if (automatedMarketMakerPairs[to] && sellFeeTotal > 0){ fees = amount.mul(sellFeeTotal).div(100); tokensForLiquidity += fees * sellLiquidityFee / sellFeeTotal; tokensForProtocol += fees * sellProtocolFee / sellFeeTotal; } else if(automatedMarketMakerPairs[from] && buyFeeTotal > 0) { fees = amount.mul(buyFeeTotal).div(100); tokensForLiquidity += fees * buyLiquidityFee / buyFeeTotal; tokensForProtocol += fees * buyProtocolFee / buyFeeTotal; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForProtocol; bool success; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > whenToSwapToken * 20){ contractBalance = whenToSwapToken * 20; } uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForProtocol = ethBalance.mul(tokensForProtocol).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForProtocol; tokensForLiquidity = 0; tokensForProtocol = 0; (success,) = address(taxWallet).call{value: ethForProtocol}(""); if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity); } (success,) = address(taxWallet).call{value: address(this).balance}(""); } }
{ "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
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"_rescueAddress","type":"address"},{"internalType":"address","name":"_taxWalletAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"_buyProtocolFee","type":"uint256"},{"internalType":"uint256","name":"_sellProtocolFee","type":"uint256"},{"internalType":"uint256","name":"_quickSellProtocolFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_quickSellLiquidityFee","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTradeAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setQuickSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxShortTermTraders","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_protocolFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_quickSellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_quickSellProtocolFee","type":"uint256"}],"name":"updateExitFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ProtocolFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateQuickBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526001600760156101000a81548160ff0219169083151502179055505f600760166101000a81548160ff0219169083151502179055505f600760176101000a81548160ff0219169083151502179055505f600760186101000a81548160ff02191690831515021790555034801562000079575f80fd5b5060405162005a4238038062005a4283398181016040528101906200009f919062000c94565b8a8a8160039081620000b2919062001006565b508060049081620000c4919062001006565b5050505f620000d86200056360201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001a08160016200056a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002449190620010ea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d09190620010ea565b6040518363ffffffff1660e01b8152600401620002ef9291906200112b565b6020604051808303815f875af11580156200030c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003329190620010ea565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200037a60a05160016200056a60201b60201c565b6200038f60a05160016200066360201b60201c565b8960065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508860075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600d8190555083600e81905550600e54600d546200042f919062001183565b600c81905550856010819055508260118190555060115460105462000455919062001183565b600f8190555081601281905550846013819055506200048b6200047d6200070160201b60201c565b60016200072960201b60201c565b6200049e3060016200072960201b60201c565b620004c0620004b26200070160201b60201c565b60016200056a60201b60201c565b620004d33060016200056a60201b60201c565b6103e8600a89620004e59190620011bd565b620004f1919062001234565b6016819055506103e8600a89620005099190620011bd565b62000515919062001234565b601881905550612710600a896200052d9190620011bd565b62000539919062001234565b6017819055506200055133896200087260201b60201c565b50505050505050505050505062001428565b5f33905090565b6200057a6200056360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060290620012c9565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007396200056360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c190620012c9565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000866919062001305565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008da906200136e565b60405180910390fd5b620008f65f838362000a0f60201b60201c565b6200090d8160025462000a1460201b90919060201c565b60028190555062000964815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205462000a1460201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a0391906200139f565b60405180910390a35050565b505050565b5f80828462000a24919062001183565b90508381101562000a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a639062001408565b60405180910390fd5b8091505092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000ad78262000a8f565b810181811067ffffffffffffffff8211171562000af95762000af862000a9f565b5b80604052505050565b5f62000b0d62000a76565b905062000b1b828262000acc565b919050565b5f67ffffffffffffffff82111562000b3d5762000b3c62000a9f565b5b62000b488262000a8f565b9050602081019050919050565b5f5b8381101562000b7457808201518184015260208101905062000b57565b5f8484015250505050565b5f62000b9562000b8f8462000b20565b62000b02565b90508281526020810184848401111562000bb45762000bb362000a8b565b5b62000bc184828562000b55565b509392505050565b5f82601f83011262000be05762000bdf62000a87565b5b815162000bf284826020860162000b7f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c268262000bfb565b9050919050565b62000c388162000c1a565b811462000c43575f80fd5b50565b5f8151905062000c568162000c2d565b92915050565b5f819050919050565b62000c708162000c5c565b811462000c7b575f80fd5b50565b5f8151905062000c8e8162000c65565b92915050565b5f805f805f805f805f805f6101608c8e03121562000cb75762000cb662000a7f565b5b5f8c015167ffffffffffffffff81111562000cd75762000cd662000a83565b5b62000ce58e828f0162000bc9565b9b505060208c015167ffffffffffffffff81111562000d095762000d0862000a83565b5b62000d178e828f0162000bc9565b9a5050604062000d2a8e828f0162000c46565b995050606062000d3d8e828f0162000c46565b985050608062000d508e828f0162000c7e565b97505060a062000d638e828f0162000c7e565b96505060c062000d768e828f0162000c7e565b95505060e062000d898e828f0162000c7e565b94505061010062000d9d8e828f0162000c7e565b93505061012062000db18e828f0162000c7e565b92505061014062000dc58e828f0162000c7e565b9150509295989b509295989b9093969950565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000e2757607f821691505b60208210810362000e3d5762000e3c62000de2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000ea17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e64565b62000ead868362000e64565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000eee62000ee862000ee28462000c5c565b62000ec5565b62000c5c565b9050919050565b5f819050919050565b62000f098362000ece565b62000f2162000f188262000ef5565b84845462000e70565b825550505050565b5f90565b62000f3762000f29565b62000f4481848462000efe565b505050565b5b8181101562000f6b5762000f5f5f8262000f2d565b60018101905062000f4a565b5050565b601f82111562000fba5762000f848162000e43565b62000f8f8462000e55565b8101602085101562000f9f578190505b62000fb762000fae8562000e55565b83018262000f49565b50505b505050565b5f82821c905092915050565b5f62000fdc5f198460080262000fbf565b1980831691505092915050565b5f62000ff6838362000fcb565b9150826002028217905092915050565b620010118262000dd8565b67ffffffffffffffff8111156200102d576200102c62000a9f565b5b62001039825462000e0f565b6200104682828562000f6f565b5f60209050601f8311600181146200107c575f841562001067578287015190505b62001073858262000fe9565b865550620010e2565b601f1984166200108c8662000e43565b5f5b82811015620010b5578489015182556001820191506020850194506020810190506200108e565b86831015620010d55784890151620010d1601f89168262000fcb565b8355505b6001600288020188555050505b505050505050565b5f6020828403121562001102576200110162000a7f565b5b5f620011118482850162000c46565b91505092915050565b620011258162000c1a565b82525050565b5f604082019050620011405f8301856200111a565b6200114f60208301846200111a565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200118f8262000c5c565b91506200119c8362000c5c565b9250828201905080821115620011b757620011b662001156565b5b92915050565b5f620011c98262000c5c565b9150620011d68362000c5c565b9250828202620011e68162000c5c565b915082820484148315176200120057620011ff62001156565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620012408262000c5c565b91506200124d8362000c5c565b92508262001260576200125f62001207565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f620012b16020836200126b565b9150620012be826200127b565b602082019050919050565b5f6020820190508181035f830152620012e281620012a3565b9050919050565b5f8115159050919050565b620012ff81620012e9565b82525050565b5f6020820190506200131a5f830184620012f4565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001356601f836200126b565b9150620013638262001320565b602082019050919050565b5f6020820190508181035f830152620013878162001348565b9050919050565b620013998162000c5c565b82525050565b5f602082019050620013b45f8301846200138e565b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620013f0601b836200126b565b9150620013fd82620013ba565b602082019050919050565b5f6020820190508181035f8301526200142181620013e2565b9050919050565b60805160a0516145c76200147b5f395f8181610dc40152818161144a01526121d201525f818161095e015281816130610152818161314001528181613167015281816131fd015261322401526145c75ff3fe6080604052600436106101e6575f3560e01c80636e2e705c11610101578063a457c2d711610094578063c646c01911610063578063c646c019146106f5578063dd62ed3e1461071d578063e80c37cd14610759578063f2fde38b14610783576101ed565b8063a457c2d714610619578063a9059cbb14610655578063b62496f514610691578063c0246668146106cd576101ed565b8063779bf33c116100d0578063779bf33c146105615780638da5cb5b1461059d57806395d89b41146105c75780639a7a23d6146105f1576101ed565b80636e2e705c146104bd57806370a08231146104e5578063715018a614610521578063751039fc14610537576101ed565b8063293230b81161017957806349bd5a5e1161014857806349bd5a5e146104055780634fbee1931461042f578063525550ea1461046b5780635737619814610495576101ed565b8063293230b8146103615780632c1a5aa514610377578063313ce5671461039f57806339509351146103c9576101ed565b8063172869c4116101b5578063172869c4146102a957806318160ddd146102d35780631f9d1b3d146102fd57806323b872dd14610325576101ed565b806305b791f2146101f157806306fdde0314610219578063095ea7b3146102435780631694505e1461027f576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190613366565b6107ab565b005b348015610224575f80fd5b5061022d6108af565b60405161023a919061342e565b60405180910390f35b34801561024e575f80fd5b50610269600480360381019061026491906134a8565b61093f565b6040516102769190613500565b60405180910390f35b34801561028a575f80fd5b5061029361095c565b6040516102a09190613574565b60405180910390f35b3480156102b4575f80fd5b506102bd610980565b6040516102ca9190613500565b60405180910390f35b3480156102de575f80fd5b506102e7610993565b6040516102f4919061359c565b60405180910390f35b348015610308575f80fd5b50610323600480360381019061031e91906135df565b61099c565b005b348015610330575f80fd5b5061034b6004803603810190610346919061360a565b610a4f565b6040516103589190613500565b60405180910390f35b34801561036c575f80fd5b50610375610b23565b005b348015610382575f80fd5b5061039d6004803603810190610398919061365a565b610bf8565b005b3480156103aa575f80fd5b506103b3610d0c565b6040516103c091906136d9565b60405180910390f35b3480156103d4575f80fd5b506103ef60048036038101906103ea91906134a8565b610d14565b6040516103fc9190613500565b60405180910390f35b348015610410575f80fd5b50610419610dc2565b6040516104269190613701565b60405180910390f35b34801561043a575f80fd5b506104556004803603810190610450919061371a565b610de6565b6040516104629190613500565b60405180910390f35b348015610476575f80fd5b5061047f610e38565b60405161048c9190613701565b60405180910390f35b3480156104a0575f80fd5b506104bb60048036038101906104b69190613780565b610e5d565b005b3480156104c8575f80fd5b506104e360048036038101906104de91906135df565b610fda565b005b3480156104f0575f80fd5b5061050b6004803603810190610506919061371a565b61108d565b604051610518919061359c565b60405180910390f35b34801561052c575f80fd5b506105356110d2565b005b348015610542575f80fd5b5061054b611225565b6040516105589190613500565b60405180910390f35b34801561056c575f80fd5b506105876004803603810190610582919061371a565b6112dd565b6040516105949190613500565b60405180910390f35b3480156105a8575f80fd5b506105b16112fa565b6040516105be9190613701565b60405180910390f35b3480156105d2575f80fd5b506105db611322565b6040516105e8919061342e565b60405180910390f35b3480156105fc575f80fd5b50610617600480360381019061061291906137be565b6113b2565b005b348015610624575f80fd5b5061063f600480360381019061063a91906134a8565b6114e4565b60405161064c9190613500565b60405180910390f35b348015610660575f80fd5b5061067b600480360381019061067691906134a8565b6115ac565b6040516106889190613500565b60405180910390f35b34801561069c575f80fd5b506106b760048036038101906106b2919061371a565b6115c9565b6040516106c49190613500565b60405180910390f35b3480156106d8575f80fd5b506106f360048036038101906106ee91906137be565b6115e6565b005b348015610700575f80fd5b5061071b600480360381019061071691906137be565b611722565b005b348015610728575f80fd5b50610743600480360381019061073e91906137fc565b611810565b604051610750919061359c565b60405180910390f35b348015610764575f80fd5b5061076d611892565b60405161077a9190613500565b60405180910390f35b34801561078e575f80fd5b506107a960048036038101906107a4919061371a565b6118a5565b005b6107b3611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890613884565b60405180910390fd5b81600d8190555080600e81905550600e54600d5461085f91906138cf565b600c819055506028600c5411156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061394c565b60405180910390fd5b5050565b6060600380546108be90613997565b80601f01602080910402602001604051908101604052809291908181526020018280546108ea90613997565b80156109355780601f1061090c57610100808354040283529160200191610935565b820191905f5260205f20905b81548152906001019060200180831161091857829003601f168201915b5050505050905090565b5f61095261094b611a67565b8484611a6e565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600760179054906101000a900460ff1681565b5f600254905090565b6109a4611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2990613884565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b5f610a5b848484611c31565b610b1884610a67611a67565b610b13856040518060600160405280602881526020016145456028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610aca611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284b9092919063ffffffff16565b611a6e565b600190509392505050565b610b2b611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613884565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760176101000a81548160ff02191690831515021790555043601981905550565b610c00611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8590613884565b60405180910390fd5b83601081905550826011819055508160128190555080601381905550601154601054610cba91906138cf565b600f819055506028600f541115610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90613a11565b60405180910390fd5b50505050565b5f6012905090565b5f610db8610d20611a67565b84610db38560015f610d30611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ad90919063ffffffff16565b611a6e565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290613a79565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613b07565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610f95929190613b25565b6020604051808303815f875af1158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd59190613b60565b505050565b610fe2611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790613884565b60405180910390fd5b80600760186101000a81548160ff02191690831515021790555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110da611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f90613884565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f61122e611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b390613884565b60405180910390fd5b5f600760156101000a81548160ff0219169083151502179055506001905090565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133190613997565b80601f016020809104026020016040519081016040528092919081815260200182805461135d90613997565b80156113a85780601f1061137f576101008083540402835291602001916113a8565b820191905f5260205f20905b81548152906001019060200180831161138b57829003601f168201915b5050505050905090565b6113ba611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90613884565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90613bfb565b60405180910390fd5b6114e0828261290a565b5050565b5f6115a26114f0611a67565b8461159d8560405180606001604052806025815260200161456d6025913960015f611519611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284b9092919063ffffffff16565b611a6e565b6001905092915050565b5f6115bf6115b8611a67565b8484611c31565b6001905092915050565b600b602052805f5260405f205f915054906101000a900460ff1681565b6115ee611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390613884565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117169190613500565b60405180910390a25050565b61172a611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117af90613884565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600760189054906101000a900460ff1681565b6118ad611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290613884565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090613c89565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390613d17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613da5565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c24919061359c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613e33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0490613ec1565b60405180910390fd5b5f8103611d2457611d1f83835f6129a8565b612846565b600760159054906101000a900460ff16156121cf57611d416112fa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611daf5750611d7f6112fa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611de757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e005750600760149054906101000a900460ff16155b156121ce57600760169054906101000a900460ff16611ef45760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611eb4575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eea90613f29565b60405180910390fd5b5b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f915750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561203857601654811115611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290613fb7565b60405180910390fd5b601854611fe78361108d565b82611ff291906138cf565b1115612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a9061401f565b60405180910390fd5b6121cd565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120d55750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121245760165481111561211f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211690613fb7565b60405180910390fd5b6121cc565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121cb5760185461217e8361108d565b8261218991906138cf565b11156121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c19061401f565b60405180910390fd5b5b5b5b5b5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490508015801561223b5750600760189054906101000a900460ff165b15612334575f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054141580156122d8575042622819a060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d591906138cf565b10155b1561230a576012546011819055506013546010819055506011546010546122ff91906138cf565b600f8190555061232f565b5f6011819055505f60108190555060115460105461232891906138cf565b600f819055505b6123f5565b5f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036123bb574260085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600760189054906101000a900460ff166123f4575f6011819055505f6010819055506011546010546123ed91906138cf565b600f819055505b5b5f6123ff3061108d565b90505f60175482101590508080156124235750600760179054906101000a900460ff165b801561243c5750600760149054906101000a900460ff16155b801561248f5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124e2575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612535575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612578576001600760146101000a81548160ff02191690831515021790555061255d612c31565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612627575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612630575f90505b5f811561283557600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561268e57505f600f54115b15612726576126bb60646126ad600f5489612eb690919063ffffffff16565b612f2d90919063ffffffff16565b9050600f54601154826126ce919061403d565b6126d891906140ab565b60155f8282546126e891906138cf565b92505081905550600f5460105482612700919061403d565b61270a91906140ab565b60145f82825461271a91906138cf565b92505081905550612812565b600b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561277d57505f600c54115b15612811576127aa606461279c600c5489612eb690919063ffffffff16565b612f2d90919063ffffffff16565b9050600c54600e54826127bd919061403d565b6127c791906140ab565b60155f8282546127d791906138cf565b92505081905550600c54600d54826127ef919061403d565b6127f991906140ab565b60145f82825461280991906138cf565b925050819055505b5b5f811115612826576128258830836129a8565b5b808661283291906140db565b95505b6128408888886129a8565b50505050505b505050565b5f838311158290612892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612889919061342e565b60405180910390fd5b505f83856128a091906140db565b9050809150509392505050565b5f8082846128bb91906138cf565b905083811015612900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f790614158565b60405180910390fd5b8091505092915050565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d90613e33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7b90613ec1565b60405180910390fd5b612a8f838383612f76565b612af88160405180606001604052806026815260200161451f602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284b9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b87815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ad90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c24919061359c565b60405180910390a3505050565b5f612c3b3061108d565b90505f601454601554612c4e91906138cf565b90505f80831480612c5e57505f82145b15612c6b57505050612eb4565b6014601754612c7a919061403d565b831115612c93576014601754612c90919061403d565b92505b5f60028360155486612ca5919061403d565b612caf91906140ab565b612cb991906140ab565b90505f612ccf8286612f7b90919063ffffffff16565b90505f479050612cde82612fc4565b5f612cf28247612f7b90919063ffffffff16565b90505f612d1c87612d0e60145485612eb690919063ffffffff16565b612f2d90919063ffffffff16565b90505f8183612d2b91906140db565b90505f6015819055505f60148190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d80906141a3565b5f6040518083038185875af1925050503d805f8114612dba576040519150601f19603f3d011682016040523d82523d5f602084013e612dbf565b606091505b5050809750505f86118015612dd357505f81115b15612e2057612de286826131f7565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601554604051612e17939291906141b7565b60405180910390a15b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e65906141a3565b5f6040518083038185875af1925050503d805f8114612e9f576040519150601f19603f3d011682016040523d82523d5f602084013e612ea4565b606091505b5050809750505050505050505050505b565b5f808303612ec6575f9050612f27565b5f8284612ed3919061403d565b9050828482612ee291906140ab565b14612f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f199061425c565b60405180910390fd5b809150505b92915050565b5f612f6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132ce565b905092915050565b505050565b5f612fbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061284b565b905092915050565b5f600267ffffffffffffffff811115612fe057612fdf61427a565b5b60405190808252806020026020018201604052801561300e5781602001602082028036833780820191505090505b50905030815f81518110613025576130246142a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ec91906142e8565b81600181518110613100576130ff6142a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613165307f000000000000000000000000000000000000000000000000000000000000000084611a6e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131c6959493929190614403565b5f604051808303815f87803b1580156131dd575f80fd5b505af11580156131ef573d5f803e3d5ffd5b505050505050565b613222307f000000000000000000000000000000000000000000000000000000000000000084611a6e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8030426040518863ffffffff1660e01b81526004016132869695949392919061445b565b60606040518083038185885af11580156132a2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906132c791906144ce565b5050505050565b5f8083118290613314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330b919061342e565b60405180910390fd5b505f838561332291906140ab565b9050809150509392505050565b5f80fd5b5f819050919050565b61334581613333565b811461334f575f80fd5b50565b5f813590506133608161333c565b92915050565b5f806040838503121561337c5761337b61332f565b5b5f61338985828601613352565b925050602061339a85828601613352565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133db5780820151818401526020810190506133c0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613400826133a4565b61340a81856133ae565b935061341a8185602086016133be565b613423816133e6565b840191505092915050565b5f6020820190508181035f83015261344681846133f6565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134778261344e565b9050919050565b6134878161346d565b8114613491575f80fd5b50565b5f813590506134a28161347e565b92915050565b5f80604083850312156134be576134bd61332f565b5b5f6134cb85828601613494565b92505060206134dc85828601613352565b9150509250929050565b5f8115159050919050565b6134fa816134e6565b82525050565b5f6020820190506135135f8301846134f1565b92915050565b5f819050919050565b5f61353c6135376135328461344e565b613519565b61344e565b9050919050565b5f61354d82613522565b9050919050565b5f61355e82613543565b9050919050565b61356e81613554565b82525050565b5f6020820190506135875f830184613565565b92915050565b61359681613333565b82525050565b5f6020820190506135af5f83018461358d565b92915050565b6135be816134e6565b81146135c8575f80fd5b50565b5f813590506135d9816135b5565b92915050565b5f602082840312156135f4576135f361332f565b5b5f613601848285016135cb565b91505092915050565b5f805f606084860312156136215761362061332f565b5b5f61362e86828701613494565b935050602061363f86828701613494565b925050604061365086828701613352565b9150509250925092565b5f805f80608085870312156136725761367161332f565b5b5f61367f87828801613352565b945050602061369087828801613352565b93505060406136a187828801613352565b92505060606136b287828801613352565b91505092959194509250565b5f60ff82169050919050565b6136d3816136be565b82525050565b5f6020820190506136ec5f8301846136ca565b92915050565b6136fb8161346d565b82525050565b5f6020820190506137145f8301846136f2565b92915050565b5f6020828403121561372f5761372e61332f565b5b5f61373c84828501613494565b91505092915050565b5f61374f8261346d565b9050919050565b61375f81613745565b8114613769575f80fd5b50565b5f8135905061377a81613756565b92915050565b5f80604083850312156137965761379561332f565b5b5f6137a38582860161376c565b92505060206137b485828601613352565b9150509250929050565b5f80604083850312156137d4576137d361332f565b5b5f6137e185828601613494565b92505060206137f2858286016135cb565b9150509250929050565b5f80604083850312156138125761381161332f565b5b5f61381f85828601613494565b925050602061383085828601613494565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61386e6020836133ae565b91506138798261383a565b602082019050919050565b5f6020820190508181035f83015261389b81613862565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138d982613333565b91506138e483613333565b92508282019050808211156138fc576138fb6138a2565b5b92915050565b7f43616e6e6f7420657863656564203430252042757920666565730000000000005f82015250565b5f613936601a836133ae565b915061394182613902565b602082019050919050565b5f6020820190508181035f8301526139638161392a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806139ae57607f821691505b6020821081036139c1576139c061396a565b5b50919050565b7f43616e6e6f7420657863656564203430252053656c6c206665657300000000005f82015250565b5f6139fb601b836133ae565b9150613a06826139c7565b602082019050919050565b5f6020820190508181035f830152613a28816139ef565b9050919050565b7f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000005f82015250565b5f613a63601c836133ae565b9150613a6e82613a2f565b602082019050919050565b5f6020820190508181035f830152613a9081613a57565b9050919050565b7f4f6e6c79207468652072657363756520616464726573732063616e2063616c6c5f8201527f20746869732066756e6374696f6e000000000000000000000000000000000000602082015250565b5f613af1602e836133ae565b9150613afc82613a97565b604082019050919050565b5f6020820190508181035f830152613b1e81613ae5565b9050919050565b5f604082019050613b385f8301856136f2565b613b45602083018461358d565b9392505050565b5f81519050613b5a816135b5565b92915050565b5f60208284031215613b7557613b7461332f565b5b5f613b8284828501613b4c565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f414d4d2050616972730000000000000000000000000000000000000000000000602082015250565b5f613be56029836133ae565b9150613bf082613b8b565b604082019050919050565b5f6020820190508181035f830152613c1281613bd9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613c736026836133ae565b9150613c7e82613c19565b604082019050919050565b5f6020820190508181035f830152613ca081613c67565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d016024836133ae565b9150613d0c82613ca7565b604082019050919050565b5f6020820190508181035f830152613d2e81613cf5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d8f6022836133ae565b9150613d9a82613d35565b604082019050919050565b5f6020820190508181035f830152613dbc81613d83565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e1d6025836133ae565b9150613e2882613dc3565b604082019050919050565b5f6020820190508181035f830152613e4a81613e11565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613eab6023836133ae565b9150613eb682613e51565b604082019050919050565b5f6020820190508181035f830152613ed881613e9f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613f136016836133ae565b9150613f1e82613edf565b602082019050919050565b5f6020820190508181035f830152613f4081613f07565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f72616465416d6f756e742e000000000000000000000000000000000000000000602082015250565b5f613fa1602b836133ae565b9150613fac82613f47565b604082019050919050565b5f6020820190508181035f830152613fce81613f95565b9050919050565b7f4d617820486f6c64696e672065786365656465640000000000000000000000005f82015250565b5f6140096014836133ae565b915061401482613fd5565b602082019050919050565b5f6020820190508181035f83015261403681613ffd565b9050919050565b5f61404782613333565b915061405283613333565b925082820261406081613333565b91508282048414831517614077576140766138a2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6140b582613333565b91506140c083613333565b9250826140d0576140cf61407e565b5b828204905092915050565b5f6140e582613333565b91506140f083613333565b9250828203905081811115614108576141076138a2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614142601b836133ae565b915061414d8261410e565b602082019050919050565b5f6020820190508181035f83015261416f81614136565b9050919050565b5f81905092915050565b50565b5f61418e5f83614176565b915061419982614180565b5f82019050919050565b5f6141ad82614183565b9150819050919050565b5f6060820190506141ca5f83018661358d565b6141d7602083018561358d565b6141e4604083018461358d565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142466021836133ae565b9150614251826141ec565b604082019050919050565b5f6020820190508181035f8301526142738161423a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506142e28161347e565b92915050565b5f602082840312156142fd576142fc61332f565b5b5f61430a848285016142d4565b91505092915050565b5f819050919050565b5f61433661433161432c84614313565b613519565b613333565b9050919050565b6143468161431c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61437e8161346d565b82525050565b5f61438f8383614375565b60208301905092915050565b5f602082019050919050565b5f6143b18261434c565b6143bb8185614356565b93506143c683614366565b805f5b838110156143f65781516143dd8882614384565b97506143e88361439b565b9250506001810190506143c9565b5085935050505092915050565b5f60a0820190506144165f83018861358d565b614423602083018761433d565b818103604083015261443581866143a7565b905061444460608301856136f2565b614451608083018461358d565b9695505050505050565b5f60c08201905061446e5f8301896136f2565b61447b602083018861358d565b614488604083018761433d565b614495606083018661433d565b6144a260808301856136f2565b6144af60a083018461358d565b979650505050505050565b5f815190506144c88161333c565b92915050565b5f805f606084860312156144e5576144e461332f565b5b5f6144f2868287016144ba565b9350506020614503868287016144ba565b9250506040614514868287016144ba565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209618246e726a0e5fc2ef79b5dd98d5a03b98573a54174d919f5997e0f5440f2164736f6c63430008160033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000a0512f6e3b435f728bd9ec1c83ad2b1cb57cf5dd000000000000000000000000973d61ea55257d7bc6a3d6c82c1f835a54182e7300000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085157494b4d494e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045157494b00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101e6575f3560e01c80636e2e705c11610101578063a457c2d711610094578063c646c01911610063578063c646c019146106f5578063dd62ed3e1461071d578063e80c37cd14610759578063f2fde38b14610783576101ed565b8063a457c2d714610619578063a9059cbb14610655578063b62496f514610691578063c0246668146106cd576101ed565b8063779bf33c116100d0578063779bf33c146105615780638da5cb5b1461059d57806395d89b41146105c75780639a7a23d6146105f1576101ed565b80636e2e705c146104bd57806370a08231146104e5578063715018a614610521578063751039fc14610537576101ed565b8063293230b81161017957806349bd5a5e1161014857806349bd5a5e146104055780634fbee1931461042f578063525550ea1461046b5780635737619814610495576101ed565b8063293230b8146103615780632c1a5aa514610377578063313ce5671461039f57806339509351146103c9576101ed565b8063172869c4116101b5578063172869c4146102a957806318160ddd146102d35780631f9d1b3d146102fd57806323b872dd14610325576101ed565b806305b791f2146101f157806306fdde0314610219578063095ea7b3146102435780631694505e1461027f576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190613366565b6107ab565b005b348015610224575f80fd5b5061022d6108af565b60405161023a919061342e565b60405180910390f35b34801561024e575f80fd5b50610269600480360381019061026491906134a8565b61093f565b6040516102769190613500565b60405180910390f35b34801561028a575f80fd5b5061029361095c565b6040516102a09190613574565b60405180910390f35b3480156102b4575f80fd5b506102bd610980565b6040516102ca9190613500565b60405180910390f35b3480156102de575f80fd5b506102e7610993565b6040516102f4919061359c565b60405180910390f35b348015610308575f80fd5b50610323600480360381019061031e91906135df565b61099c565b005b348015610330575f80fd5b5061034b6004803603810190610346919061360a565b610a4f565b6040516103589190613500565b60405180910390f35b34801561036c575f80fd5b50610375610b23565b005b348015610382575f80fd5b5061039d6004803603810190610398919061365a565b610bf8565b005b3480156103aa575f80fd5b506103b3610d0c565b6040516103c091906136d9565b60405180910390f35b3480156103d4575f80fd5b506103ef60048036038101906103ea91906134a8565b610d14565b6040516103fc9190613500565b60405180910390f35b348015610410575f80fd5b50610419610dc2565b6040516104269190613701565b60405180910390f35b34801561043a575f80fd5b506104556004803603810190610450919061371a565b610de6565b6040516104629190613500565b60405180910390f35b348015610476575f80fd5b5061047f610e38565b60405161048c9190613701565b60405180910390f35b3480156104a0575f80fd5b506104bb60048036038101906104b69190613780565b610e5d565b005b3480156104c8575f80fd5b506104e360048036038101906104de91906135df565b610fda565b005b3480156104f0575f80fd5b5061050b6004803603810190610506919061371a565b61108d565b604051610518919061359c565b60405180910390f35b34801561052c575f80fd5b506105356110d2565b005b348015610542575f80fd5b5061054b611225565b6040516105589190613500565b60405180910390f35b34801561056c575f80fd5b506105876004803603810190610582919061371a565b6112dd565b6040516105949190613500565b60405180910390f35b3480156105a8575f80fd5b506105b16112fa565b6040516105be9190613701565b60405180910390f35b3480156105d2575f80fd5b506105db611322565b6040516105e8919061342e565b60405180910390f35b3480156105fc575f80fd5b50610617600480360381019061061291906137be565b6113b2565b005b348015610624575f80fd5b5061063f600480360381019061063a91906134a8565b6114e4565b60405161064c9190613500565b60405180910390f35b348015610660575f80fd5b5061067b600480360381019061067691906134a8565b6115ac565b6040516106889190613500565b60405180910390f35b34801561069c575f80fd5b506106b760048036038101906106b2919061371a565b6115c9565b6040516106c49190613500565b60405180910390f35b3480156106d8575f80fd5b506106f360048036038101906106ee91906137be565b6115e6565b005b348015610700575f80fd5b5061071b600480360381019061071691906137be565b611722565b005b348015610728575f80fd5b50610743600480360381019061073e91906137fc565b611810565b604051610750919061359c565b60405180910390f35b348015610764575f80fd5b5061076d611892565b60405161077a9190613500565b60405180910390f35b34801561078e575f80fd5b506107a960048036038101906107a4919061371a565b6118a5565b005b6107b3611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890613884565b60405180910390fd5b81600d8190555080600e81905550600e54600d5461085f91906138cf565b600c819055506028600c5411156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061394c565b60405180910390fd5b5050565b6060600380546108be90613997565b80601f01602080910402602001604051908101604052809291908181526020018280546108ea90613997565b80156109355780601f1061090c57610100808354040283529160200191610935565b820191905f5260205f20905b81548152906001019060200180831161091857829003601f168201915b5050505050905090565b5f61095261094b611a67565b8484611a6e565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600760179054906101000a900460ff1681565b5f600254905090565b6109a4611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2990613884565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b5f610a5b848484611c31565b610b1884610a67611a67565b610b13856040518060600160405280602881526020016145456028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610aca611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284b9092919063ffffffff16565b611a6e565b600190509392505050565b610b2b611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613884565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760176101000a81548160ff02191690831515021790555043601981905550565b610c00611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8590613884565b60405180910390fd5b83601081905550826011819055508160128190555080601381905550601154601054610cba91906138cf565b600f819055506028600f541115610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90613a11565b60405180910390fd5b50505050565b5f6012905090565b5f610db8610d20611a67565b84610db38560015f610d30611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ad90919063ffffffff16565b611a6e565b6001905092915050565b7f000000000000000000000000f1b0bcf0cfb8d5156bc394425cec79bcaf787e5581565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290613a79565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613b07565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610f95929190613b25565b6020604051808303815f875af1158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd59190613b60565b505050565b610fe2611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106790613884565b60405180910390fd5b80600760186101000a81548160ff02191690831515021790555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110da611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f90613884565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f61122e611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b390613884565b60405180910390fd5b5f600760156101000a81548160ff0219169083151502179055506001905090565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133190613997565b80601f016020809104026020016040519081016040528092919081815260200182805461135d90613997565b80156113a85780601f1061137f576101008083540402835291602001916113a8565b820191905f5260205f20905b81548152906001019060200180831161138b57829003601f168201915b5050505050905090565b6113ba611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90613884565b60405180910390fd5b7f000000000000000000000000f1b0bcf0cfb8d5156bc394425cec79bcaf787e5573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90613bfb565b60405180910390fd5b6114e0828261290a565b5050565b5f6115a26114f0611a67565b8461159d8560405180606001604052806025815260200161456d6025913960015f611519611a67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284b9092919063ffffffff16565b611a6e565b6001905092915050565b5f6115bf6115b8611a67565b8484611c31565b6001905092915050565b600b602052805f5260405f205f915054906101000a900460ff1681565b6115ee611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390613884565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117169190613500565b60405180910390a25050565b61172a611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117af90613884565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600760189054906101000a900460ff1681565b6118ad611a67565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290613884565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090613c89565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390613d17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613da5565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c24919061359c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613e33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0490613ec1565b60405180910390fd5b5f8103611d2457611d1f83835f6129a8565b612846565b600760159054906101000a900460ff16156121cf57611d416112fa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611daf5750611d7f6112fa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611de757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e005750600760149054906101000a900460ff16155b156121ce57600760169054906101000a900460ff16611ef45760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611eb4575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eea90613f29565b60405180910390fd5b5b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f915750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561203857601654811115611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290613fb7565b60405180910390fd5b601854611fe78361108d565b82611ff291906138cf565b1115612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a9061401f565b60405180910390fd5b6121cd565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120d55750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121245760165481111561211f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211690613fb7565b60405180910390fd5b6121cc565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121cb5760185461217e8361108d565b8261218991906138cf565b11156121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c19061401f565b60405180910390fd5b5b5b5b5b5b5f7f000000000000000000000000f1b0bcf0cfb8d5156bc394425cec79bcaf787e5573ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490508015801561223b5750600760189054906101000a900460ff165b15612334575f60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054141580156122d8575042622819a060085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d591906138cf565b10155b1561230a576012546011819055506013546010819055506011546010546122ff91906138cf565b600f8190555061232f565b5f6011819055505f60108190555060115460105461232891906138cf565b600f819055505b6123f5565b5f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036123bb574260085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600760189054906101000a900460ff166123f4575f6011819055505f6010819055506011546010546123ed91906138cf565b600f819055505b5b5f6123ff3061108d565b90505f60175482101590508080156124235750600760179054906101000a900460ff165b801561243c5750600760149054906101000a900460ff16155b801561248f5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124e2575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612535575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612578576001600760146101000a81548160ff02191690831515021790555061255d612c31565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612627575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612630575f90505b5f811561283557600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561268e57505f600f54115b15612726576126bb60646126ad600f5489612eb690919063ffffffff16565b612f2d90919063ffffffff16565b9050600f54601154826126ce919061403d565b6126d891906140ab565b60155f8282546126e891906138cf565b92505081905550600f5460105482612700919061403d565b61270a91906140ab565b60145f82825461271a91906138cf565b92505081905550612812565b600b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561277d57505f600c54115b15612811576127aa606461279c600c5489612eb690919063ffffffff16565b612f2d90919063ffffffff16565b9050600c54600e54826127bd919061403d565b6127c791906140ab565b60155f8282546127d791906138cf565b92505081905550600c54600d54826127ef919061403d565b6127f991906140ab565b60145f82825461280991906138cf565b925050819055505b5b5f811115612826576128258830836129a8565b5b808661283291906140db565b95505b6128408888886129a8565b50505050505b505050565b5f838311158290612892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612889919061342e565b60405180910390fd5b505f83856128a091906140db565b9050809150509392505050565b5f8082846128bb91906138cf565b905083811015612900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f790614158565b60405180910390fd5b8091505092915050565b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0d90613e33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7b90613ec1565b60405180910390fd5b612a8f838383612f76565b612af88160405180606001604052806026815260200161451f602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284b9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612b87815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ad90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c24919061359c565b60405180910390a3505050565b5f612c3b3061108d565b90505f601454601554612c4e91906138cf565b90505f80831480612c5e57505f82145b15612c6b57505050612eb4565b6014601754612c7a919061403d565b831115612c93576014601754612c90919061403d565b92505b5f60028360155486612ca5919061403d565b612caf91906140ab565b612cb991906140ab565b90505f612ccf8286612f7b90919063ffffffff16565b90505f479050612cde82612fc4565b5f612cf28247612f7b90919063ffffffff16565b90505f612d1c87612d0e60145485612eb690919063ffffffff16565b612f2d90919063ffffffff16565b90505f8183612d2b91906140db565b90505f6015819055505f60148190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d80906141a3565b5f6040518083038185875af1925050503d805f8114612dba576040519150601f19603f3d011682016040523d82523d5f602084013e612dbf565b606091505b5050809750505f86118015612dd357505f81115b15612e2057612de286826131f7565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601554604051612e17939291906141b7565b60405180910390a15b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e65906141a3565b5f6040518083038185875af1925050503d805f8114612e9f576040519150601f19603f3d011682016040523d82523d5f602084013e612ea4565b606091505b5050809750505050505050505050505b565b5f808303612ec6575f9050612f27565b5f8284612ed3919061403d565b9050828482612ee291906140ab565b14612f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f199061425c565b60405180910390fd5b809150505b92915050565b5f612f6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132ce565b905092915050565b505050565b5f612fbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061284b565b905092915050565b5f600267ffffffffffffffff811115612fe057612fdf61427a565b5b60405190808252806020026020018201604052801561300e5781602001602082028036833780820191505090505b50905030815f81518110613025576130246142a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ec91906142e8565b81600181518110613100576130ff6142a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613165307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a6e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016131c6959493929190614403565b5f604051808303815f87803b1580156131dd575f80fd5b505af11580156131ef573d5f803e3d5ffd5b505050505050565b613222307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a6e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8030426040518863ffffffff1660e01b81526004016132869695949392919061445b565b60606040518083038185885af11580156132a2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906132c791906144ce565b5050505050565b5f8083118290613314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330b919061342e565b60405180910390fd5b505f838561332291906140ab565b9050809150509392505050565b5f80fd5b5f819050919050565b61334581613333565b811461334f575f80fd5b50565b5f813590506133608161333c565b92915050565b5f806040838503121561337c5761337b61332f565b5b5f61338985828601613352565b925050602061339a85828601613352565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133db5780820151818401526020810190506133c0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613400826133a4565b61340a81856133ae565b935061341a8185602086016133be565b613423816133e6565b840191505092915050565b5f6020820190508181035f83015261344681846133f6565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134778261344e565b9050919050565b6134878161346d565b8114613491575f80fd5b50565b5f813590506134a28161347e565b92915050565b5f80604083850312156134be576134bd61332f565b5b5f6134cb85828601613494565b92505060206134dc85828601613352565b9150509250929050565b5f8115159050919050565b6134fa816134e6565b82525050565b5f6020820190506135135f8301846134f1565b92915050565b5f819050919050565b5f61353c6135376135328461344e565b613519565b61344e565b9050919050565b5f61354d82613522565b9050919050565b5f61355e82613543565b9050919050565b61356e81613554565b82525050565b5f6020820190506135875f830184613565565b92915050565b61359681613333565b82525050565b5f6020820190506135af5f83018461358d565b92915050565b6135be816134e6565b81146135c8575f80fd5b50565b5f813590506135d9816135b5565b92915050565b5f602082840312156135f4576135f361332f565b5b5f613601848285016135cb565b91505092915050565b5f805f606084860312156136215761362061332f565b5b5f61362e86828701613494565b935050602061363f86828701613494565b925050604061365086828701613352565b9150509250925092565b5f805f80608085870312156136725761367161332f565b5b5f61367f87828801613352565b945050602061369087828801613352565b93505060406136a187828801613352565b92505060606136b287828801613352565b91505092959194509250565b5f60ff82169050919050565b6136d3816136be565b82525050565b5f6020820190506136ec5f8301846136ca565b92915050565b6136fb8161346d565b82525050565b5f6020820190506137145f8301846136f2565b92915050565b5f6020828403121561372f5761372e61332f565b5b5f61373c84828501613494565b91505092915050565b5f61374f8261346d565b9050919050565b61375f81613745565b8114613769575f80fd5b50565b5f8135905061377a81613756565b92915050565b5f80604083850312156137965761379561332f565b5b5f6137a38582860161376c565b92505060206137b485828601613352565b9150509250929050565b5f80604083850312156137d4576137d361332f565b5b5f6137e185828601613494565b92505060206137f2858286016135cb565b9150509250929050565b5f80604083850312156138125761381161332f565b5b5f61381f85828601613494565b925050602061383085828601613494565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61386e6020836133ae565b91506138798261383a565b602082019050919050565b5f6020820190508181035f83015261389b81613862565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138d982613333565b91506138e483613333565b92508282019050808211156138fc576138fb6138a2565b5b92915050565b7f43616e6e6f7420657863656564203430252042757920666565730000000000005f82015250565b5f613936601a836133ae565b915061394182613902565b602082019050919050565b5f6020820190508181035f8301526139638161392a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806139ae57607f821691505b6020821081036139c1576139c061396a565b5b50919050565b7f43616e6e6f7420657863656564203430252053656c6c206665657300000000005f82015250565b5f6139fb601b836133ae565b9150613a06826139c7565b602082019050919050565b5f6020820190508181035f830152613a28816139ef565b9050919050565b7f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000005f82015250565b5f613a63601c836133ae565b9150613a6e82613a2f565b602082019050919050565b5f6020820190508181035f830152613a9081613a57565b9050919050565b7f4f6e6c79207468652072657363756520616464726573732063616e2063616c6c5f8201527f20746869732066756e6374696f6e000000000000000000000000000000000000602082015250565b5f613af1602e836133ae565b9150613afc82613a97565b604082019050919050565b5f6020820190508181035f830152613b1e81613ae5565b9050919050565b5f604082019050613b385f8301856136f2565b613b45602083018461358d565b9392505050565b5f81519050613b5a816135b5565b92915050565b5f60208284031215613b7557613b7461332f565b5b5f613b8284828501613b4c565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f414d4d2050616972730000000000000000000000000000000000000000000000602082015250565b5f613be56029836133ae565b9150613bf082613b8b565b604082019050919050565b5f6020820190508181035f830152613c1281613bd9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613c736026836133ae565b9150613c7e82613c19565b604082019050919050565b5f6020820190508181035f830152613ca081613c67565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d016024836133ae565b9150613d0c82613ca7565b604082019050919050565b5f6020820190508181035f830152613d2e81613cf5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d8f6022836133ae565b9150613d9a82613d35565b604082019050919050565b5f6020820190508181035f830152613dbc81613d83565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e1d6025836133ae565b9150613e2882613dc3565b604082019050919050565b5f6020820190508181035f830152613e4a81613e11565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613eab6023836133ae565b9150613eb682613e51565b604082019050919050565b5f6020820190508181035f830152613ed881613e9f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613f136016836133ae565b9150613f1e82613edf565b602082019050919050565b5f6020820190508181035f830152613f4081613f07565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f72616465416d6f756e742e000000000000000000000000000000000000000000602082015250565b5f613fa1602b836133ae565b9150613fac82613f47565b604082019050919050565b5f6020820190508181035f830152613fce81613f95565b9050919050565b7f4d617820486f6c64696e672065786365656465640000000000000000000000005f82015250565b5f6140096014836133ae565b915061401482613fd5565b602082019050919050565b5f6020820190508181035f83015261403681613ffd565b9050919050565b5f61404782613333565b915061405283613333565b925082820261406081613333565b91508282048414831517614077576140766138a2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6140b582613333565b91506140c083613333565b9250826140d0576140cf61407e565b5b828204905092915050565b5f6140e582613333565b91506140f083613333565b9250828203905081811115614108576141076138a2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614142601b836133ae565b915061414d8261410e565b602082019050919050565b5f6020820190508181035f83015261416f81614136565b9050919050565b5f81905092915050565b50565b5f61418e5f83614176565b915061419982614180565b5f82019050919050565b5f6141ad82614183565b9150819050919050565b5f6060820190506141ca5f83018661358d565b6141d7602083018561358d565b6141e4604083018461358d565b949350505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142466021836133ae565b9150614251826141ec565b604082019050919050565b5f6020820190508181035f8301526142738161423a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506142e28161347e565b92915050565b5f602082840312156142fd576142fc61332f565b5b5f61430a848285016142d4565b91505092915050565b5f819050919050565b5f61433661433161432c84614313565b613519565b613333565b9050919050565b6143468161431c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61437e8161346d565b82525050565b5f61438f8383614375565b60208301905092915050565b5f602082019050919050565b5f6143b18261434c565b6143bb8185614356565b93506143c683614366565b805f5b838110156143f65781516143dd8882614384565b97506143e88361439b565b9250506001810190506143c9565b5085935050505092915050565b5f60a0820190506144165f83018861358d565b614423602083018761433d565b818103604083015261443581866143a7565b905061444460608301856136f2565b614451608083018461358d565b9695505050505050565b5f60c08201905061446e5f8301896136f2565b61447b602083018861358d565b614488604083018761433d565b614495606083018661433d565b6144a260808301856136f2565b6144af60a083018461358d565b979650505050505050565b5f815190506144c88161333c565b92915050565b5f805f606084860312156144e5576144e461332f565b5b5f6144f2868287016144ba565b9350506020614503868287016144ba565b9250506040614514868287016144ba565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209618246e726a0e5fc2ef79b5dd98d5a03b98573a54174d919f5997e0f5440f2164736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000a0512f6e3b435f728bd9ec1c83ad2b1cb57cf5dd000000000000000000000000973d61ea55257d7bc6a3d6c82c1f835a54182e7300000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085157494b4d494e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045157494b00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): QWIKMINE
Arg [1] : symbol (string): QWIK
Arg [2] : _rescueAddress (address): 0xa0512f6e3B435f728BD9ec1c83aD2b1CB57Cf5Dd
Arg [3] : _taxWalletAddress (address): 0x973d61EA55257d7bc6a3d6C82C1F835a54182E73
Arg [4] : totalSupply (uint256): 1000000000000000000000000
Arg [5] : _buyProtocolFee (uint256): 0
Arg [6] : _sellProtocolFee (uint256): 0
Arg [7] : _quickSellProtocolFee (uint256): 0
Arg [8] : _buyLiquidityFee (uint256): 0
Arg [9] : _sellLiquidityFee (uint256): 0
Arg [10] : _quickSellLiquidityFee (uint256): 0
-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [2] : 000000000000000000000000a0512f6e3b435f728bd9ec1c83ad2b1cb57cf5dd
Arg [3] : 000000000000000000000000973d61ea55257d7bc6a3d6c82c1f835a54182e73
Arg [4] : 00000000000000000000000000000000000000000000d3c21bcecceda1000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [12] : 5157494b4d494e45000000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [14] : 5157494b00000000000000000000000000000000000000000000000000000000
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.