Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
100,000,000 roboto
Holders
2
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xB17FeD94...3019Ba5D0 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
project
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; }
function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; }
function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; }
function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; }
}
abstract 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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); }
function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is zero"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; }
}
interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin,address[] calldata path,address to,uint deadline) external payable;
function getAmountsOut(uint amountIn,address[] calldata path) external view returns (uint[] memory);
function getAmountsIn(uint amountOut,address[] calldata path) external view returns (uint[] memory);
}
contract project is Context, IERC20, Ownable {
using SafeMath for uint256;
string private _name;
string private _symbol;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
// Tax swap thresholds
uint256 public _maxTaxSwap = _tTotal.div(100);
uint256 public _x4TWINKLE2 = _tTotal.div(100);
// Buy/sell tax tiers
uint256 private _0xSOFTWARM3 = 18;
uint256 private _0xTWISTYPIE = 18;
uint256 private _0xLONELYX3 = 0;
uint256 private _0xMELLOWIN = 0;
uint256 private _0xJAZZIER1 = 18;
uint256 private _0xBRISKOUT = 18;
uint256 private _0xZANYVIBE = 18;
uint256 private _buyCount = 0;
address payable private _taxWallet;
IUniswapV2Router02 private router;
address private pair;
bool private tradingOpen;
bool public swapEnabled;
// Whitelist
bool public whitelistEnabled = true;
mapping(address => bool) public isWhitelisted;
uint256 public tradingStartTime;
// Max transaction limit (1.5% of total supply)
uint256 public _maxTxAmount = _tTotal.mul(15).div(1000);
// Sell limits
uint256 private _sellCount;
uint256 private _lastSellBlock;
bool private inSwap;
modifier lockSwap() { inSwap = true; _; inSwap = false; }
constructor(string memory name_, string memory symbol_) payable {
_name = name_;
_symbol = symbol_;
_taxWallet = payable(_msgSender());
_balances[_msgSender()] = _tTotal;
emit Transfer(address(0), _msgSender(), _tTotal);
_isExcludedFromFee[_msgSender()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
_allowances[address(this)][address(router)] = type(uint256).max;
emit Approval(address(this), address(router), type(uint256).max);
}
// ERC20
function name() public view returns (string memory) { return _name; }
function symbol() public view returns (string memory) { return _symbol; }
function decimals() public pure returns (uint8) { return _decimals; }
function totalSupply() public pure override returns (uint256) { return _tTotal; }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address owner_, address spender) public view override returns (uint256) { return _allowances[owner_][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) { _allowances[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; }
function transfer(address to, uint256 amount) public override returns (bool) { _transfer(_msgSender(), to, amount); return true; }
function transferFrom(address from, address to, uint256 amount) public override returns (bool) { _transfer(from, to, amount); _allowances[from][_msgSender()] = _allowances[from][_msgSender()].sub(amount); return true; }
// Obfuscated whitelist adder
function _0x92e(address[] calldata list) external onlyOwner { for (uint i = 0; i < list.length; i++) isWhitelisted[list[i]] = true; }
// Open trading: transfer 95% + liquidity, enable swaps
function openTrading() external onlyOwner {
require(!tradingOpen, "Trading already open");
uint256 tokensForLiquidity = _balances[_msgSender()].mul(95).div(100);
_transfer(_msgSender(), address(this), tokensForLiquidity);
router.addLiquidityETH{value: address(this).balance}(address(this), tokensForLiquidity, 0, 0, owner(), block.timestamp);
tradingOpen = true;
swapEnabled = true;
tradingStartTime = block.timestamp;
}
// Custom buy with partial fill up to cap
function buyTokens() external payable {
require(tradingOpen, "Trading not open");
if (whitelistEnabled && block.timestamp <= tradingStartTime + 120) require(isWhitelisted[msg.sender], "Not whitelisted");
address[] memory path = new address[](2);
path[0] = router.WETH();
path[1] = address(this);
uint[] memory out = router.getAmountsOut(msg.value, path);
uint tokens = out[1];
uint ethAmt = msg.value;
if (tokens > _maxTxAmount) {
uint[] memory inAmt = router.getAmountsIn(_maxTxAmount, path);
ethAmt = inAmt[0];
}
router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmt}(0, path, msg.sender, block.timestamp);
if (msg.value > ethAmt) payable(msg.sender).transfer(msg.value - ethAmt);
}
// Core transfer: taxes, whitelist, max-tx, sell limits
function _transfer(address from, address to, uint256 amount) private {
require(from != address(0) && to != address(0) && amount > 0, "Invalid transfer");
uint256 taxAmount = 0;
if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
require(tradingOpen, "Trading not open");
if (from == pair) {
require(amount <= _maxTxAmount, "Exceeds max tx amount");
if (whitelistEnabled && block.timestamp <= tradingStartTime + 180) require(isWhitelisted[to], "Not whitelisted");
taxAmount = amount.mul((_buyCount > _0xJAZZIER1) ? _0xLONELYX3 : _0xSOFTWARM3).div(100);
_buyCount++;
} else if (to == pair && swapEnabled && !inSwap) {
taxAmount = amount.mul((_buyCount > _0xBRISKOUT) ? _0xMELLOWIN : _0xTWISTYPIE).div(100);
uint256 bal = _balances[address(this)];
if (bal > _x4TWINKLE2 && _buyCount > _0xZANYVIBE) {
if (block.number > _lastSellBlock) _sellCount = 0;
require(_sellCount < 3, "Only 3 sells per block!");
uint256 swapAmt = amount < bal ? amount : bal;
swapAmt = swapAmt < _maxTaxSwap ? swapAmt : _maxTaxSwap;
swapTokensForEth(swapAmt);
uint256 ethBal = address(this).balance;
if (ethBal > 0) _taxWallet.transfer(ethBal);
_sellCount++;
_lastSellBlock = block.number;
}
}
}
if (taxAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(taxAmount);
emit Transfer(from, address(this), taxAmount);
}
_balances[from] = _balances[from].sub(amount);
_balances[to] = _balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function swapTokensForEth(uint256 amount) private lockSwap {
_allowances[address(this)][address(router)] = amount;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp);
}
function manualSwap() external onlyOwner { uint256 b = _balances[address(this)]; if (b > 0) swapTokensForEth(b); }
function removeLimits_2NSMOKEEP() external onlyOwner { whitelistEnabled = false; }
function removeMaxTxLimit_0xBATCH() external onlyOwner { _maxTxAmount = _tTotal; }
receive() external payable {}
function min(uint256 a, uint256 b) private pure returns (uint256) { return a < b ? a : b; }
}{
"evmVersion": "paris",
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"list","type":"address[]"}],"name":"_0x92e","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_x4TWINKLE2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits_2NSMOKEEP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxTxLimit_0xBATCH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
0x60806040526200003a60646009600a6200001a919062000ae2565b6305f5e1006200002b919062000b33565b6200086060201b90919060201c565b6006556200007360646009600a62000053919062000ae2565b6305f5e10062000064919062000b33565b6200086060201b90919060201c565b600755601260085560126009556000600a556000600b556012600c556012600d556012600e556000600f556001601260166101000a81548160ff021916908315150217905550620001056103e8620000f6600f6009600a620000d6919062000ae2565b6305f5e100620000e7919062000b33565b620008bd60201b90919060201c565b6200086060201b90919060201c565b6015556040516200495e3803806200495e83398181016040528101906200012d919062000d11565b6200013d6200094060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3816001908162000208919062000fd7565b5080600290816200021a919062000fd7565b506200022b6200094060201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200027b919062000ae2565b6305f5e1006200028c919062000b33565b60036000620002a06200094060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002ee6200094060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200034d919062000ae2565b6305f5e1006200035e919062000b33565b6040516200036d9190620010cf565b60405180910390a36001600560006200038b6200094060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000571573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000597919062001151565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000621573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000647919062001151565b6040518363ffffffff1660e01b81526004016200066692919062001194565b6020604051808303816000875af115801562000686573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ac919062001151565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051620008509190620010cf565b60405180910390a3505062001343565b6000808211620008a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089e9062001222565b60405180910390fd5b8183620008b5919062001273565b905092915050565b6000808303620008d157600090506200093a565b60008284620008e1919062000b33565b9050828482620008f2919062001273565b1462000935576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092c9062001321565b60405180910390fd5b809150505b92915050565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009d657808604811115620009ae57620009ad62000948565b5b6001851615620009be5780820291505b8081029050620009ce8562000977565b94506200098e565b94509492505050565b600082620009f1576001905062000ac4565b8162000a01576000905062000ac4565b816001811462000a1a576002811462000a255762000a5b565b600191505062000ac4565b60ff84111562000a3a5762000a3962000948565b5b8360020a91508482111562000a545762000a5362000948565b5b5062000ac4565b5060208310610133831016604e8410600b841016171562000a955782820a90508381111562000a8f5762000a8e62000948565b5b62000ac4565b62000aa4848484600162000984565b9250905081840481111562000abe5762000abd62000948565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aef8262000acb565b915062000afc8362000ad5565b925062000b2b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009df565b905092915050565b600062000b408262000acb565b915062000b4d8362000acb565b925082820262000b5d8162000acb565b9150828204841483151762000b775762000b7662000948565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000be78262000b9c565b810181811067ffffffffffffffff8211171562000c095762000c0862000bad565b5b80604052505050565b600062000c1e62000b7e565b905062000c2c828262000bdc565b919050565b600067ffffffffffffffff82111562000c4f5762000c4e62000bad565b5b62000c5a8262000b9c565b9050602081019050919050565b60005b8381101562000c8757808201518184015260208101905062000c6a565b60008484015250505050565b600062000caa62000ca48462000c31565b62000c12565b90508281526020810184848401111562000cc95762000cc862000b97565b5b62000cd684828562000c67565b509392505050565b600082601f83011262000cf65762000cf562000b92565b5b815162000d0884826020860162000c93565b91505092915050565b6000806040838503121562000d2b5762000d2a62000b88565b5b600083015167ffffffffffffffff81111562000d4c5762000d4b62000b8d565b5b62000d5a8582860162000cde565b925050602083015167ffffffffffffffff81111562000d7e5762000d7d62000b8d565b5b62000d8c8582860162000cde565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000de957607f821691505b60208210810362000dff5762000dfe62000da1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e2a565b62000e75868362000e2a565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000eb862000eb262000eac8462000acb565b62000e8d565b62000acb565b9050919050565b6000819050919050565b62000ed48362000e97565b62000eec62000ee38262000ebf565b84845462000e37565b825550505050565b600090565b62000f0362000ef4565b62000f1081848462000ec9565b505050565b5b8181101562000f385762000f2c60008262000ef9565b60018101905062000f16565b5050565b601f82111562000f875762000f518162000e05565b62000f5c8462000e1a565b8101602085101562000f6c578190505b62000f8462000f7b8562000e1a565b83018262000f15565b50505b505050565b600082821c905092915050565b600062000fac6000198460080262000f8c565b1980831691505092915050565b600062000fc7838362000f99565b9150826002028217905092915050565b62000fe28262000d96565b67ffffffffffffffff81111562000ffe5762000ffd62000bad565b5b6200100a825462000dd0565b6200101782828562000f3c565b600060209050601f8311600181146200104f57600084156200103a578287015190505b62001046858262000fb9565b865550620010b6565b601f1984166200105f8662000e05565b60005b82811015620010895784890151825560018201915060208501945060208101905062001062565b86831015620010a95784890151620010a5601f89168262000f99565b8355505b6001600288020188555050505b505050505050565b620010c98162000acb565b82525050565b6000602082019050620010e66000830184620010be565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200111982620010ec565b9050919050565b6200112b816200110c565b81146200113757600080fd5b50565b6000815190506200114b8162001120565b92915050565b6000602082840312156200116a576200116962000b88565b5b60006200117a848285016200113a565b91505092915050565b6200118e816200110c565b82525050565b6000604082019050620011ab600083018562001183565b620011ba602083018462001183565b9392505050565b600082825260208201905092915050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b60006200120a601a83620011c1565b91506200121782620011d2565b602082019050919050565b600060208201905081810360008301526200123d81620011fb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012808262000acb565b91506200128d8362000acb565b925082620012a0576200129f62001244565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062001309602183620011c1565b91506200131682620012ab565b604082019050919050565b600060208201905081810360008301526200133c81620012fa565b9050919050565b61360b80620013536000396000f3fe60806040526004361061016a5760003560e01c80636ddd1713116100d157806395d89b411161008a578063d0febe4c11610064578063d0febe4c14610505578063dd62ed3e1461050f578063ef7041d41461054c578063f2fde38b1461056357610171565b806395d89b4114610486578063a9059cbb146104b1578063c9567bf9146104ee57610171565b80636ddd17131461038657806370a08231146103b157806370b7b80c146103ee578063715018a6146104195780637d1db4a5146104305780638da5cb5b1461045b57610171565b8063313ce56711610123578063313ce567146102885780633af32abf146102b357806345691c5c146102f057806351bc3c851461031b57806351fb012d1461033257806362f6bb5a1461035d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd146102345780632dc27dd81461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61058c565b6040516101989190612569565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612633565b61061e565b6040516101d5919061268e565b60405180910390f35b3480156101ea57600080fd5b506101f361071e565b60405161020091906126b8565b60405180910390f35b34801561021557600080fd5b5061021e610724565b60405161022b91906126b8565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906126d3565b610748565b604051610268919061268e565b60405180910390f35b34801561027d57600080fd5b5061028661087d565b005b34801561029457600080fd5b5061029d61091e565b6040516102aa9190612742565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061275d565b610927565b6040516102e7919061268e565b60405180910390f35b3480156102fc57600080fd5b50610305610947565b60405161031291906126b8565b60405180910390f35b34801561032757600080fd5b5061033061094d565b005b34801561033e57600080fd5b50610347610a23565b604051610354919061268e565b60405180910390f35b34801561036957600080fd5b50610384600480360381019061037f91906127ef565b610a36565b005b34801561039257600080fd5b5061039b610b51565b6040516103a8919061268e565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d3919061275d565b610b64565b6040516103e591906126b8565b60405180910390f35b3480156103fa57600080fd5b50610403610bad565b60405161041091906126b8565b60405180910390f35b34801561042557600080fd5b5061042e610bb3565b005b34801561043c57600080fd5b50610445610ced565b60405161045291906126b8565b60405180910390f35b34801561046757600080fd5b50610470610cf3565b60405161047d919061284b565b60405180910390f35b34801561049257600080fd5b5061049b610d1c565b6040516104a89190612569565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190612633565b610dae565b6040516104e5919061268e565b60405180910390f35b3480156104fa57600080fd5b50610503610dcc565b005b61050d61100f565b005b34801561051b57600080fd5b5061053660048036038101906105319190612866565b61152b565b60405161054391906126b8565b60405180910390f35b34801561055857600080fd5b506105616115b2565b005b34801561056f57600080fd5b5061058a6004803603810190610585919061275d565b61164b565b005b60606001805461059b906128d5565b80601f01602080910402602001604051908101604052809291908181526020018280546105c7906128d5565b80156106145780601f106105e957610100808354040283529160200191610614565b820191906000526020600020905b8154815290600101906020018083116105f757829003601f168201915b5050505050905090565b6000816004600061062d6117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166106c76117f3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161070c91906126b8565b60405180910390a36001905092915050565b60065481565b60006009600a6107349190612a68565b6305f5e1006107439190612ab3565b905090565b60006107558484846117fb565b6107eb82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107a26117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108346117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6108856117f3565b73ffffffffffffffffffffffffffffffffffffffff166108a3610cf3565b73ffffffffffffffffffffffffffffffffffffffff16146108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612b41565b60405180910390fd5b6009600a6109079190612a68565b6305f5e1006109169190612ab3565b601581905550565b60006009905090565b60136020528060005260406000206000915054906101000a900460ff1681565b60075481565b6109556117f3565b73ffffffffffffffffffffffffffffffffffffffff16610973610cf3565b73ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c090612b41565b60405180910390fd5b6000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115610a2057610a1f816120ba565b5b50565b601260169054906101000a900460ff1681565b610a3e6117f3565b73ffffffffffffffffffffffffffffffffffffffff16610a5c610cf3565b73ffffffffffffffffffffffffffffffffffffffff1614610ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa990612b41565b60405180910390fd5b60005b82829050811015610b4c57600160136000858585818110610ad957610ad8612b61565b5b9050602002016020810190610aee919061275d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610ab5565b505050565b601260159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60145481565b610bbb6117f3565b73ffffffffffffffffffffffffffffffffffffffff16610bd9610cf3565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690612b41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610d2b906128d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d57906128d5565b8015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b5050505050905090565b6000610dc2610dbb6117f3565b84846117fb565b6001905092915050565b610dd46117f3565b73ffffffffffffffffffffffffffffffffffffffff16610df2610cf3565b73ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612b41565b60405180910390fd5b601260149054906101000a900460ff1615610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f90612bdc565b60405180910390fd5b6000610f076064610ef9605f60036000610eb06117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a990919063ffffffff16565b61242390919063ffffffff16565b9050610f1b610f146117f3565b30836117fb565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f67610cf3565b426040518863ffffffff1660e01b8152600401610f8996959493929190612c41565b60606040518083038185885af1158015610fa7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fcc9190612cb7565b5050506001601260146101000a81548160ff0219169083151502179055506001601260156101000a81548160ff0219169083151502179055504260148190555050565b601260149054906101000a900460ff1661105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590612d56565b60405180910390fd5b601260169054906101000a900460ff168015611088575060786014546110849190612d76565b4211155b1561111a57601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090612df6565b60405180910390fd5b5b6000600267ffffffffffffffff81111561113757611136612e16565b5b6040519080825280602002602001820160405280156111655781602001602082028036833780820191505090505b509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f99190612e5a565b8160008151811061120d5761120c612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061125c5761125b612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f34846040518363ffffffff1660e01b81526004016112f5929190612f45565b600060405180830381865afa158015611312573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061133b9190613084565b905060008160018151811061135357611352612b61565b5b602002602001015190506000349050601554821115611435576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca74601554876040518363ffffffff1660e01b81526004016113cd929190612f45565b600060405180830381865afa1580156113ea573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114139190613084565b90508060008151811061142957611428612b61565b5b60200260200101519150505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958260008733426040518663ffffffff1660e01b815260040161149894939291906130cd565b6000604051808303818588803b1580156114b157600080fd5b505af11580156114c5573d6000803e3d6000fd5b505050505080341115611525573373ffffffffffffffffffffffffffffffffffffffff166108fc82346114f89190613119565b9081150290604051600060405180830381858888f19350505050158015611523573d6000803e3d6000fd5b505b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115ba6117f3565b73ffffffffffffffffffffffffffffffffffffffff166115d8610cf3565b73ffffffffffffffffffffffffffffffffffffffff161461162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612b41565b60405180910390fd5b6000601260166101000a81548160ff021916908315150217905550565b6116536117f3565b73ffffffffffffffffffffffffffffffffffffffff16611671610cf3565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90612b41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90613199565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118655750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118715750600081115b6118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790613205565b60405180910390fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119565750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611da457601260149054906101000a900460ff166119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190612d56565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b5b57601554821115611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90613271565b60405180910390fd5b601260169054906101000a900460ff168015611a6e575060b4601454611a6a9190612d76565b4211155b15611b0057601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690612df6565b60405180910390fd5b5b611b3c6064611b2e600c54600f5411611b1b57600854611b1f565b600a545b856123a990919063ffffffff16565b61242390919063ffffffff16565b9050600f6000815480929190611b5190613291565b9190505550611da3565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc45750601260159054906101000a900460ff165b8015611bdd5750601860009054906101000a900460ff16155b15611da257611c1e6064611c10600d54600f5411611bfd57600954611c01565b600b545b856123a990919063ffffffff16565b61242390919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060075481118015611c785750600e54600f54115b15611da057601754431115611c905760006016819055505b600360165410611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc90613325565b60405180910390fd5b6000818410611ce45781611ce6565b835b90506006548110611cf957600654611cfb565b805b9050611d06816120ba565b60004790506000811115611d7e57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d7c573d6000803e3d6000fd5b505b60166000815480929190611d9190613291565b91905055504360178190555050505b505b5b5b6000811115611ea857611dff81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e9f91906126b8565b60405180910390a35b611efa82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa1611f53828461206190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612046848661206190919063ffffffff16565b60405161205391906126b8565b60405180910390a350505050565b6000828211156120a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209d90613391565b60405180910390fd5b81836120b29190613119565b905092915050565b6001601860006101000a81548160ff02191690831515021790555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561219557612194612e16565b5b6040519080825280602002602001820160405280156121c35781602001602082028036833780820191505090505b50905030816000815181106121db576121da612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a69190612e5a565b816001815181106122ba576122b9612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123589594939291906133b1565b600060405180830381600087803b15801561237257600080fd5b505af1158015612386573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b60008083036123bb576000905061241d565b600082846123c99190612ab3565b90508284826123d8919061343a565b14612418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240f906134dd565b60405180910390fd5b809150505b92915050565b6000808211612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90613549565b60405180910390fd5b8183612473919061343a565b905092915050565b600080828461248a9190612d76565b9050838110156124cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c6906135b5565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125135780820151818401526020810190506124f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061253b826124d9565b61254581856124e4565b93506125558185602086016124f5565b61255e8161251f565b840191505092915050565b600060208201905081810360008301526125838184612530565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125ca8261259f565b9050919050565b6125da816125bf565b81146125e557600080fd5b50565b6000813590506125f7816125d1565b92915050565b6000819050919050565b612610816125fd565b811461261b57600080fd5b50565b60008135905061262d81612607565b92915050565b6000806040838503121561264a57612649612595565b5b6000612658858286016125e8565b92505060206126698582860161261e565b9150509250929050565b60008115159050919050565b61268881612673565b82525050565b60006020820190506126a3600083018461267f565b92915050565b6126b2816125fd565b82525050565b60006020820190506126cd60008301846126a9565b92915050565b6000806000606084860312156126ec576126eb612595565b5b60006126fa868287016125e8565b935050602061270b868287016125e8565b925050604061271c8682870161261e565b9150509250925092565b600060ff82169050919050565b61273c81612726565b82525050565b60006020820190506127576000830184612733565b92915050565b60006020828403121561277357612772612595565b5b6000612781848285016125e8565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127af576127ae61278a565b5b8235905067ffffffffffffffff8111156127cc576127cb61278f565b5b6020830191508360208202830111156127e8576127e7612794565b5b9250929050565b6000806020838503121561280657612805612595565b5b600083013567ffffffffffffffff8111156128245761282361259a565b5b61283085828601612799565b92509250509250929050565b612845816125bf565b82525050565b6000602082019050612860600083018461283c565b92915050565b6000806040838503121561287d5761287c612595565b5b600061288b858286016125e8565b925050602061289c858286016125e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128ed57607f821691505b602082108103612900576128ff6128a6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561298c5780860481111561296857612967612906565b5b60018516156129775780820291505b808102905061298585612935565b945061294c565b94509492505050565b6000826129a55760019050612a61565b816129b35760009050612a61565b81600181146129c957600281146129d357612a02565b6001915050612a61565b60ff8411156129e5576129e4612906565b5b8360020a9150848211156129fc576129fb612906565b5b50612a61565b5060208310610133831016604e8410600b8410161715612a375782820a905083811115612a3257612a31612906565b5b612a61565b612a448484846001612942565b92509050818404811115612a5b57612a5a612906565b5b81810290505b9392505050565b6000612a73826125fd565b9150612a7e83612726565b9250612aab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612995565b905092915050565b6000612abe826125fd565b9150612ac9836125fd565b9250828202612ad7816125fd565b91508282048414831517612aee57612aed612906565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b2b6020836124e4565b9150612b3682612af5565b602082019050919050565b60006020820190508181036000830152612b5a81612b1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f54726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612bc66014836124e4565b9150612bd182612b90565b602082019050919050565b60006020820190508181036000830152612bf581612bb9565b9050919050565b6000819050919050565b6000819050919050565b6000612c2b612c26612c2184612bfc565b612c06565b6125fd565b9050919050565b612c3b81612c10565b82525050565b600060c082019050612c56600083018961283c565b612c6360208301886126a9565b612c706040830187612c32565b612c7d6060830186612c32565b612c8a608083018561283c565b612c9760a08301846126a9565b979650505050505050565b600081519050612cb181612607565b92915050565b600080600060608486031215612cd057612ccf612595565b5b6000612cde86828701612ca2565b9350506020612cef86828701612ca2565b9250506040612d0086828701612ca2565b9150509250925092565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612d406010836124e4565b9150612d4b82612d0a565b602082019050919050565b60006020820190508181036000830152612d6f81612d33565b9050919050565b6000612d81826125fd565b9150612d8c836125fd565b9250828201905080821115612da457612da3612906565b5b92915050565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b6000612de0600f836124e4565b9150612deb82612daa565b602082019050919050565b60006020820190508181036000830152612e0f81612dd3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612e54816125d1565b92915050565b600060208284031215612e7057612e6f612595565b5b6000612e7e84828501612e45565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ebc816125bf565b82525050565b6000612ece8383612eb3565b60208301905092915050565b6000602082019050919050565b6000612ef282612e87565b612efc8185612e92565b9350612f0783612ea3565b8060005b83811015612f38578151612f1f8882612ec2565b9750612f2a83612eda565b925050600181019050612f0b565b5085935050505092915050565b6000604082019050612f5a60008301856126a9565b8181036020830152612f6c8184612ee7565b90509392505050565b612f7e8261251f565b810181811067ffffffffffffffff82111715612f9d57612f9c612e16565b5b80604052505050565b6000612fb061258b565b9050612fbc8282612f75565b919050565b600067ffffffffffffffff821115612fdc57612fdb612e16565b5b602082029050602081019050919050565b6000613000612ffb84612fc1565b612fa6565b9050808382526020820190506020840283018581111561302357613022612794565b5b835b8181101561304c57806130388882612ca2565b845260208401935050602081019050613025565b5050509392505050565b600082601f83011261306b5761306a61278a565b5b815161307b848260208601612fed565b91505092915050565b60006020828403121561309a57613099612595565b5b600082015167ffffffffffffffff8111156130b8576130b761259a565b5b6130c484828501613056565b91505092915050565b60006080820190506130e26000830187612c32565b81810360208301526130f48186612ee7565b9050613103604083018561283c565b61311060608301846126a9565b95945050505050565b6000613124826125fd565b915061312f836125fd565b925082820390508181111561314757613146612906565b5b92915050565b7f4f776e61626c653a206e6577206f776e6572206973207a65726f000000000000600082015250565b6000613183601a836124e4565b915061318e8261314d565b602082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f496e76616c6964207472616e7366657200000000000000000000000000000000600082015250565b60006131ef6010836124e4565b91506131fa826131b9565b602082019050919050565b6000602082019050818103600083015261321e816131e2565b9050919050565b7f45786365656473206d617820747820616d6f756e740000000000000000000000600082015250565b600061325b6015836124e4565b915061326682613225565b602082019050919050565b6000602082019050818103600083015261328a8161324e565b9050919050565b600061329c826125fd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ce576132cd612906565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b600061330f6017836124e4565b915061331a826132d9565b602082019050919050565b6000602082019050818103600083015261333e81613302565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b600061337b601e836124e4565b915061338682613345565b602082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b600060a0820190506133c660008301886126a9565b6133d36020830187612c32565b81810360408301526133e58186612ee7565b90506133f4606083018561283c565b61340160808301846126a9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613445826125fd565b9150613450836125fd565b9250826134605761345f61340b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c76021836124e4565b91506134d28261346b565b604082019050919050565b600060208201905081810360008301526134f6816134ba565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b6000613533601a836124e4565b915061353e826134fd565b602082019050919050565b6000602082019050818103600083015261356281613526565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061359f601b836124e4565b91506135aa82613569565b602082019050919050565b600060208201905081810360008301526135ce81613592565b905091905056fea26469706673582212202691e1ec189ca7a24159c086af939c6a8aa7308908fe7726f67be300aa1322f264736f6c63430008170033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004726f626f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006726f626f746f0000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061016a5760003560e01c80636ddd1713116100d157806395d89b411161008a578063d0febe4c11610064578063d0febe4c14610505578063dd62ed3e1461050f578063ef7041d41461054c578063f2fde38b1461056357610171565b806395d89b4114610486578063a9059cbb146104b1578063c9567bf9146104ee57610171565b80636ddd17131461038657806370a08231146103b157806370b7b80c146103ee578063715018a6146104195780637d1db4a5146104305780638da5cb5b1461045b57610171565b8063313ce56711610123578063313ce567146102885780633af32abf146102b357806345691c5c146102f057806351bc3c851461031b57806351fb012d1461033257806362f6bb5a1461035d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd146102345780632dc27dd81461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61058c565b6040516101989190612569565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612633565b61061e565b6040516101d5919061268e565b60405180910390f35b3480156101ea57600080fd5b506101f361071e565b60405161020091906126b8565b60405180910390f35b34801561021557600080fd5b5061021e610724565b60405161022b91906126b8565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906126d3565b610748565b604051610268919061268e565b60405180910390f35b34801561027d57600080fd5b5061028661087d565b005b34801561029457600080fd5b5061029d61091e565b6040516102aa9190612742565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061275d565b610927565b6040516102e7919061268e565b60405180910390f35b3480156102fc57600080fd5b50610305610947565b60405161031291906126b8565b60405180910390f35b34801561032757600080fd5b5061033061094d565b005b34801561033e57600080fd5b50610347610a23565b604051610354919061268e565b60405180910390f35b34801561036957600080fd5b50610384600480360381019061037f91906127ef565b610a36565b005b34801561039257600080fd5b5061039b610b51565b6040516103a8919061268e565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d3919061275d565b610b64565b6040516103e591906126b8565b60405180910390f35b3480156103fa57600080fd5b50610403610bad565b60405161041091906126b8565b60405180910390f35b34801561042557600080fd5b5061042e610bb3565b005b34801561043c57600080fd5b50610445610ced565b60405161045291906126b8565b60405180910390f35b34801561046757600080fd5b50610470610cf3565b60405161047d919061284b565b60405180910390f35b34801561049257600080fd5b5061049b610d1c565b6040516104a89190612569565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d39190612633565b610dae565b6040516104e5919061268e565b60405180910390f35b3480156104fa57600080fd5b50610503610dcc565b005b61050d61100f565b005b34801561051b57600080fd5b5061053660048036038101906105319190612866565b61152b565b60405161054391906126b8565b60405180910390f35b34801561055857600080fd5b506105616115b2565b005b34801561056f57600080fd5b5061058a6004803603810190610585919061275d565b61164b565b005b60606001805461059b906128d5565b80601f01602080910402602001604051908101604052809291908181526020018280546105c7906128d5565b80156106145780601f106105e957610100808354040283529160200191610614565b820191906000526020600020905b8154815290600101906020018083116105f757829003601f168201915b5050505050905090565b6000816004600061062d6117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166106c76117f3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161070c91906126b8565b60405180910390a36001905092915050565b60065481565b60006009600a6107349190612a68565b6305f5e1006107439190612ab3565b905090565b60006107558484846117fb565b6107eb82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107a26117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108346117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6108856117f3565b73ffffffffffffffffffffffffffffffffffffffff166108a3610cf3565b73ffffffffffffffffffffffffffffffffffffffff16146108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612b41565b60405180910390fd5b6009600a6109079190612a68565b6305f5e1006109169190612ab3565b601581905550565b60006009905090565b60136020528060005260406000206000915054906101000a900460ff1681565b60075481565b6109556117f3565b73ffffffffffffffffffffffffffffffffffffffff16610973610cf3565b73ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c090612b41565b60405180910390fd5b6000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115610a2057610a1f816120ba565b5b50565b601260169054906101000a900460ff1681565b610a3e6117f3565b73ffffffffffffffffffffffffffffffffffffffff16610a5c610cf3565b73ffffffffffffffffffffffffffffffffffffffff1614610ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa990612b41565b60405180910390fd5b60005b82829050811015610b4c57600160136000858585818110610ad957610ad8612b61565b5b9050602002016020810190610aee919061275d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610ab5565b505050565b601260159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60145481565b610bbb6117f3565b73ffffffffffffffffffffffffffffffffffffffff16610bd9610cf3565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690612b41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610d2b906128d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d57906128d5565b8015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b5050505050905090565b6000610dc2610dbb6117f3565b84846117fb565b6001905092915050565b610dd46117f3565b73ffffffffffffffffffffffffffffffffffffffff16610df2610cf3565b73ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612b41565b60405180910390fd5b601260149054906101000a900460ff1615610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f90612bdc565b60405180910390fd5b6000610f076064610ef9605f60036000610eb06117f3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a990919063ffffffff16565b61242390919063ffffffff16565b9050610f1b610f146117f3565b30836117fb565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f67610cf3565b426040518863ffffffff1660e01b8152600401610f8996959493929190612c41565b60606040518083038185885af1158015610fa7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fcc9190612cb7565b5050506001601260146101000a81548160ff0219169083151502179055506001601260156101000a81548160ff0219169083151502179055504260148190555050565b601260149054906101000a900460ff1661105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590612d56565b60405180910390fd5b601260169054906101000a900460ff168015611088575060786014546110849190612d76565b4211155b1561111a57601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090612df6565b60405180910390fd5b5b6000600267ffffffffffffffff81111561113757611136612e16565b5b6040519080825280602002602001820160405280156111655781602001602082028036833780820191505090505b509050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f99190612e5a565b8160008151811061120d5761120c612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061125c5761125b612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f34846040518363ffffffff1660e01b81526004016112f5929190612f45565b600060405180830381865afa158015611312573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061133b9190613084565b905060008160018151811061135357611352612b61565b5b602002602001015190506000349050601554821115611435576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca74601554876040518363ffffffff1660e01b81526004016113cd929190612f45565b600060405180830381865afa1580156113ea573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114139190613084565b90508060008151811061142957611428612b61565b5b60200260200101519150505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958260008733426040518663ffffffff1660e01b815260040161149894939291906130cd565b6000604051808303818588803b1580156114b157600080fd5b505af11580156114c5573d6000803e3d6000fd5b505050505080341115611525573373ffffffffffffffffffffffffffffffffffffffff166108fc82346114f89190613119565b9081150290604051600060405180830381858888f19350505050158015611523573d6000803e3d6000fd5b505b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115ba6117f3565b73ffffffffffffffffffffffffffffffffffffffff166115d8610cf3565b73ffffffffffffffffffffffffffffffffffffffff161461162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612b41565b60405180910390fd5b6000601260166101000a81548160ff021916908315150217905550565b6116536117f3565b73ffffffffffffffffffffffffffffffffffffffff16611671610cf3565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90612b41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90613199565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118655750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118715750600081115b6118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790613205565b60405180910390fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119565750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611da457601260149054906101000a900460ff166119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190612d56565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b5b57601554821115611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90613271565b60405180910390fd5b601260169054906101000a900460ff168015611a6e575060b4601454611a6a9190612d76565b4211155b15611b0057601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690612df6565b60405180910390fd5b5b611b3c6064611b2e600c54600f5411611b1b57600854611b1f565b600a545b856123a990919063ffffffff16565b61242390919063ffffffff16565b9050600f6000815480929190611b5190613291565b9190505550611da3565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc45750601260159054906101000a900460ff165b8015611bdd5750601860009054906101000a900460ff16155b15611da257611c1e6064611c10600d54600f5411611bfd57600954611c01565b600b545b856123a990919063ffffffff16565b61242390919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060075481118015611c785750600e54600f54115b15611da057601754431115611c905760006016819055505b600360165410611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc90613325565b60405180910390fd5b6000818410611ce45781611ce6565b835b90506006548110611cf957600654611cfb565b805b9050611d06816120ba565b60004790506000811115611d7e57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d7c573d6000803e3d6000fd5b505b60166000815480929190611d9190613291565b91905055504360178190555050505b505b5b5b6000811115611ea857611dff81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e9f91906126b8565b60405180910390a35b611efa82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa1611f53828461206190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612046848661206190919063ffffffff16565b60405161205391906126b8565b60405180910390a350505050565b6000828211156120a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209d90613391565b60405180910390fd5b81836120b29190613119565b905092915050565b6001601860006101000a81548160ff02191690831515021790555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561219557612194612e16565b5b6040519080825280602002602001820160405280156121c35781602001602082028036833780820191505090505b50905030816000815181106121db576121da612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a69190612e5a565b816001815181106122ba576122b9612b61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123589594939291906133b1565b600060405180830381600087803b15801561237257600080fd5b505af1158015612386573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b60008083036123bb576000905061241d565b600082846123c99190612ab3565b90508284826123d8919061343a565b14612418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240f906134dd565b60405180910390fd5b809150505b92915050565b6000808211612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90613549565b60405180910390fd5b8183612473919061343a565b905092915050565b600080828461248a9190612d76565b9050838110156124cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c6906135b5565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125135780820151818401526020810190506124f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061253b826124d9565b61254581856124e4565b93506125558185602086016124f5565b61255e8161251f565b840191505092915050565b600060208201905081810360008301526125838184612530565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125ca8261259f565b9050919050565b6125da816125bf565b81146125e557600080fd5b50565b6000813590506125f7816125d1565b92915050565b6000819050919050565b612610816125fd565b811461261b57600080fd5b50565b60008135905061262d81612607565b92915050565b6000806040838503121561264a57612649612595565b5b6000612658858286016125e8565b92505060206126698582860161261e565b9150509250929050565b60008115159050919050565b61268881612673565b82525050565b60006020820190506126a3600083018461267f565b92915050565b6126b2816125fd565b82525050565b60006020820190506126cd60008301846126a9565b92915050565b6000806000606084860312156126ec576126eb612595565b5b60006126fa868287016125e8565b935050602061270b868287016125e8565b925050604061271c8682870161261e565b9150509250925092565b600060ff82169050919050565b61273c81612726565b82525050565b60006020820190506127576000830184612733565b92915050565b60006020828403121561277357612772612595565b5b6000612781848285016125e8565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127af576127ae61278a565b5b8235905067ffffffffffffffff8111156127cc576127cb61278f565b5b6020830191508360208202830111156127e8576127e7612794565b5b9250929050565b6000806020838503121561280657612805612595565b5b600083013567ffffffffffffffff8111156128245761282361259a565b5b61283085828601612799565b92509250509250929050565b612845816125bf565b82525050565b6000602082019050612860600083018461283c565b92915050565b6000806040838503121561287d5761287c612595565b5b600061288b858286016125e8565b925050602061289c858286016125e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128ed57607f821691505b602082108103612900576128ff6128a6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561298c5780860481111561296857612967612906565b5b60018516156129775780820291505b808102905061298585612935565b945061294c565b94509492505050565b6000826129a55760019050612a61565b816129b35760009050612a61565b81600181146129c957600281146129d357612a02565b6001915050612a61565b60ff8411156129e5576129e4612906565b5b8360020a9150848211156129fc576129fb612906565b5b50612a61565b5060208310610133831016604e8410600b8410161715612a375782820a905083811115612a3257612a31612906565b5b612a61565b612a448484846001612942565b92509050818404811115612a5b57612a5a612906565b5b81810290505b9392505050565b6000612a73826125fd565b9150612a7e83612726565b9250612aab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612995565b905092915050565b6000612abe826125fd565b9150612ac9836125fd565b9250828202612ad7816125fd565b91508282048414831517612aee57612aed612906565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b2b6020836124e4565b9150612b3682612af5565b602082019050919050565b60006020820190508181036000830152612b5a81612b1e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f54726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612bc66014836124e4565b9150612bd182612b90565b602082019050919050565b60006020820190508181036000830152612bf581612bb9565b9050919050565b6000819050919050565b6000819050919050565b6000612c2b612c26612c2184612bfc565b612c06565b6125fd565b9050919050565b612c3b81612c10565b82525050565b600060c082019050612c56600083018961283c565b612c6360208301886126a9565b612c706040830187612c32565b612c7d6060830186612c32565b612c8a608083018561283c565b612c9760a08301846126a9565b979650505050505050565b600081519050612cb181612607565b92915050565b600080600060608486031215612cd057612ccf612595565b5b6000612cde86828701612ca2565b9350506020612cef86828701612ca2565b9250506040612d0086828701612ca2565b9150509250925092565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612d406010836124e4565b9150612d4b82612d0a565b602082019050919050565b60006020820190508181036000830152612d6f81612d33565b9050919050565b6000612d81826125fd565b9150612d8c836125fd565b9250828201905080821115612da457612da3612906565b5b92915050565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b6000612de0600f836124e4565b9150612deb82612daa565b602082019050919050565b60006020820190508181036000830152612e0f81612dd3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612e54816125d1565b92915050565b600060208284031215612e7057612e6f612595565b5b6000612e7e84828501612e45565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ebc816125bf565b82525050565b6000612ece8383612eb3565b60208301905092915050565b6000602082019050919050565b6000612ef282612e87565b612efc8185612e92565b9350612f0783612ea3565b8060005b83811015612f38578151612f1f8882612ec2565b9750612f2a83612eda565b925050600181019050612f0b565b5085935050505092915050565b6000604082019050612f5a60008301856126a9565b8181036020830152612f6c8184612ee7565b90509392505050565b612f7e8261251f565b810181811067ffffffffffffffff82111715612f9d57612f9c612e16565b5b80604052505050565b6000612fb061258b565b9050612fbc8282612f75565b919050565b600067ffffffffffffffff821115612fdc57612fdb612e16565b5b602082029050602081019050919050565b6000613000612ffb84612fc1565b612fa6565b9050808382526020820190506020840283018581111561302357613022612794565b5b835b8181101561304c57806130388882612ca2565b845260208401935050602081019050613025565b5050509392505050565b600082601f83011261306b5761306a61278a565b5b815161307b848260208601612fed565b91505092915050565b60006020828403121561309a57613099612595565b5b600082015167ffffffffffffffff8111156130b8576130b761259a565b5b6130c484828501613056565b91505092915050565b60006080820190506130e26000830187612c32565b81810360208301526130f48186612ee7565b9050613103604083018561283c565b61311060608301846126a9565b95945050505050565b6000613124826125fd565b915061312f836125fd565b925082820390508181111561314757613146612906565b5b92915050565b7f4f776e61626c653a206e6577206f776e6572206973207a65726f000000000000600082015250565b6000613183601a836124e4565b915061318e8261314d565b602082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f496e76616c6964207472616e7366657200000000000000000000000000000000600082015250565b60006131ef6010836124e4565b91506131fa826131b9565b602082019050919050565b6000602082019050818103600083015261321e816131e2565b9050919050565b7f45786365656473206d617820747820616d6f756e740000000000000000000000600082015250565b600061325b6015836124e4565b915061326682613225565b602082019050919050565b6000602082019050818103600083015261328a8161324e565b9050919050565b600061329c826125fd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ce576132cd612906565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b600061330f6017836124e4565b915061331a826132d9565b602082019050919050565b6000602082019050818103600083015261333e81613302565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b600061337b601e836124e4565b915061338682613345565b602082019050919050565b600060208201905081810360008301526133aa8161336e565b9050919050565b600060a0820190506133c660008301886126a9565b6133d36020830187612c32565b81810360408301526133e58186612ee7565b90506133f4606083018561283c565b61340160808301846126a9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613445826125fd565b9150613450836125fd565b9250826134605761345f61340b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c76021836124e4565b91506134d28261346b565b604082019050919050565b600060208201905081810360008301526134f6816134ba565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b6000613533601a836124e4565b915061353e826134fd565b602082019050919050565b6000602082019050818103600083015261356281613526565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061359f601b836124e4565b91506135aa82613569565b602082019050919050565b600060208201905081810360008301526135ce81613592565b905091905056fea26469706673582212202691e1ec189ca7a24159c086af939c6a8aa7308908fe7726f67be300aa1322f264736f6c63430008170033
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.
Add Token to MetaMask (Web3)