ERC-20
Overview
Max Total Supply
1,000,000,000 SEAL
Holders
72
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,221,519.007758296453956312 SEALValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SEAL
Compiler Version
v0.8.8+commit.dddeac2f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-14 */ // SPDX-License-Identifier:MIT /* Website: https://www.freakinsealswithfreakinheadphones.wtf/ Twitter: https://twitter.com/freakinseals Telegram: https://t.me/freakinsealsportal */ pragma solidity ^0.8.8; 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 ); } // Dex Factory contract interface interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } // Dex Router contract interface interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } 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 = payable(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; } } contract SEAL is Context, IERC20, Ownable { string private _name = "FreakinSealsWithFreakinHeadphones"; string private _symbol = "SEAL"; uint8 private _decimals = 18; uint256 private _totalSupply = 1000000000 * 1e18; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isExcludedFromMaxTxn; mapping(address => bool) public isExcludedFromMaxHolding; uint256 public minTokenToSwap = (_totalSupply * 5) / (10000); // this amount will trigger swap and distribute uint256 public maxHoldLimit = 20000000* 1e18; // this is the max wallet holding limit uint256 public maxTxnLimit = 20000000* 1e18; // this is the max transaction limit uint256 public percentDivider = 100; uint256 public launchedAt; bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool bool public feesStatus; // enable by default bool public trading; // once enable can't be disable afterwards IDexRouter public dexRouter; // router declaration address public dexPair; // pair address declaration address public marketingWallet; // marketing address declaration address private constant DEAD = address(0xdead); address private constant ZERO = address(0); uint256 public marketingFeeOnBuying = 10; uint256 public marketingFeeOnSelling = 20; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor() { _balances[owner()] = _totalSupply; marketingWallet = address(0x589e698aC47900D3F984ACb7e2b567bEe20F6f0b); dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); isExcludedFromFee[address(dexRouter)] = true; isExcludedFromMaxTxn[address(dexRouter)] = true; isExcludedFromMaxHolding[address(dexRouter)] = true; dexPair = IDexFactory(dexRouter.factory()).createPair( address(this), dexRouter.WETH() ); isExcludedFromMaxHolding[dexPair] = true; //exclude owner and this contract from fee isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; //exclude owner and this contract from max Txn isExcludedFromMaxTxn[owner()] = true; isExcludedFromMaxTxn[address(this)] = true; //exclude owner and this contract from max hold limit isExcludedFromMaxHolding[owner()] = true; isExcludedFromMaxHolding[address(this)] = true; isExcludedFromMaxHolding[marketingWallet] = true; emit Transfer(address(0), owner(), _totalSupply); } //to receive ETH from dexRouter when swapping receive() external payable {} function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + (addedValue) ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue ); return true; } function includeOrExcludeFromFee( address account, bool value ) external onlyOwner { isExcludedFromFee[account] = value; } function includeOrExcludeFromMaxTxn( address account, bool value ) external onlyOwner { isExcludedFromMaxTxn[account] = value; } function includeOrExcludeFromMaxHolding( address account, bool value ) external onlyOwner { isExcludedFromMaxHolding[account] = value; } function setMinTokenToSwap(uint256 _amount) external onlyOwner { minTokenToSwap = _amount * 1e18; } function setMaxHoldLimit(uint256 _amount) external onlyOwner { maxHoldLimit = _amount * 1e18; } function setMaxTxnLimit(uint256 _amount) external onlyOwner { maxTxnLimit = _amount * 1e18; } function setBuyFeePercent(uint256 _marketingFee) external onlyOwner { marketingFeeOnBuying = _marketingFee; } function setSellFeePercent(uint256 _marketingFee) external onlyOwner { marketingFeeOnSelling = _marketingFee; } function setDistributionStatus(bool _value) public onlyOwner { distributeAndLiquifyStatus = _value; } function enableOrDisableFees(bool _value) external onlyOwner { feesStatus = _value; } function updateAddresses(address _marketingWallet) external onlyOwner { marketingWallet = _marketingWallet; } function enableTrading() external onlyOwner { require(!trading, ": already enabled"); trading = true; feesStatus = true; distributeAndLiquifyStatus = true; launchedAt = block.timestamp; } function removeStuckEth(address _receiver) public onlyOwner { payable(_receiver).transfer(address(this).balance); } function totalBuyFeePerTx(uint256 amount) public view returns (uint256) { uint256 fee = (amount * marketingFeeOnBuying) / (percentDivider); return fee; } function totalSellFeePerTx(uint256 amount) public view returns (uint256) { uint256 fee = (amount * marketingFeeOnSelling) / (percentDivider); return fee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), " approve from the zero address"); require(spender != address(0), "approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "transfer from the zero address"); require(to != address(0), "transfer to the zero address"); require(amount > 0, "Amount must be greater than zero"); if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) { require(amount <= maxTxnLimit, " max txn limit exceeds"); // trading disable till launch if (!trading) { require( dexPair != from && dexPair != to, ": trading is disable" ); } } if (!isExcludedFromMaxHolding[to]) { require( (balanceOf(to) + amount) <= maxHoldLimit, ": max hold limit exceeds" ); } // swap and liquify distributeAndLiquify(from, to); //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to isExcludedFromFee account then remove the fee if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) { takeFee = false; } //transfer amount, it will take tax, burn, liquidity fee _tokenTransfer(from, to, amount, takeFee); } //this method is responsible for taking all fees, if takeFee is true function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (dexPair == sender && takeFee) { uint256 allFee; uint256 tTransferAmount; allFee = totalBuyFeePerTx(amount); tTransferAmount = amount - allFee; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); } else if (dexPair == recipient && takeFee) { uint256 allFee = totalSellFeePerTx(amount); uint256 tTransferAmount = amount - allFee; _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + tTransferAmount; emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); } else { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + (amount); emit Transfer(sender, recipient, amount); } } function takeTokenFee(address sender, uint256 amount) private { _balances[address(this)] = _balances[address(this)] + (amount); emit Transfer(sender, address(this), amount); } // to withdarw ETH from contract function withdrawETH(uint256 _amount) external onlyOwner { require(address(this).balance >= _amount, "Invalid Amount"); payable(msg.sender).transfer(_amount); } // to withdraw ERC20 tokens from contract function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner { require(_token.balanceOf(address(this)) >= _amount, "Invalid Amount"); _token.transfer(msg.sender, _amount); } function distributeAndLiquify(address from, address to) private { uint256 contractTokenBalance = balanceOf(address(this)); bool shouldSell = contractTokenBalance >= minTokenToSwap; if ( shouldSell && from != dexPair && distributeAndLiquifyStatus && !(from == address(this) && to == dexPair) // swap 1 time ) { // approve contract _approve(address(this), address(dexRouter), minTokenToSwap); // now is to lock into liquidty pool Utils.swapTokensForEth(address(dexRouter), minTokenToSwap); uint256 ethForMarketing = address(this).balance; // sending Eth to Marketing wallet if (ethForMarketing > 0) payable(marketingWallet).transfer(ethForMarketing); } } } // Library for swapping on Dex library Utils { function swapTokensForEth( address routerAddress, uint256 tokenAmount ) internal { IDexRouter dexRouter = IDexRouter(routerAddress); // generate the Dex pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp + 300 ); } function addLiquidity( address routerAddress, address owner, uint256 tokenAmount, uint256 ethAmount ) internal { IDexRouter dexRouter = IDexRouter(routerAddress); // add the liquidity dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp + 300 ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260405180606001604052806021815260200162004ee960219139600190805190602001906200003592919062000a3f565b506040518060400160405280600481526020017f5345414c00000000000000000000000000000000000000000000000000000000815250600290805190602001906200008392919062000a3f565b506012600360006101000a81548160ff021916908360ff1602179055506b033b2e3c9fd0803ce80000006004556127106005600454620000c4919062000b28565b620000d0919062000bb8565b600a556a108b2a2c28029094000000600b556a108b2a2c28029094000000600c556064600d55600a60125560146013553480156200010d57600080fd5b506200011e62000a0e60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360045460056000620001ef62000a1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073589e698ac47900d3f984acb7e2b567bee20f6f0b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600f60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620004ae57600080fd5b505afa158015620004c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e9919062000c5a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200056e57600080fd5b505afa15801562000583573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a9919062000c5a565b6040518363ffffffff1660e01b8152600401620005c892919062000c9d565b602060405180830381600087803b158015620005e357600080fd5b505af1158015620005f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061e919062000c5a565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000620006ee62000a1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000620007ad62000a1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200086c62000a1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200099f62000a1660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000a00919062000cdb565b60405180910390a362000d5d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000a4d9062000d27565b90600052602060002090601f01602090048101928262000a71576000855562000abd565b82601f1062000a8c57805160ff191683800117855562000abd565b8280016001018555821562000abd579182015b8281111562000abc57825182559160200191906001019062000a9f565b5b50905062000acc919062000ad0565b5090565b5b8082111562000aeb57600081600090555060010162000ad1565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b358262000aef565b915062000b428362000aef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b7e5762000b7d62000af9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bc58262000aef565b915062000bd28362000aef565b92508262000be55762000be462000b89565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c228262000bf5565b9050919050565b62000c348162000c15565b811462000c4057600080fd5b50565b60008151905062000c548162000c29565b92915050565b60006020828403121562000c735762000c7262000bf0565b5b600062000c838482850162000c43565b91505092915050565b62000c978162000c15565b82525050565b600060408201905062000cb4600083018562000c8c565b62000cc3602083018462000c8c565b9392505050565b62000cd58162000aef565b82525050565b600060208201905062000cf2600083018462000cca565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d4057607f821691505b6020821081141562000d575762000d5662000cf8565b5b50919050565b61417c8062000d6d6000396000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063b0bc2a2d116100c1578063f097ea1a1161007a578063f097ea1a14610a01578063f14210a614610a2a578063f242ab4114610a53578063f2fde38b14610a7e578063f4b3dbc314610aa7578063fe6f1b0514610ae457610293565b8063b0bc2a2d146108df578063bf56b37114610908578063dd62ed3e14610933578063ea5b9e8514610970578063ec44acf214610999578063ed421429146109c457610293565b80639e281a98116101135780639e281a98146107c1578063a2b8a947146107ea578063a457c2d714610813578063a643c1a014610850578063a7c29b4014610879578063a9059cbb146108a257610293565b80638da5cb5b146106b1578063950eb5d5146106dc57806395d89b411461070557806399b102b5146107305780639a36dfa11461076d5780639b6a27501461079857610293565b8063679a3c59116101fe5780637c6a9a9c116101b75780637c6a9a9c146105b3578063844af78e146105de57806384ea21bc146106095780638756aabd14610646578063879dd3c51461066f5780638a8c523c1461069a57610293565b8063679a3c59146104b5578063681aa362146104de57806370a0823114610509578063715018a61461054657806375f0a8741461055d57806379777b4e1461058857610293565b80631884f1e6116102505780631884f1e61461037f57806323b872dd146103aa5780632d129390146103e7578063313ce56714610410578063395093511461043b5780635342acb41461047857610293565b806306fdde03146102985780630758d924146102c3578063095ea7b3146102ee5780630a2d140c1461032b57806318160ddd1461035457610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b0f565b6040516102ba9190613362565b60405180910390f35b3480156102cf57600080fd5b506102d8610ba1565b6040516102e59190613403565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613497565b610bc7565b60405161032291906134f2565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190613539565b610be5565b005b34801561036057600080fd5b50610369610c97565b6040516103769190613575565b60405180910390f35b34801561038b57600080fd5b50610394610ca1565b6040516103a19190613575565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190613590565b610ca7565b6040516103de91906134f2565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906135e3565b610d5f565b005b34801561041c57600080fd5b50610425610e4f565b604051610432919061363f565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190613497565b610e66565b60405161046f91906134f2565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061365a565b610f12565b6040516104ac91906134f2565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061365a565b610f32565b005b3480156104ea57600080fd5b506104f3611011565b6040516105009190613575565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b919061365a565b611017565b60405161053d9190613575565b60405180910390f35b34801561055257600080fd5b5061055b611060565b005b34801561056957600080fd5b506105726111b3565b60405161057f9190613696565b60405180910390f35b34801561059457600080fd5b5061059d6111d9565b6040516105aa91906134f2565b60405180910390f35b3480156105bf57600080fd5b506105c86111ec565b6040516105d59190613575565b60405180910390f35b3480156105ea57600080fd5b506105f36111f2565b6040516106009190613575565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061365a565b6111f8565b60405161063d91906134f2565b60405180910390f35b34801561065257600080fd5b5061066d600480360381019061066891906136b1565b611218565b005b34801561067b57600080fd5b506106846112ca565b60405161069191906134f2565b60405180910390f35b3480156106a657600080fd5b506106af6112dd565b005b3480156106bd57600080fd5b506106c661141c565b6040516106d39190613696565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906136b1565b611445565b005b34801561071157600080fd5b5061071a6114e4565b6040516107279190613362565b60405180910390f35b34801561073c57600080fd5b506107576004803603810190610752919061365a565b611576565b60405161076491906134f2565b60405180910390f35b34801561077957600080fd5b50610782611596565b60405161078f9190613575565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba91906136b1565b61159c565b005b3480156107cd57600080fd5b506107e860048036038101906107e3919061371c565b61164e565b005b3480156107f657600080fd5b50610811600480360381019061080c91906136b1565b611840565b005b34801561081f57600080fd5b5061083a60048036038101906108359190613497565b6118df565b60405161084791906134f2565b60405180910390f35b34801561085c57600080fd5b506108776004803603810190610872919061365a565b61198b565b005b34801561088557600080fd5b506108a0600480360381019061089b91906135e3565b611a64565b005b3480156108ae57600080fd5b506108c960048036038101906108c49190613497565b611b54565b6040516108d691906134f2565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613539565b611b72565b005b34801561091457600080fd5b5061091d611c24565b60405161092a9190613575565b60405180910390f35b34801561093f57600080fd5b5061095a6004803603810190610955919061375c565b611c2a565b6040516109679190613575565b60405180910390f35b34801561097c57600080fd5b50610997600480360381019061099291906135e3565b611cb1565b005b3480156109a557600080fd5b506109ae611da1565b6040516109bb91906134f2565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906136b1565b611db4565b6040516109f89190613575565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a2391906136b1565b611ddd565b005b348015610a3657600080fd5b50610a516004803603810190610a4c91906136b1565b611e8f565b005b348015610a5f57600080fd5b50610a68611fb1565b604051610a759190613696565b60405180910390f35b348015610a8a57600080fd5b50610aa56004803603810190610aa0919061365a565b611fd7565b005b348015610ab357600080fd5b50610ace6004803603810190610ac991906136b1565b612199565b604051610adb9190613575565b60405180910390f35b348015610af057600080fd5b50610af96121c2565b604051610b069190613575565b60405180910390f35b606060018054610b1e906137cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a906137cb565b8015610b975780601f10610b6c57610100808354040283529160200191610b97565b820191906000526020600020905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bdb610bd46121c8565b84846121d0565b6001905092915050565b610bed6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190613849565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000600454905090565b600a5481565b6000610cb484848461239b565b610d5484610cc06121c8565b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d0a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4f9190613898565b6121d0565b600190509392505050565b610d676121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613849565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360009054906101000a900460ff16905090565b6000610f08610e736121c8565b848460066000610e816121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f0391906138cc565b6121d0565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b610f3a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90613849565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561100d573d6000803e3d6000fd5b5050565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110686121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900460ff1681565b60125481565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b6112206121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490613849565b60405180910390fd5b670de0b6b3a7640000816112c19190613922565b600b8190555050565b600f60019054906101000a900460ff1681565b6112e56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613849565b60405180910390fd5b600f60029054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906139c8565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff02191690831515021790555042600e81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61144d6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613849565b60405180910390fd5b8060128190555050565b6060600280546114f3906137cb565b80601f016020809104026020016040519081016040528092919081815260200182805461151f906137cb565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b5050505050905090565b60086020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6115a46121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613849565b60405180910390fd5b670de0b6b3a7640000816116459190613922565b600c8190555050565b6116566121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613849565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161171d9190613696565b60206040518083038186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d91906139fd565b10156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590613a76565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117e9929190613a96565b602060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190613ad4565b505050565b6118486121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613849565b60405180910390fd5b8060138190555050565b60006119816118ec6121c8565b8484600660006118fa6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197c9190613898565b6121d0565b6001905092915050565b6119936121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790613849565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a6c6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af090613849565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b68611b616121c8565b848461239b565b6001905092915050565b611b7a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe90613849565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cb96121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613849565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60029054906101000a900460ff1681565b600080600d5460125484611dc89190613922565b611dd29190613b30565b905080915050919050565b611de56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613849565b60405180910390fd5b670de0b6b3a764000081611e869190613922565b600a8190555050565b611e976121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90613849565b60405180910390fd5b80471015611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e90613a76565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fad573d6000803e3d6000fd5b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fdf6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d390613bd3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600d54601354846121ad9190613922565b6121b79190613b30565b905080915050919050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613cab565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238e9190613575565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247290613d83565b60405180910390fd5b600081116124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b590613def565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125625750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126ad57600c548111156125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a390613e5b565b60405180910390fd5b600f60029054906101000a900460ff166126ac578273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561266c57508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6126ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a290613ec7565b60405180910390fd5b5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275757600b548161270b84611017565b61271591906138cc565b1115612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d90613f33565b60405180910390fd5b5b612761838361283c565b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128085750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128205750600f60019054906101000a900460ff16155b1561282a57600090505b61283684848484612a39565b50505050565b600061284730611017565b90506000600a5482101590508080156128ae5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128c65750600f60009054906101000a900460ff165b801561295757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129555750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612a335761298b30600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546121d0565b6129b9600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612fdd565b60004790506000811115612a3157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a2f573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612a935750805b15612c4657600080612aa484611db4565b91508184612ab29190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8d91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c2d9190613575565b60405180910390a3612c3f86836131d2565b5050612fd7565b8273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612ca05750805b15612e54576000612cb083612199565b905060008184612cc09190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9b91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e3b9190613575565b60405180910390a3612e4d86836131d2565b5050612fd6565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9f9190613898565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2d91906138cc565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fcd9190613575565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff811115612fff57612ffe613f53565b5b60405190808252806020026020018201604052801561302d5781602001602082028036833780820191505090505b509050308160008151811061304557613044613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c557600080fd5b505afa1580156130d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fd9190613fc6565b8160018151811061311157613110613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261317a91906138cc565b6040518663ffffffff1660e01b815260040161319a9594939291906140ec565b600060405180830381600087803b1580156131b457600080fd5b505af11580156131c8573d6000803e3d6000fd5b5050505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321d91906138cc565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132bd9190613575565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133035780820151818401526020810190506132e8565b83811115613312576000848401525b50505050565b6000601f19601f8301169050919050565b6000613334826132c9565b61333e81856132d4565b935061334e8185602086016132e5565b61335781613318565b840191505092915050565b6000602082019050818103600083015261337c8184613329565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006133c96133c46133bf84613384565b6133a4565b613384565b9050919050565b60006133db826133ae565b9050919050565b60006133ed826133d0565b9050919050565b6133fd816133e2565b82525050565b600060208201905061341860008301846133f4565b92915050565b600080fd5b600061342e82613384565b9050919050565b61343e81613423565b811461344957600080fd5b50565b60008135905061345b81613435565b92915050565b6000819050919050565b61347481613461565b811461347f57600080fd5b50565b6000813590506134918161346b565b92915050565b600080604083850312156134ae576134ad61341e565b5b60006134bc8582860161344c565b92505060206134cd85828601613482565b9150509250929050565b60008115159050919050565b6134ec816134d7565b82525050565b600060208201905061350760008301846134e3565b92915050565b613516816134d7565b811461352157600080fd5b50565b6000813590506135338161350d565b92915050565b60006020828403121561354f5761354e61341e565b5b600061355d84828501613524565b91505092915050565b61356f81613461565b82525050565b600060208201905061358a6000830184613566565b92915050565b6000806000606084860312156135a9576135a861341e565b5b60006135b78682870161344c565b93505060206135c88682870161344c565b92505060406135d986828701613482565b9150509250925092565b600080604083850312156135fa576135f961341e565b5b60006136088582860161344c565b925050602061361985828601613524565b9150509250929050565b600060ff82169050919050565b61363981613623565b82525050565b60006020820190506136546000830184613630565b92915050565b6000602082840312156136705761366f61341e565b5b600061367e8482850161344c565b91505092915050565b61369081613423565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c661341e565b5b60006136d584828501613482565b91505092915050565b60006136e982613423565b9050919050565b6136f9816136de565b811461370457600080fd5b50565b600081359050613716816136f0565b92915050565b600080604083850312156137335761373261341e565b5b600061374185828601613707565b925050602061375285828601613482565b9150509250929050565b600080604083850312156137735761377261341e565b5b60006137818582860161344c565b92505060206137928582860161344c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137e357607f821691505b602082108114156137f7576137f661379c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138336020836132d4565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a382613461565b91506138ae83613461565b9250828210156138c1576138c0613869565b5b828203905092915050565b60006138d782613461565b91506138e283613461565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561391757613916613869565b5b828201905092915050565b600061392d82613461565b915061393883613461565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561397157613970613869565b5b828202905092915050565b7f3a20616c726561647920656e61626c6564000000000000000000000000000000600082015250565b60006139b26011836132d4565b91506139bd8261397c565b602082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b6000815190506139f78161346b565b92915050565b600060208284031215613a1357613a1261341e565b5b6000613a21848285016139e8565b91505092915050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b6000613a60600e836132d4565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b6000604082019050613aab6000830185613687565b613ab86020830184613566565b9392505050565b600081519050613ace8161350d565b92915050565b600060208284031215613aea57613ae961341e565b5b6000613af884828501613abf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b3b82613461565b9150613b4683613461565b925082613b5657613b55613b01565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bbd6026836132d4565b9150613bc882613b61565b604082019050919050565b60006020820190508181036000830152613bec81613bb0565b9050919050565b7f20617070726f76652066726f6d20746865207a65726f20616464726573730000600082015250565b6000613c29601e836132d4565b9150613c3482613bf3565b602082019050919050565b60006020820190508181036000830152613c5881613c1c565b9050919050565b7f617070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b6000613c95601b836132d4565b9150613ca082613c5f565b602082019050919050565b60006020820190508181036000830152613cc481613c88565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000613d01601e836132d4565b9150613d0c82613ccb565b602082019050919050565b60006020820190508181036000830152613d3081613cf4565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000613d6d601c836132d4565b9150613d7882613d37565b602082019050919050565b60006020820190508181036000830152613d9c81613d60565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000613dd96020836132d4565b9150613de482613da3565b602082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b7f206d61782074786e206c696d6974206578636565647300000000000000000000600082015250565b6000613e456016836132d4565b9150613e5082613e0f565b602082019050919050565b60006020820190508181036000830152613e7481613e38565b9050919050565b7f3a2074726164696e672069732064697361626c65000000000000000000000000600082015250565b6000613eb16014836132d4565b9150613ebc82613e7b565b602082019050919050565b60006020820190508181036000830152613ee081613ea4565b9050919050565b7f3a206d617820686f6c64206c696d697420657863656564730000000000000000600082015250565b6000613f1d6018836132d4565b9150613f2882613ee7565b602082019050919050565b60006020820190508181036000830152613f4c81613f10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fc081613435565b92915050565b600060208284031215613fdc57613fdb61341e565b5b6000613fea84828501613fb1565b91505092915050565b6000819050919050565b600061401861401361400e84613ff3565b6133a4565b613461565b9050919050565b61402881613ffd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61406381613423565b82525050565b6000614075838361405a565b60208301905092915050565b6000602082019050919050565b60006140998261402e565b6140a38185614039565b93506140ae8361404a565b8060005b838110156140df5781516140c68882614069565b97506140d183614081565b9250506001810190506140b2565b5085935050505092915050565b600060a0820190506141016000830188613566565b61410e602083018761401f565b8181036040830152614120818661408e565b905061412f6060830185613687565b61413c6080830184613566565b969550505050505056fea2646970667358221220bc7d5c878c974dc120963212ce5caf8250deaf9ec4627d1374c2aa1f440a782064736f6c63430008080033467265616b696e5365616c7357697468467265616b696e4865616470686f6e6573
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063b0bc2a2d116100c1578063f097ea1a1161007a578063f097ea1a14610a01578063f14210a614610a2a578063f242ab4114610a53578063f2fde38b14610a7e578063f4b3dbc314610aa7578063fe6f1b0514610ae457610293565b8063b0bc2a2d146108df578063bf56b37114610908578063dd62ed3e14610933578063ea5b9e8514610970578063ec44acf214610999578063ed421429146109c457610293565b80639e281a98116101135780639e281a98146107c1578063a2b8a947146107ea578063a457c2d714610813578063a643c1a014610850578063a7c29b4014610879578063a9059cbb146108a257610293565b80638da5cb5b146106b1578063950eb5d5146106dc57806395d89b411461070557806399b102b5146107305780639a36dfa11461076d5780639b6a27501461079857610293565b8063679a3c59116101fe5780637c6a9a9c116101b75780637c6a9a9c146105b3578063844af78e146105de57806384ea21bc146106095780638756aabd14610646578063879dd3c51461066f5780638a8c523c1461069a57610293565b8063679a3c59146104b5578063681aa362146104de57806370a0823114610509578063715018a61461054657806375f0a8741461055d57806379777b4e1461058857610293565b80631884f1e6116102505780631884f1e61461037f57806323b872dd146103aa5780632d129390146103e7578063313ce56714610410578063395093511461043b5780635342acb41461047857610293565b806306fdde03146102985780630758d924146102c3578063095ea7b3146102ee5780630a2d140c1461032b57806318160ddd1461035457610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b0f565b6040516102ba9190613362565b60405180910390f35b3480156102cf57600080fd5b506102d8610ba1565b6040516102e59190613403565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190613497565b610bc7565b60405161032291906134f2565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190613539565b610be5565b005b34801561036057600080fd5b50610369610c97565b6040516103769190613575565b60405180910390f35b34801561038b57600080fd5b50610394610ca1565b6040516103a19190613575565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190613590565b610ca7565b6040516103de91906134f2565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906135e3565b610d5f565b005b34801561041c57600080fd5b50610425610e4f565b604051610432919061363f565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190613497565b610e66565b60405161046f91906134f2565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061365a565b610f12565b6040516104ac91906134f2565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061365a565b610f32565b005b3480156104ea57600080fd5b506104f3611011565b6040516105009190613575565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b919061365a565b611017565b60405161053d9190613575565b60405180910390f35b34801561055257600080fd5b5061055b611060565b005b34801561056957600080fd5b506105726111b3565b60405161057f9190613696565b60405180910390f35b34801561059457600080fd5b5061059d6111d9565b6040516105aa91906134f2565b60405180910390f35b3480156105bf57600080fd5b506105c86111ec565b6040516105d59190613575565b60405180910390f35b3480156105ea57600080fd5b506105f36111f2565b6040516106009190613575565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061365a565b6111f8565b60405161063d91906134f2565b60405180910390f35b34801561065257600080fd5b5061066d600480360381019061066891906136b1565b611218565b005b34801561067b57600080fd5b506106846112ca565b60405161069191906134f2565b60405180910390f35b3480156106a657600080fd5b506106af6112dd565b005b3480156106bd57600080fd5b506106c661141c565b6040516106d39190613696565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe91906136b1565b611445565b005b34801561071157600080fd5b5061071a6114e4565b6040516107279190613362565b60405180910390f35b34801561073c57600080fd5b506107576004803603810190610752919061365a565b611576565b60405161076491906134f2565b60405180910390f35b34801561077957600080fd5b50610782611596565b60405161078f9190613575565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba91906136b1565b61159c565b005b3480156107cd57600080fd5b506107e860048036038101906107e3919061371c565b61164e565b005b3480156107f657600080fd5b50610811600480360381019061080c91906136b1565b611840565b005b34801561081f57600080fd5b5061083a60048036038101906108359190613497565b6118df565b60405161084791906134f2565b60405180910390f35b34801561085c57600080fd5b506108776004803603810190610872919061365a565b61198b565b005b34801561088557600080fd5b506108a0600480360381019061089b91906135e3565b611a64565b005b3480156108ae57600080fd5b506108c960048036038101906108c49190613497565b611b54565b6040516108d691906134f2565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613539565b611b72565b005b34801561091457600080fd5b5061091d611c24565b60405161092a9190613575565b60405180910390f35b34801561093f57600080fd5b5061095a6004803603810190610955919061375c565b611c2a565b6040516109679190613575565b60405180910390f35b34801561097c57600080fd5b50610997600480360381019061099291906135e3565b611cb1565b005b3480156109a557600080fd5b506109ae611da1565b6040516109bb91906134f2565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906136b1565b611db4565b6040516109f89190613575565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a2391906136b1565b611ddd565b005b348015610a3657600080fd5b50610a516004803603810190610a4c91906136b1565b611e8f565b005b348015610a5f57600080fd5b50610a68611fb1565b604051610a759190613696565b60405180910390f35b348015610a8a57600080fd5b50610aa56004803603810190610aa0919061365a565b611fd7565b005b348015610ab357600080fd5b50610ace6004803603810190610ac991906136b1565b612199565b604051610adb9190613575565b60405180910390f35b348015610af057600080fd5b50610af96121c2565b604051610b069190613575565b60405180910390f35b606060018054610b1e906137cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a906137cb565b8015610b975780601f10610b6c57610100808354040283529160200191610b97565b820191906000526020600020905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bdb610bd46121c8565b84846121d0565b6001905092915050565b610bed6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7190613849565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000600454905090565b600a5481565b6000610cb484848461239b565b610d5484610cc06121c8565b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d0a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d4f9190613898565b6121d0565b600190509392505050565b610d676121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613849565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360009054906101000a900460ff16905090565b6000610f08610e736121c8565b848460066000610e816121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f0391906138cc565b6121d0565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b610f3a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90613849565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561100d573d6000803e3d6000fd5b5050565b600c5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110686121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900460ff1681565b60125481565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b6112206121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490613849565b60405180910390fd5b670de0b6b3a7640000816112c19190613922565b600b8190555050565b600f60019054906101000a900460ff1681565b6112e56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613849565b60405180910390fd5b600f60029054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b9906139c8565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff02191690831515021790555042600e81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61144d6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d190613849565b60405180910390fd5b8060128190555050565b6060600280546114f3906137cb565b80601f016020809104026020016040519081016040528092919081815260200182805461151f906137cb565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b5050505050905090565b60086020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6115a46121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613849565b60405180910390fd5b670de0b6b3a7640000816116459190613922565b600c8190555050565b6116566121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613849565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161171d9190613696565b60206040518083038186803b15801561173557600080fd5b505afa158015611749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176d91906139fd565b10156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590613a76565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016117e9929190613a96565b602060405180830381600087803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190613ad4565b505050565b6118486121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613849565b60405180910390fd5b8060138190555050565b60006119816118ec6121c8565b8484600660006118fa6121c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197c9190613898565b6121d0565b6001905092915050565b6119936121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790613849565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a6c6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af090613849565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611b68611b616121c8565b848461239b565b6001905092915050565b611b7a6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe90613849565b60405180910390fd5b80600f60016101000a81548160ff02191690831515021790555050565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cb96121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d90613849565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60029054906101000a900460ff1681565b600080600d5460125484611dc89190613922565b611dd29190613b30565b905080915050919050565b611de56121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613849565b60405180910390fd5b670de0b6b3a764000081611e869190613922565b600a8190555050565b611e976121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b90613849565b60405180910390fd5b80471015611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e90613a76565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fad573d6000803e3d6000fd5b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fdf6121c8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390613849565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d390613bd3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600d54601354846121ad9190613922565b6121b79190613b30565b905080915050919050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613cab565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238e9190613575565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613d17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247290613d83565b60405180910390fd5b600081116124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b590613def565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125625750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126ad57600c548111156125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a390613e5b565b60405180910390fd5b600f60029054906101000a900460ff166126ac578273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561266c57508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6126ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a290613ec7565b60405180910390fd5b5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661275757600b548161270b84611017565b61271591906138cc565b1115612756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274d90613f33565b60405180910390fd5b5b612761838361283c565b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128085750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128205750600f60019054906101000a900460ff16155b1561282a57600090505b61283684848484612a39565b50505050565b600061284730611017565b90506000600a5482101590508080156128ae5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128c65750600f60009054906101000a900460ff165b801561295757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129555750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612a335761298b30600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546121d0565b6129b9600f60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612fdd565b60004790506000811115612a3157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a2f573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612a935750805b15612c4657600080612aa484611db4565b91508184612ab29190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8d91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c2d9190613575565b60405180910390a3612c3f86836131d2565b5050612fd7565b8273ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612ca05750805b15612e54576000612cb083612199565b905060008184612cc09190613898565b905083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0d9190613898565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9b91906138cc565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e3b9190613575565b60405180910390a3612e4d86836131d2565b5050612fd6565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9f9190613898565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2d91906138cc565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fcd9190613575565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff811115612fff57612ffe613f53565b5b60405190808252806020026020018201604052801561302d5781602001602082028036833780820191505090505b509050308160008151811061304557613044613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156130c557600080fd5b505afa1580156130d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fd9190613fc6565b8160018151811061311157613110613f82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261317a91906138cc565b6040518663ffffffff1660e01b815260040161319a9594939291906140ec565b600060405180830381600087803b1580156131b457600080fd5b505af11580156131c8573d6000803e3d6000fd5b5050505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321d91906138cc565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132bd9190613575565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133035780820151818401526020810190506132e8565b83811115613312576000848401525b50505050565b6000601f19601f8301169050919050565b6000613334826132c9565b61333e81856132d4565b935061334e8185602086016132e5565b61335781613318565b840191505092915050565b6000602082019050818103600083015261337c8184613329565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006133c96133c46133bf84613384565b6133a4565b613384565b9050919050565b60006133db826133ae565b9050919050565b60006133ed826133d0565b9050919050565b6133fd816133e2565b82525050565b600060208201905061341860008301846133f4565b92915050565b600080fd5b600061342e82613384565b9050919050565b61343e81613423565b811461344957600080fd5b50565b60008135905061345b81613435565b92915050565b6000819050919050565b61347481613461565b811461347f57600080fd5b50565b6000813590506134918161346b565b92915050565b600080604083850312156134ae576134ad61341e565b5b60006134bc8582860161344c565b92505060206134cd85828601613482565b9150509250929050565b60008115159050919050565b6134ec816134d7565b82525050565b600060208201905061350760008301846134e3565b92915050565b613516816134d7565b811461352157600080fd5b50565b6000813590506135338161350d565b92915050565b60006020828403121561354f5761354e61341e565b5b600061355d84828501613524565b91505092915050565b61356f81613461565b82525050565b600060208201905061358a6000830184613566565b92915050565b6000806000606084860312156135a9576135a861341e565b5b60006135b78682870161344c565b93505060206135c88682870161344c565b92505060406135d986828701613482565b9150509250925092565b600080604083850312156135fa576135f961341e565b5b60006136088582860161344c565b925050602061361985828601613524565b9150509250929050565b600060ff82169050919050565b61363981613623565b82525050565b60006020820190506136546000830184613630565b92915050565b6000602082840312156136705761366f61341e565b5b600061367e8482850161344c565b91505092915050565b61369081613423565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c661341e565b5b60006136d584828501613482565b91505092915050565b60006136e982613423565b9050919050565b6136f9816136de565b811461370457600080fd5b50565b600081359050613716816136f0565b92915050565b600080604083850312156137335761373261341e565b5b600061374185828601613707565b925050602061375285828601613482565b9150509250929050565b600080604083850312156137735761377261341e565b5b60006137818582860161344c565b92505060206137928582860161344c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137e357607f821691505b602082108114156137f7576137f661379c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138336020836132d4565b915061383e826137fd565b602082019050919050565b6000602082019050818103600083015261386281613826565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138a382613461565b91506138ae83613461565b9250828210156138c1576138c0613869565b5b828203905092915050565b60006138d782613461565b91506138e283613461565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561391757613916613869565b5b828201905092915050565b600061392d82613461565b915061393883613461565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561397157613970613869565b5b828202905092915050565b7f3a20616c726561647920656e61626c6564000000000000000000000000000000600082015250565b60006139b26011836132d4565b91506139bd8261397c565b602082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b6000815190506139f78161346b565b92915050565b600060208284031215613a1357613a1261341e565b5b6000613a21848285016139e8565b91505092915050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b6000613a60600e836132d4565b9150613a6b82613a2a565b602082019050919050565b60006020820190508181036000830152613a8f81613a53565b9050919050565b6000604082019050613aab6000830185613687565b613ab86020830184613566565b9392505050565b600081519050613ace8161350d565b92915050565b600060208284031215613aea57613ae961341e565b5b6000613af884828501613abf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b3b82613461565b9150613b4683613461565b925082613b5657613b55613b01565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bbd6026836132d4565b9150613bc882613b61565b604082019050919050565b60006020820190508181036000830152613bec81613bb0565b9050919050565b7f20617070726f76652066726f6d20746865207a65726f20616464726573730000600082015250565b6000613c29601e836132d4565b9150613c3482613bf3565b602082019050919050565b60006020820190508181036000830152613c5881613c1c565b9050919050565b7f617070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b6000613c95601b836132d4565b9150613ca082613c5f565b602082019050919050565b60006020820190508181036000830152613cc481613c88565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000613d01601e836132d4565b9150613d0c82613ccb565b602082019050919050565b60006020820190508181036000830152613d3081613cf4565b9050919050565b7f7472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000613d6d601c836132d4565b9150613d7882613d37565b602082019050919050565b60006020820190508181036000830152613d9c81613d60565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b6000613dd96020836132d4565b9150613de482613da3565b602082019050919050565b60006020820190508181036000830152613e0881613dcc565b9050919050565b7f206d61782074786e206c696d6974206578636565647300000000000000000000600082015250565b6000613e456016836132d4565b9150613e5082613e0f565b602082019050919050565b60006020820190508181036000830152613e7481613e38565b9050919050565b7f3a2074726164696e672069732064697361626c65000000000000000000000000600082015250565b6000613eb16014836132d4565b9150613ebc82613e7b565b602082019050919050565b60006020820190508181036000830152613ee081613ea4565b9050919050565b7f3a206d617820686f6c64206c696d697420657863656564730000000000000000600082015250565b6000613f1d6018836132d4565b9150613f2882613ee7565b602082019050919050565b60006020820190508181036000830152613f4c81613f10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fc081613435565b92915050565b600060208284031215613fdc57613fdb61341e565b5b6000613fea84828501613fb1565b91505092915050565b6000819050919050565b600061401861401361400e84613ff3565b6133a4565b613461565b9050919050565b61402881613ffd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61406381613423565b82525050565b6000614075838361405a565b60208301905092915050565b6000602082019050919050565b60006140998261402e565b6140a38185614039565b93506140ae8361404a565b8060005b838110156140df5781516140c68882614069565b97506140d183614081565b9250506001810190506140b2565b5085935050505092915050565b600060a0820190506141016000830188613566565b61410e602083018761401f565b8181036040830152614120818661408e565b905061412f6060830185613687565b61413c6080830184613566565b969550505050505056fea2646970667358221220bc7d5c878c974dc120963212ce5caf8250deaf9ec4627d1374c2aa1f440a782064736f6c63430008080033
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.