ETH Price: $2,455.90 (-4.71%)

Token

ELFSANTAJESUSFROSTYGRINCHXMASINU (ELFX)
 

Overview

Max Total Supply

1,000,000,000 ELFX

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.406318772 ELFX

Value
$0.00
0xd866fE475779b2E029e0C064f8682dFdD353B707
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ELFSANTAJESUSFROSTYGRINCHXMASINU

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-11
*/

/*


Twitter: https://twitter.com/Elfmemecoin

Telegram: http://t.me/elfmemecoin

Website: https://elfmemecoin.com/


*/




// SPDX-License-Identifier: Unlicense



pragma solidity 0.8.17;


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) {

return sub(a, b, "SafeMath: subtraction overflow");

}


function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

require(b <= a, errorMessage);

uint256 c = a - b;

return c;

}


function mul(uint256 a, uint256 b) internal pure returns (uint256) {

if (a == 0) {

return 0;

}

uint256 c = a * b;

require(c / a == b, "SafeMath: multiplication overflow");

return c;

}


function div(uint256 a, uint256 b) internal pure returns (uint256) {

return div(a, b, "SafeMath: division by zero");

}


function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

require(b > 0, errorMessage);

uint256 c = a / b;

return c;

}


}


contract Ownable is Context {

address private _owner;

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


constructor () {

address msgSender = _msgSender();

_owner = msgSender;

emit OwnershipTransferred(address(0), msgSender);

}


function owner() public view returns (address) {

return _owner;

}


modifier onlyOwner() {

require(_owner == _msgSender(), "Ownable: caller is not the owner");

_;

}


function renounceOwnership() public virtual onlyOwner {

emit OwnershipTransferred(_owner, address(0));

_owner = address(0);

}


}


interface IUniswapV2Factory {

function createPair(address tokenA, address tokenB) external returns (address pair);

}


interface IUniswapV2Router02 {

function swapExactTokensForETHSupportingFeeOnTransferTokens(

uint amountIn,

uint amountOutMin,

address[] calldata path,

address to,

uint deadline

) external;

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);

}


contract ELFSANTAJESUSFROSTYGRINCHXMASINU is Context, IERC20, Ownable {

using SafeMath for uint256;

mapping (address => uint256) private _balances;

mapping (address => mapping (address => uint256)) private _allowances;

mapping (address => bool) private _isExcludedFromFee;

uint256 private enabled = 0;

address payable private _taxWallet = payable(0xa2622E52C388b5d6D960eCF6dA5FBEa7ee20D166);

uint256 private _finalBuyTax=26;

uint256 private _finalSellTax=26;

uint8 private constant _decimals = 9;

uint256 private constant _tTotal = 1000000000 * 10**_decimals;

string private constant _name = unicode"ELFSANTAJESUSFROSTYGRINCHXMASINU";

string private constant _symbol = unicode"ELFX";

uint256 public _maxTxAmount = 20000000 * 10**_decimals;

uint256 public _maxWalletSize = 20000000 * 10**_decimals;

uint256 public _taxSwapThreshold=2000000 * 10**_decimals;

uint256 public _maxTaxSwap=20000000 * 10**_decimals;

IUniswapV2Router02 private uniswapV2Router;

address public uniswapV2Pair;

bool private tradingOpen = false;

bool private inSwap = false;

bool private swapEnabled = false;


uint public userCostEth = 0.2 ether;

uint public userCostTokens = 500000 * 10**_decimals;

uint256 public _marketingReserves = 0;

address public DEAD = 0x000000000000000000000000000000000000dEaD;

mapping(string => userUnlock) public unlockedUsers;

mapping(string => channelUnlock) public unlockedChannels;

event UserUnlocked(string tg_username, uint256 unlockTime);

event ChannelUnlocked(string tg_channel, uint256 unlockTime);


struct userUnlock {

string tgUserName;

bool unlocked;

uint256 unlockedAt;

uint256 totalEthPaid;

}


struct channelUnlock {

string tgChannel;

bool unlocked;

uint256 unlockedAt;

uint256 totalEthPaid;

}



event MaxTxAmountUpdated(uint _maxTxAmount);

modifier lockTheSwap {

inSwap = true;

_;

inSwap = false;

}


constructor () {

uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

_balances[_msgSender()] = _tTotal;

_isExcludedFromFee[owner()] = true;

_isExcludedFromFee[address(this)] = true;

_isExcludedFromFee[_msgSender()] = true;

_isExcludedFromFee[_taxWallet] = true;

emit Transfer(address(0), _msgSender(), _tTotal);

}


function excludeFromFees(address[] memory wallets_) public onlyOwner {

for (uint i = 0; i < wallets_.length; i++) {

_isExcludedFromFee[wallets_[i]] = true;

}

}


function removeExcluded(address[] memory wallets_) public onlyOwner {

for (uint i = 0; i < wallets_.length; i++) {

_isExcludedFromFee[wallets_[i]] = false;

}

}


function enableTrading() external onlyOwner() {

require(!tradingOpen,"ERROR: Requirement already met");

swapEnabled = true;

tradingOpen = true;

}


function changeTax(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner() {

_finalBuyTax=_newBuyFee;

_finalSellTax=_newSellFee;

}



function name() public pure returns (string memory) {

return _name;

}


function symbol() public pure 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 transfer(address recipient, uint256 amount) public override returns (bool) {

_transfer(_msgSender(), recipient, amount);

return true;

}


function _approve(address owner, address spender, uint256 amount) private {

require(owner != address(0), "ERC20: approve from the zero address");

require(spender != address(0), "ERC20: approve to the zero address");

_allowances[owner][spender] = amount;

emit Approval(owner, spender, amount);

}


function allowance(address owner, address spender) public view override returns (uint256) {

return _allowances[owner][spender];

}


function approve(address spender, uint256 amount) public override returns (bool) {

_approve(_msgSender(), spender, amount);

return true;

}


function manualSwap() external {

require(_msgSender()==_taxWallet);

uint256 tokenBalance=balanceOf(address(this));

if(tokenBalance>0){

swapTokensForEth(tokenBalance);

}

uint256 ethBalance=address(this).balance;

if(ethBalance>0){

sendETHToFee(ethBalance);

}

}



function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {

_transfer(sender, recipient, amount);

_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));

return true;

}



function _transfer(address from, address to, uint256 amount) private {

require(from != address(0), "ERC20: transfer from the zero address");

require(to != address(0), "ERC20: transfer to the zero address");

require(amount > 0, "Transfer amount must be bigger than zero");

uint256 taxAmount=0;

if (from != owner() && to != owner()) {

if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {

require(tradingOpen, "Trading not open");

require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");

require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

taxAmount = amount.mul(_finalBuyTax).div(100);

}


if(to == uniswapV2Pair && from!= address(this) ){

taxAmount = amount.mul(_finalSellTax).div(100);

}


uint256 contractTokenBalance = balanceOf(address(this));

if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {

swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));

uint256 contractETHBalance = address(this).balance;

if(contractETHBalance > 0) {

sendETHToFee(address(this).balance);

}

}

}


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 tokenAmount) private lockTheSwap {

address[] memory path = new address[](2);

path[0] = address(this);

path[1] = uniswapV2Router.WETH();

_approve(address(this), address(uniswapV2Router), tokenAmount);

uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(

tokenAmount,

0,

path,

address(this),

block.timestamp

);

}


function unlockUser(string memory tg_username) external payable {

require(msg.value >= userCostEth, "Not enough ETH sent!");

require(msg.sender.balance >= userCostTokens, "Not enough tokens!");

_marketingReserves += msg.value;

_transfer(msg.sender, DEAD, userCostTokens);


unlockedUsers[tg_username] = userUnlock(

tg_username,

true,

block.timestamp,

unlockedUsers[tg_username].totalEthPaid + msg.value

);

emit UserUnlocked(tg_username, block.timestamp);

}


function unlockChannel(string memory tg_channel) external payable {

require(msg.value >= userCostEth, "Not enough ETH sent!");

require(msg.sender.balance >= userCostTokens, "Not enough tokens!");

_marketingReserves += msg.value;

_transfer(msg.sender, DEAD, userCostTokens);


unlockedChannels[tg_channel] = channelUnlock(

tg_channel,

true,

block.timestamp,

unlockedChannels[tg_channel].totalEthPaid + msg.value

);

emit ChannelUnlocked(tg_channel, block.timestamp);

}



function removeLimits() external onlyOwner{

_maxTxAmount = _tTotal;

_maxWalletSize=_tTotal;

emit MaxTxAmountUpdated(_tTotal);

}


function min(uint256 a, uint256 b) private pure returns (uint256){

return (a>b)?b:a;

}


function sendETHToFee(uint256 amount) private {

_taxWallet.transfer(amount);

}



function manualSend() external {

uint256 ethBalance=address(this).balance;

if(ethBalance>0){

sendETHToFee(ethBalance);

}

}


receive() external payable {}


}

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"string","name":"tg_channel","type":"string"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"ChannelUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"tg_username","type":"string"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"UserUnlocked","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets_","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets_","type":"address[]"}],"name":"removeExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tg_channel","type":"string"}],"name":"unlockChannel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"tg_username","type":"string"}],"name":"unlockUser","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"unlockedChannels","outputs":[{"internalType":"string","name":"tgChannel","type":"string"},{"internalType":"bool","name":"unlocked","type":"bool"},{"internalType":"uint256","name":"unlockedAt","type":"uint256"},{"internalType":"uint256","name":"totalEthPaid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"unlockedUsers","outputs":[{"internalType":"string","name":"tgUserName","type":"string"},{"internalType":"bool","name":"unlocked","type":"bool"},{"internalType":"uint256","name":"unlockedAt","type":"uint256"},{"internalType":"uint256","name":"totalEthPaid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"userCostEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"userCostTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600455600580546001600160a01b03191673a2622e52c388b5d6d960ecf6da5fbea7ee20d166179055601a6006819055600755620000476009600a62000566565b62000057906301312d006200057e565b600855620000686009600a62000566565b62000078906301312d006200057e565b6009556009600a6200008b919062000566565b6200009a90621e84806200057e565b600a556009600a620000ad919062000566565b620000bd906301312d006200057e565b600b55600d805462ffffff60a01b191690556702c68af0bb140000600e55620000e96009600a62000566565b620000f8906207a1206200057e565b600f556000601055601180546001600160a01b03191661dead1790553480156200012157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ee919062000598565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000251573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000277919062000598565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb919062000598565b600d80546001600160a01b0319166001600160a01b0392909216919091179055620003196009600a62000566565b6200032990633b9aca006200057e565b336000908152600160208190526040822092909255600390620003546000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260039283905290812080549093166001908117909355620003a13390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560055490911681526003909252902080549091166001179055620003f03390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200042a6009600a62000566565b6200043a90633b9aca006200057e565b60405190815260200160405180910390a3620005c3565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004a85781600019048211156200048c576200048c62000451565b808516156200049a57918102915b93841c93908002906200046c565b509250929050565b600082620004c15750600162000560565b81620004d05750600062000560565b8160018114620004e95760028114620004f45762000514565b600191505062000560565b60ff84111562000508576200050862000451565b50506001821b62000560565b5060208310610133831016604e8410600b841016171562000539575081810a62000560565b62000545838362000467565b80600019048211156200055c576200055c62000451565b0290505b92915050565b60006200057760ff841683620004b0565b9392505050565b808202811582820484141762000560576200056062000451565b600060208284031215620005ab57600080fd5b81516001600160a01b03811681146200057757600080fd5b611f6e80620005d36000396000f3fe6080604052600436106101dc5760003560e01c8063715018a61161010257806395d89b4111610095578063c0fdea5711610064578063c0fdea571461055e578063dd62ed3e14610574578063f4293890146105ba578063fbee93ba146105cf57600080fd5b806395d89b41146104db578063a2330d9714610508578063a9059cbb14610528578063bf474bed1461054857600080fd5b80638da5cb5b116100d15780638da5cb5b146104675780638f9a55c0146104855780639036ed4d1461049b57806392f42870146104bb57600080fd5b8063715018a614610412578063751039fc146104275780637d1db4a51461043c5780638a8c523c1461045257600080fd5b806316a7b1601161017a57806349bd5a5e1161014957806349bd5a5e1461037757806351bc3c851461039757806363cdf60f146103ac57806370a08231146103dc57600080fd5b806316a7b1601461031357806318160ddd1461032657806323b872dd1461033b578063313ce5671461035b57600080fd5b806306fdde03116101b657806306fdde031461026b578063095ea7b3146102ba5780630f1d7ad9146102ea5780630faee56f146102fd57600080fd5b806301fac39b146101e857806303fd2a451461020a578063054dee0f1461024757600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611877565b6105e5565b005b34801561021657600080fd5b5060115461022a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5061025d600e5481565b60405190815260200161023e565b34801561027757600080fd5b506040805180820190915260208082527f454c4653414e54414a4553555346524f5354594752494e4348584d4153494e55908201525b60405161023e9190611979565b3480156102c657600080fd5b506102da6102d536600461198c565b610684565b604051901515815260200161023e565b6102086102f83660046119b8565b61069b565b34801561030957600080fd5b5061025d600b5481565b6102086103213660046119b8565b610848565b34801561033257600080fd5b5061025d6109ea565b34801561034757600080fd5b506102da610356366004611a4d565b610a0b565b34801561036757600080fd5b506040516009815260200161023e565b34801561038357600080fd5b50600d5461022a906001600160a01b031681565b3480156103a357600080fd5b50610208610a74565b3480156103b857600080fd5b506103cc6103c73660046119b8565b610ac3565b60405161023e9493929190611a8e565b3480156103e857600080fd5b5061025d6103f7366004611abd565b6001600160a01b031660009081526001602052604090205490565b34801561041e57600080fd5b50610208610b84565b34801561043357600080fd5b50610208610bf8565b34801561044857600080fd5b5061025d60085481565b34801561045e57600080fd5b50610208610cac565b34801561047357600080fd5b506000546001600160a01b031661022a565b34801561049157600080fd5b5061025d60095481565b3480156104a757600080fd5b506102086104b6366004611ada565b610d49565b3480156104c757600080fd5b506102086104d6366004611877565b610d7e565b3480156104e757600080fd5b5060408051808201909152600481526308a988cb60e31b60208201526102ad565b34801561051457600080fd5b506103cc6105233660046119b8565b610e10565b34801561053457600080fd5b506102da61054336600461198c565b610e36565b34801561055457600080fd5b5061025d600a5481565b34801561056a57600080fd5b5061025d60105481565b34801561058057600080fd5b5061025d61058f366004611afc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105c657600080fd5b50610208610e43565b3480156105db57600080fd5b5061025d600f5481565b6000546001600160a01b031633146106185760405162461bcd60e51b815260040161060f90611b35565b60405180910390fd5b60005b81518110156106805760006003600084848151811061063c5761063c611b6a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067881611b96565b91505061061b565b5050565b6000610691338484610e56565b5060015b92915050565b600e543410156106e45760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b604482015260640161060f565b600f543331101561072c5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640161060f565b346010600082825461073e9190611baf565b9091555050601154600f546107609133916001600160a01b0390911690610f7a565b6040518060800160405280828152602001600115158152602001428152602001346013846040516107919190611bc2565b9081526020016040518091039020600301546107ad9190611baf565b8152506013826040516107c09190611bc2565b908152604051908190036020019020815181906107dd9082611c61565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f8382dfeb92e23123a91d983e4f179a9fbe329ff91e14e11cd3c3b5252f1151229061083d9083904290611d21565b60405180910390a150565b600e543410156108915760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b604482015260640161060f565b600f54333110156108d95760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640161060f565b34601060008282546108eb9190611baf565b9091555050601154600f5461090d9133916001600160a01b0390911690610f7a565b60405180608001604052808281526020016001151581526020014281526020013460128460405161093e9190611bc2565b90815260200160405180910390206003015461095a9190611baf565b81525060128260405161096d9190611bc2565b9081526040519081900360200190208151819061098a9082611c61565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f892c7b6af36dc1cd7c78d56ead1e536ddf81fe5688e6b3f631cdfadf7ad4c5089061083d9083904290611d21565b60006109f86009600a611e27565b610a0690633b9aca00611e36565b905090565b6000610a18848484610f7a565b610a6a8433610a6585604051806060016040528060288152602001611f11602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061147e565b610e56565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610a9457600080fd5b306000908152600160205260409020548015610ab357610ab3816114b8565b4780156106805761068081611632565b8051602081830181018051601282529282019190930120915280548190610ae990611bde565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1590611bde565b8015610b625780601f10610b3757610100808354040283529160200191610b62565b820191906000526020600020905b815481529060010190602001808311610b4557829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b6000546001600160a01b03163314610bae5760405162461bcd60e51b815260040161060f90611b35565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c225760405162461bcd60e51b815260040161060f90611b35565b610c2e6009600a611e27565b610c3c90633b9aca00611e36565b600855610c4b6009600a611e27565b610c5990633b9aca00611e36565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610c8b90600a611e27565b610c9990633b9aca00611e36565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610cd65760405162461bcd60e51b815260040161060f90611b35565b600d54600160a01b900460ff1615610d305760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a20526571756972656d656e7420616c7265616479206d65740000604482015260640161060f565b600d805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610d735760405162461bcd60e51b815260040161060f90611b35565b600691909155600755565b6000546001600160a01b03163314610da85760405162461bcd60e51b815260040161060f90611b35565b60005b815181101561068057600160036000848481518110610dcc57610dcc611b6a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e0881611b96565b915050610dab565b8051602081830181018051601382529282019190930120915280548190610ae990611bde565b6000610691338484610f7a565b478015610e5357610e5381611632565b50565b6001600160a01b038316610eb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161060f565b6001600160a01b038216610f195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161060f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161060f565b6001600160a01b0382166110405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161060f565b600081116110a15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206d75737420626520626967676572207460448201526768616e207a65726f60c01b606482015260840161060f565b600080546001600160a01b038581169116148015906110ce57506000546001600160a01b03848116911614155b1561133b57600d546001600160a01b0385811691161480156110fe5750600c546001600160a01b03848116911614155b801561112357506001600160a01b03831660009081526003602052604090205460ff16155b1561126457600d54600160a01b900460ff166111745760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161060f565b6008548211156111c65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161060f565b600954826111e9856001600160a01b031660009081526001602052604090205490565b6111f39190611baf565b11156112415760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161060f565b611261606461125b6006548561166c90919063ffffffff16565b906116f5565b90505b600d546001600160a01b03848116911614801561128a57506001600160a01b0384163014155b156112ac576112a9606461125b6007548561166c90919063ffffffff16565b90505b30600090815260016020526040902054600d54600160a81b900460ff161580156112e35750600d546001600160a01b038581169116145b80156112f85750600d54600160b01b900460ff165b80156113055750600a5481115b15611339576113276113228461131d84600b54611737565b611737565b6114b8565b4780156113375761133747611632565b505b505b80156113b5573060009081526001602052604090205461135b908261174c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ac9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546113d890836117ab565b6001600160a01b03851660009081526001602052604090205561141d6113fe83836117ab565b6001600160a01b0385166000908152600160205260409020549061174c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146785856117ab565b60405190815260200160405180910390a350505050565b600081848411156114a25760405162461bcd60e51b815260040161060f9190611979565b5060006114af8486611e4d565b95945050505050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061150057611500611b6a565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157d9190611e60565b8160018151811061159057611590611b6a565b6001600160a01b039283166020918202929092010152600c546115b69130911684610e56565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115ef908590600090869030904290600401611e7d565b600060405180830381600087803b15801561160957600080fd5b505af115801561161d573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610680573d6000803e3d6000fd5b60008260000361167e57506000610695565b600061168a8385611e36565b9050826116978583611eee565b146116ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161060f565b9392505050565b60006116ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ed565b600081831161174657826116ee565b50919050565b6000806117598385611baf565b9050838110156116ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161060f565b60006116ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061147e565b6000818361180e5760405162461bcd60e51b815260040161060f9190611979565b5060006114af8486611eee565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561185a5761185a61181b565b604052919050565b6001600160a01b0381168114610e5357600080fd5b6000602080838503121561188a57600080fd5b823567ffffffffffffffff808211156118a257600080fd5b818501915085601f8301126118b657600080fd5b8135818111156118c8576118c861181b565b8060051b91506118d9848301611831565b81815291830184019184810190888411156118f357600080fd5b938501935b8385101561191d578435925061190d83611862565b82825293850193908501906118f8565b98975050505050505050565b60005b8381101561194457818101518382015260200161192c565b50506000910152565b60008151808452611965816020860160208601611929565b601f01601f19169290920160200192915050565b6020815260006116ee602083018461194d565b6000806040838503121561199f57600080fd5b82356119aa81611862565b946020939093013593505050565b600060208083850312156119cb57600080fd5b823567ffffffffffffffff808211156119e357600080fd5b818501915085601f8301126119f757600080fd5b813581811115611a0957611a0961181b565b611a1b601f8201601f19168501611831565b91508082528684828501011115611a3157600080fd5b8084840185840137600090820190930192909252509392505050565b600080600060608486031215611a6257600080fd5b8335611a6d81611862565b92506020840135611a7d81611862565b929592945050506040919091013590565b608081526000611aa1608083018761194d565b9415156020830152506040810192909252606090910152919050565b600060208284031215611acf57600080fd5b81356116ee81611862565b60008060408385031215611aed57600080fd5b50508035926020909101359150565b60008060408385031215611b0f57600080fd5b8235611b1a81611862565b91506020830135611b2a81611862565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ba857611ba8611b80565b5060010190565b8082018082111561069557610695611b80565b60008251611bd4818460208701611929565b9190910192915050565b600181811c90821680611bf257607f821691505b60208210810361174657634e487b7160e01b600052602260045260246000fd5b601f821115611c5c57600081815260208120601f850160051c81016020861015611c395750805b601f850160051c820191505b81811015611c5857828155600101611c45565b5050505b505050565b815167ffffffffffffffff811115611c7b57611c7b61181b565b611c8f81611c898454611bde565b84611c12565b602080601f831160018114611cc45760008415611cac5750858301515b600019600386901b1c1916600185901b178555611c58565b600085815260208120601f198616915b82811015611cf357888601518255948401946001909101908401611cd4565b5085821015611d115787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000611d34604083018561194d565b90508260208301529392505050565b600181815b80851115611d7e578160001904821115611d6457611d64611b80565b80851615611d7157918102915b93841c9390800290611d48565b509250929050565b600082611d9557506001610695565b81611da257506000610695565b8160018114611db85760028114611dc257611dde565b6001915050610695565b60ff841115611dd357611dd3611b80565b50506001821b610695565b5060208310610133831016604e8410600b8410161715611e01575081810a610695565b611e0b8383611d43565b8060001904821115611e1f57611e1f611b80565b029392505050565b60006116ee60ff841683611d86565b808202811582820484141761069557610695611b80565b8181038181111561069557610695611b80565b600060208284031215611e7257600080fd5b81516116ee81611862565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ecd5784516001600160a01b031683529383019391830191600101611ea8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f0b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072fe0798906a83a0f24d8ff928b42bc79efce0b06a307d80f6c2de2322a13d8b64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a61161010257806395d89b4111610095578063c0fdea5711610064578063c0fdea571461055e578063dd62ed3e14610574578063f4293890146105ba578063fbee93ba146105cf57600080fd5b806395d89b41146104db578063a2330d9714610508578063a9059cbb14610528578063bf474bed1461054857600080fd5b80638da5cb5b116100d15780638da5cb5b146104675780638f9a55c0146104855780639036ed4d1461049b57806392f42870146104bb57600080fd5b8063715018a614610412578063751039fc146104275780637d1db4a51461043c5780638a8c523c1461045257600080fd5b806316a7b1601161017a57806349bd5a5e1161014957806349bd5a5e1461037757806351bc3c851461039757806363cdf60f146103ac57806370a08231146103dc57600080fd5b806316a7b1601461031357806318160ddd1461032657806323b872dd1461033b578063313ce5671461035b57600080fd5b806306fdde03116101b657806306fdde031461026b578063095ea7b3146102ba5780630f1d7ad9146102ea5780630faee56f146102fd57600080fd5b806301fac39b146101e857806303fd2a451461020a578063054dee0f1461024757600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611877565b6105e5565b005b34801561021657600080fd5b5060115461022a906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5061025d600e5481565b60405190815260200161023e565b34801561027757600080fd5b506040805180820190915260208082527f454c4653414e54414a4553555346524f5354594752494e4348584d4153494e55908201525b60405161023e9190611979565b3480156102c657600080fd5b506102da6102d536600461198c565b610684565b604051901515815260200161023e565b6102086102f83660046119b8565b61069b565b34801561030957600080fd5b5061025d600b5481565b6102086103213660046119b8565b610848565b34801561033257600080fd5b5061025d6109ea565b34801561034757600080fd5b506102da610356366004611a4d565b610a0b565b34801561036757600080fd5b506040516009815260200161023e565b34801561038357600080fd5b50600d5461022a906001600160a01b031681565b3480156103a357600080fd5b50610208610a74565b3480156103b857600080fd5b506103cc6103c73660046119b8565b610ac3565b60405161023e9493929190611a8e565b3480156103e857600080fd5b5061025d6103f7366004611abd565b6001600160a01b031660009081526001602052604090205490565b34801561041e57600080fd5b50610208610b84565b34801561043357600080fd5b50610208610bf8565b34801561044857600080fd5b5061025d60085481565b34801561045e57600080fd5b50610208610cac565b34801561047357600080fd5b506000546001600160a01b031661022a565b34801561049157600080fd5b5061025d60095481565b3480156104a757600080fd5b506102086104b6366004611ada565b610d49565b3480156104c757600080fd5b506102086104d6366004611877565b610d7e565b3480156104e757600080fd5b5060408051808201909152600481526308a988cb60e31b60208201526102ad565b34801561051457600080fd5b506103cc6105233660046119b8565b610e10565b34801561053457600080fd5b506102da61054336600461198c565b610e36565b34801561055457600080fd5b5061025d600a5481565b34801561056a57600080fd5b5061025d60105481565b34801561058057600080fd5b5061025d61058f366004611afc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105c657600080fd5b50610208610e43565b3480156105db57600080fd5b5061025d600f5481565b6000546001600160a01b031633146106185760405162461bcd60e51b815260040161060f90611b35565b60405180910390fd5b60005b81518110156106805760006003600084848151811061063c5761063c611b6a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067881611b96565b91505061061b565b5050565b6000610691338484610e56565b5060015b92915050565b600e543410156106e45760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b604482015260640161060f565b600f543331101561072c5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640161060f565b346010600082825461073e9190611baf565b9091555050601154600f546107609133916001600160a01b0390911690610f7a565b6040518060800160405280828152602001600115158152602001428152602001346013846040516107919190611bc2565b9081526020016040518091039020600301546107ad9190611baf565b8152506013826040516107c09190611bc2565b908152604051908190036020019020815181906107dd9082611c61565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f8382dfeb92e23123a91d983e4f179a9fbe329ff91e14e11cd3c3b5252f1151229061083d9083904290611d21565b60405180910390a150565b600e543410156108915760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f756768204554482073656e742160601b604482015260640161060f565b600f54333110156108d95760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b604482015260640161060f565b34601060008282546108eb9190611baf565b9091555050601154600f5461090d9133916001600160a01b0390911690610f7a565b60405180608001604052808281526020016001151581526020014281526020013460128460405161093e9190611bc2565b90815260200160405180910390206003015461095a9190611baf565b81525060128260405161096d9190611bc2565b9081526040519081900360200190208151819061098a9082611c61565b50602082015160018201805460ff19169115159190911790556040808301516002830155606090920151600390910155517f892c7b6af36dc1cd7c78d56ead1e536ddf81fe5688e6b3f631cdfadf7ad4c5089061083d9083904290611d21565b60006109f86009600a611e27565b610a0690633b9aca00611e36565b905090565b6000610a18848484610f7a565b610a6a8433610a6585604051806060016040528060288152602001611f11602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061147e565b610e56565b5060019392505050565b6005546001600160a01b0316336001600160a01b031614610a9457600080fd5b306000908152600160205260409020548015610ab357610ab3816114b8565b4780156106805761068081611632565b8051602081830181018051601282529282019190930120915280548190610ae990611bde565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1590611bde565b8015610b625780601f10610b3757610100808354040283529160200191610b62565b820191906000526020600020905b815481529060010190602001808311610b4557829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b6000546001600160a01b03163314610bae5760405162461bcd60e51b815260040161060f90611b35565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c225760405162461bcd60e51b815260040161060f90611b35565b610c2e6009600a611e27565b610c3c90633b9aca00611e36565b600855610c4b6009600a611e27565b610c5990633b9aca00611e36565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610c8b90600a611e27565b610c9990633b9aca00611e36565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610cd65760405162461bcd60e51b815260040161060f90611b35565b600d54600160a01b900460ff1615610d305760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a20526571756972656d656e7420616c7265616479206d65740000604482015260640161060f565b600d805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610d735760405162461bcd60e51b815260040161060f90611b35565b600691909155600755565b6000546001600160a01b03163314610da85760405162461bcd60e51b815260040161060f90611b35565b60005b815181101561068057600160036000848481518110610dcc57610dcc611b6a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e0881611b96565b915050610dab565b8051602081830181018051601382529282019190930120915280548190610ae990611bde565b6000610691338484610f7a565b478015610e5357610e5381611632565b50565b6001600160a01b038316610eb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161060f565b6001600160a01b038216610f195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161060f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fde5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161060f565b6001600160a01b0382166110405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161060f565b600081116110a15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206d75737420626520626967676572207460448201526768616e207a65726f60c01b606482015260840161060f565b600080546001600160a01b038581169116148015906110ce57506000546001600160a01b03848116911614155b1561133b57600d546001600160a01b0385811691161480156110fe5750600c546001600160a01b03848116911614155b801561112357506001600160a01b03831660009081526003602052604090205460ff16155b1561126457600d54600160a01b900460ff166111745760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b604482015260640161060f565b6008548211156111c65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161060f565b600954826111e9856001600160a01b031660009081526001602052604090205490565b6111f39190611baf565b11156112415760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161060f565b611261606461125b6006548561166c90919063ffffffff16565b906116f5565b90505b600d546001600160a01b03848116911614801561128a57506001600160a01b0384163014155b156112ac576112a9606461125b6007548561166c90919063ffffffff16565b90505b30600090815260016020526040902054600d54600160a81b900460ff161580156112e35750600d546001600160a01b038581169116145b80156112f85750600d54600160b01b900460ff165b80156113055750600a5481115b15611339576113276113228461131d84600b54611737565b611737565b6114b8565b4780156113375761133747611632565b505b505b80156113b5573060009081526001602052604090205461135b908261174c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113ac9085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546113d890836117ab565b6001600160a01b03851660009081526001602052604090205561141d6113fe83836117ab565b6001600160a01b0385166000908152600160205260409020549061174c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61146785856117ab565b60405190815260200160405180910390a350505050565b600081848411156114a25760405162461bcd60e51b815260040161060f9190611979565b5060006114af8486611e4d565b95945050505050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061150057611500611b6a565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157d9190611e60565b8160018151811061159057611590611b6a565b6001600160a01b039283166020918202929092010152600c546115b69130911684610e56565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115ef908590600090869030904290600401611e7d565b600060405180830381600087803b15801561160957600080fd5b505af115801561161d573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610680573d6000803e3d6000fd5b60008260000361167e57506000610695565b600061168a8385611e36565b9050826116978583611eee565b146116ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161060f565b9392505050565b60006116ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ed565b600081831161174657826116ee565b50919050565b6000806117598385611baf565b9050838110156116ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161060f565b60006116ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061147e565b6000818361180e5760405162461bcd60e51b815260040161060f9190611979565b5060006114af8486611eee565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561185a5761185a61181b565b604052919050565b6001600160a01b0381168114610e5357600080fd5b6000602080838503121561188a57600080fd5b823567ffffffffffffffff808211156118a257600080fd5b818501915085601f8301126118b657600080fd5b8135818111156118c8576118c861181b565b8060051b91506118d9848301611831565b81815291830184019184810190888411156118f357600080fd5b938501935b8385101561191d578435925061190d83611862565b82825293850193908501906118f8565b98975050505050505050565b60005b8381101561194457818101518382015260200161192c565b50506000910152565b60008151808452611965816020860160208601611929565b601f01601f19169290920160200192915050565b6020815260006116ee602083018461194d565b6000806040838503121561199f57600080fd5b82356119aa81611862565b946020939093013593505050565b600060208083850312156119cb57600080fd5b823567ffffffffffffffff808211156119e357600080fd5b818501915085601f8301126119f757600080fd5b813581811115611a0957611a0961181b565b611a1b601f8201601f19168501611831565b91508082528684828501011115611a3157600080fd5b8084840185840137600090820190930192909252509392505050565b600080600060608486031215611a6257600080fd5b8335611a6d81611862565b92506020840135611a7d81611862565b929592945050506040919091013590565b608081526000611aa1608083018761194d565b9415156020830152506040810192909252606090910152919050565b600060208284031215611acf57600080fd5b81356116ee81611862565b60008060408385031215611aed57600080fd5b50508035926020909101359150565b60008060408385031215611b0f57600080fd5b8235611b1a81611862565b91506020830135611b2a81611862565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ba857611ba8611b80565b5060010190565b8082018082111561069557610695611b80565b60008251611bd4818460208701611929565b9190910192915050565b600181811c90821680611bf257607f821691505b60208210810361174657634e487b7160e01b600052602260045260246000fd5b601f821115611c5c57600081815260208120601f850160051c81016020861015611c395750805b601f850160051c820191505b81811015611c5857828155600101611c45565b5050505b505050565b815167ffffffffffffffff811115611c7b57611c7b61181b565b611c8f81611c898454611bde565b84611c12565b602080601f831160018114611cc45760008415611cac5750858301515b600019600386901b1c1916600185901b178555611c58565b600085815260208120601f198616915b82811015611cf357888601518255948401946001909101908401611cd4565b5085821015611d115787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000611d34604083018561194d565b90508260208301529392505050565b600181815b80851115611d7e578160001904821115611d6457611d64611b80565b80851615611d7157918102915b93841c9390800290611d48565b509250929050565b600082611d9557506001610695565b81611da257506000610695565b8160018114611db85760028114611dc257611dde565b6001915050610695565b60ff841115611dd357611dd3611b80565b50506001821b610695565b5060208310610133831016604e8410600b8410161715611e01575081810a610695565b611e0b8383611d43565b8060001904821115611e1f57611e1f611b80565b029392505050565b60006116ee60ff841683611d86565b808202811582820484141761069557610695611b80565b8181038181111561069557610695611b80565b600060208284031215611e7257600080fd5b81516116ee81611862565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ecd5784516001600160a01b031683529383019391830191600101611ea8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611f0b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072fe0798906a83a0f24d8ff928b42bc79efce0b06a307d80f6c2de2322a13d8b64736f6c63430008110033

Deployed Bytecode Sourcemap

3345:8360:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5975:171;;;;;;;;;;-1:-1:-1;5975:171:0;;;;;:::i;:::-;;:::i;:::-;;4631:64;;;;;;;;;;-1:-1:-1;4631:64:0;;;;-1:-1:-1;;;;;4631:64:0;;;;;;-1:-1:-1;;;;;1752:32:1;;;1734:51;;1722:2;1707:18;4631:64:0;;;;;;;;4493:35;;;;;;;;;;;;;;;;;;;1942:25:1;;;1930:2;1915:18;4493:35:0;1796:177:1;6468:75:0;;;;;;;;;;-1:-1:-1;6532:5:0;;;;;;;;;;;;;;;;;;6468:75;;;;;;;:::i;7540:147::-;;;;;;;;;;-1:-1:-1;7540:147:0;;;;;:::i;:::-;;:::i;:::-;;;3219:14:1;;3212:22;3194:41;;3182:2;3167:18;7540:147:0;3054:187:1;10681:502:0;;;;;;:::i;:::-;;:::i;4249:51::-;;;;;;;;;;;;;;;;10183:492;;;;;;:::i;:::-;;:::i;6715:87::-;;;;;;;;;;;;;:::i;7989:293::-;;;;;;;;;;-1:-1:-1;7989:293:0;;;;;:::i;:::-;;:::i;6634:75::-;;;;;;;;;;-1:-1:-1;6634:75:0;;3866:1;4618:36:1;;4606:2;4591:18;6634:75:0;4476:184:1;4352:28:0;;;;;;;;;;-1:-1:-1;4352:28:0;;;;-1:-1:-1;;;;;4352:28:0;;;7693:288;;;;;;;;;;;;;:::i;4700:50::-;;;;;;;;;;-1:-1:-1;4700:50:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;6808:111::-;;;;;;;;;;-1:-1:-1;6808:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;6895:18:0;6874:7;6895:18;;;:9;:18;;;;;;;6808:111;2508:134;;;;;;;;;;;;;:::i;11191:139::-;;;;;;;;;;;;;:::i;4068:54::-;;;;;;;;;;;;;;;;6152:157;;;;;;;;;;;;;:::i;2320:71::-;;;;;;;;;;-1:-1:-1;2358:7:0;2379:6;-1:-1:-1;;;;;2379:6:0;2320:71;;4127:56;;;;;;;;;;;;;;;;6315:145;;;;;;;;;;-1:-1:-1;6315:145:0;;;;;:::i;:::-;;:::i;5798:171::-;;;;;;;;;;-1:-1:-1;5798:171:0;;;;;:::i;:::-;;:::i;6549:79::-;;;;;;;;;;-1:-1:-1;6615:7:0;;;;;;;;;;;;-1:-1:-1;;;6615:7:0;;;;6549:79;;4755:56;;;;;;;;;;-1:-1:-1;4755:56:0;;;;;:::i;:::-;;:::i;6925:153::-;;;;;;;;;;-1:-1:-1;6925:153:0;;;;;:::i;:::-;;:::i;4188:56::-;;;;;;;;;;;;;;;;4589:37;;;;;;;;;;;;;;;;7399:135;;;;;;;;;;-1:-1:-1;7399:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;7501:18:0;;;7480:7;7501:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7399:135;11526:137;;;;;;;;;;;;;:::i;4533:51::-;;;;;;;;;;;;;;;;5975:171;2431:6;;-1:-1:-1;;;;;2431:6:0;319:10;2431:22;2423:67;;;;-1:-1:-1;;;2423:67:0;;;;;;;:::i;:::-;;;;;;;;;6053:6:::1;6048:93;6069:8;:15;6065:1;:19;6048:93;;;6130:5;6096:18;:31;6115:8;6124:1;6115:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6096:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6096:31:0;:39;;-1:-1:-1;;6096:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6086:3;::::1;::::0;::::1;:::i;:::-;;;;6048:93;;;;5975:171:::0;:::o;7540:147::-;7615:4;7626:39;319:10;7649:7;7658:6;7626:8;:39::i;:::-;-1:-1:-1;7677:4:0;7540:147;;;;;:::o;10681:502::-;10773:11;;10760:9;:24;;10752:57;;;;-1:-1:-1;;;10752:57:0;;6980:2:1;10752:57:0;;;6962:21:1;7019:2;6999:18;;;6992:30;-1:-1:-1;;;7038:18:1;;;7031:50;7098:18;;10752:57:0;6778:344:1;10752:57:0;10844:14;;10822:10;:18;:36;;10814:67;;;;-1:-1:-1;;;10814:67:0;;7329:2:1;10814:67:0;;;7311:21:1;7368:2;7348:18;;;7341:30;-1:-1:-1;;;7387:18:1;;;7380:48;7445:18;;10814:67:0;7127:342:1;10814:67:0;10908:9;10886:18;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;10944:4:0;;10950:14;;10922:43;;10932:10;;-1:-1:-1;;;;;10944:4:0;;;;10922:9;:43::i;:::-;11003:120;;;;;;;;11021:10;11003:120;;;;11036:4;11003:120;;;;;;11045:15;11003:120;;;;11109:9;11065:16;11082:10;11065:28;;;;;;:::i;:::-;;;;;;;;;;;;;:41;;;:53;;;;:::i;:::-;11003:120;;;10972:16;10989:10;10972:28;;;;;;:::i;:::-;;;;;;;;;;;;;;:151;;:28;;:151;;:28;:151;:::i;:::-;-1:-1:-1;10972:151:0;;;;;;;;;-1:-1:-1;;10972:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11133:44;;;;;11149:10;;11161:15;;11133:44;:::i;:::-;;;;;;;;10681:502;:::o;10183:492::-;10273:11;;10260:9;:24;;10252:57;;;;-1:-1:-1;;;10252:57:0;;6980:2:1;10252:57:0;;;6962:21:1;7019:2;6999:18;;;6992:30;-1:-1:-1;;;7038:18:1;;;7031:50;7098:18;;10252:57:0;6778:344:1;10252:57:0;10344:14;;10322:10;:18;:36;;10314:67;;;;-1:-1:-1;;;10314:67:0;;7329:2:1;10314:67:0;;;7311:21:1;7368:2;7348:18;;;7341:30;-1:-1:-1;;;7387:18:1;;;7380:48;7445:18;;10314:67:0;7127:342:1;10314:67:0;10408:9;10386:18;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;10444:4:0;;10450:14;;10422:43;;10432:10;;-1:-1:-1;;;;;10444:4:0;;;;10422:9;:43::i;:::-;10501:116;;;;;;;;10516:11;10501:116;;;;10532:4;10501:116;;;;;;10541:15;10501:116;;;;10603:9;10561:13;10575:11;10561:26;;;;;;:::i;:::-;;;;;;;;;;;;;:39;;;:51;;;;:::i;:::-;10501:116;;;10472:13;10486:11;10472:26;;;;;;:::i;:::-;;;;;;;;;;;;;;:145;;:26;;:145;;:26;:145;:::i;:::-;-1:-1:-1;10472:145:0;;;;;;;;;-1:-1:-1;;10472:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10627:42;;;;;10640:11;;10653:15;;10627:42;:::i;6715:87::-;6768:7;3920:13;3866:1;3920:2;:13;:::i;:::-;3907:26;;:10;:26;:::i;:::-;6782:14;;6715:87;:::o;7989:293::-;8087:4;8098:36;8108:6;8116:9;8127:6;8098:9;:36::i;:::-;8139:121;8148:6;319:10;8170:89;8208:6;8170:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8170:19:0;;;;;;:11;:19;;;;;;;;319:10;8170:33;;;;;;;;;;:37;:89::i;:::-;8139:8;:121::i;:::-;-1:-1:-1;8272:4:0;7989:293;;;;;:::o;7693:288::-;7751:10;;-1:-1:-1;;;;;7751:10:0;319;-1:-1:-1;;;;;7737:24:0;;7729:33;;;;;;7806:4;7767:20;6895:18;;;:9;:18;;;;;;7820:14;;7817:59;;7840:30;7857:12;7840:16;:30::i;:::-;7899:21;7928:12;;7925:51;;7946:24;7959:10;7946:12;:24::i;4700:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4700:50:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4700:50:0;:::o;2508:134::-;2431:6;;-1:-1:-1;;;;;2431:6:0;319:10;2431:22;2423:67;;;;-1:-1:-1;;;2423:67:0;;;;;;;:::i;:::-;2609:1:::1;2593:6:::0;;2572:40:::1;::::0;-1:-1:-1;;;;;2593:6:0;;::::1;::::0;2572:40:::1;::::0;2609:1;;2572:40:::1;2634:1;2617:19:::0;;-1:-1:-1;;;;;;2617:19:0::1;::::0;;2508:134::o;11191:139::-;2431:6;;-1:-1:-1;;;;;2431:6:0;319:10;2431:22;2423:67;;;;-1:-1:-1;;;2423:67:0;;;;;;;:::i;:::-;3920:13:::1;3866:1;3920:2;:13;:::i;:::-;3907:26;::::0;:10:::1;:26;:::i;:::-;11238:12;:22:::0;3920:13:::1;3866:1;3920:2;:13;:::i;:::-;3907:26;::::0;:10:::1;:26;:::i;:::-;11265:14;:22:::0;;;11297:27:::1;::::0;3920:13:::1;::::0;:2:::1;:13;:::i;:::-;3907:26;::::0;:10:::1;:26;:::i;:::-;11297:27;::::0;1942:25:1;;;1930:2;1915:18;11297:27:0::1;;;;;;;11191:139::o:0;6152:157::-;2431:6;;-1:-1:-1;;;;;2431:6:0;319:10;2431:22;2423:67;;;;-1:-1:-1;;;2423:67:0;;;;;;;:::i;:::-;6212:11:::1;::::0;-1:-1:-1;;;6212:11:0;::::1;;;6211:12;6203:54;;;::::0;-1:-1:-1;;;6203:54:0;;12541:2:1;6203:54:0::1;::::0;::::1;12523:21:1::0;12580:2;12560:18;;;12553:30;12619:32;12599:18;;;12592:60;12669:18;;6203:54:0::1;12339:354:1::0;6203:54:0::1;6262:11;:18:::0;;-1:-1:-1;;;;6285:18:0;-1:-1:-1;;;6285:18:0;;;6152:157::o;6315:145::-;2431:6;;-1:-1:-1;;;;;2431:6:0;319:10;2431:22;2423:67;;;;-1:-1:-1;;;2423:67:0;;;;;;;:::i;:::-;6401:12:::1;:23:::0;;;;6429:13:::1;:25:::0;6315:145::o;5798:171::-;2431:6;;-1:-1:-1;;;;;2431:6:0;319:10;2431:22;2423:67;;;;-1:-1:-1;;;2423:67:0;;;;;;;:::i;:::-;5877:6:::1;5872:92;5893:8;:15;5889:1;:19;5872:92;;;5954:4;5920:18;:31;5939:8;5948:1;5939:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;5920:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;5920:31:0;:38;;-1:-1:-1;;5920:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5910:3;::::1;::::0;::::1;:::i;:::-;;;;5872:92;;4755:56:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6925:153::-;7003:4;7014:42;319:10;7038:9;7049:6;7014:9;:42::i;11526:137::-;11581:21;11610:12;;11607:51;;11628:24;11641:10;11628:12;:24::i;:::-;11557:106;11526:137::o;7084:309::-;-1:-1:-1;;;;;7171:19:0;;7163:68;;;;-1:-1:-1;;;7163:68:0;;12900:2:1;7163:68:0;;;12882:21:1;12939:2;12919:18;;;12912:30;12978:34;12958:18;;;12951:62;-1:-1:-1;;;13029:18:1;;;13022:34;13073:19;;7163:68:0;12698:400:1;7163:68:0;-1:-1:-1;;;;;7244:21:0;;7236:68;;;;-1:-1:-1;;;7236:68:0;;13305:2:1;7236:68:0;;;13287:21:1;13344:2;13324:18;;;13317:30;13383:34;13363:18;;;13356:62;-1:-1:-1;;;13434:18:1;;;13427:32;13476:19;;7236:68:0;13103:398:1;7236:68:0;-1:-1:-1;;;;;7309:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7355:32;;1942:25:1;;;7355:32:0;;1915:18:1;7355:32:0;;;;;;;7084:309;;;:::o;8290:1486::-;-1:-1:-1;;;;;8372:18:0;;8364:68;;;;-1:-1:-1;;;8364:68:0;;13708:2:1;8364:68:0;;;13690:21:1;13747:2;13727:18;;;13720:30;13786:34;13766:18;;;13759:62;-1:-1:-1;;;13837:18:1;;;13830:35;13882:19;;8364:68:0;13506:401:1;8364:68:0;-1:-1:-1;;;;;8445:16:0;;8437:64;;;;-1:-1:-1;;;8437:64:0;;14114:2:1;8437:64:0;;;14096:21:1;14153:2;14133:18;;;14126:30;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:18:1;;;14236:33;14286:19;;8437:64:0;13912:399:1;8437:64:0;8523:1;8514:6;:10;8506:63;;;;-1:-1:-1;;;8506:63:0;;14518:2:1;8506:63:0;;;14500:21:1;14557:2;14537:18;;;14530:30;14596:34;14576:18;;;14569:62;-1:-1:-1;;;14647:18:1;;;14640:38;14695:19;;8506:63:0;14316:404:1;8506:63:0;8574:17;2379:6;;-1:-1:-1;;;;;8602:15:0;;;2379:6;;8602:15;;;;:32;;-1:-1:-1;2358:7:0;2379:6;-1:-1:-1;;;;;8621:13:0;;;2379:6;;8621:13;;8602:32;8598:868;;;8653:13;;-1:-1:-1;;;;;8645:21:0;;;8653:13;;8645:21;:55;;;;-1:-1:-1;8684:15:0;;-1:-1:-1;;;;;8670:30:0;;;8684:15;;8670:30;;8645:55;:83;;;;-1:-1:-1;;;;;;8706:22:0;;;;;;:18;:22;;;;;;;;8704:24;8645:83;8641:340;;;8744:11;;-1:-1:-1;;;8744:11:0;;;;8736:40;;;;-1:-1:-1;;;8736:40:0;;14927:2:1;8736:40:0;;;14909:21:1;14966:2;14946:18;;;14939:30;-1:-1:-1;;;14985:18:1;;;14978:46;15041:18;;8736:40:0;14725:340:1;8736:40:0;8799:12;;8789:6;:22;;8781:60;;;;-1:-1:-1;;;8781:60:0;;15272:2:1;8781:60:0;;;15254:21:1;15311:2;15291:18;;;15284:30;15350:27;15330:18;;;15323:55;15395:18;;8781:60:0;15070:349:1;8781:60:0;8880:14;;8870:6;8854:13;8864:2;-1:-1:-1;;;;;6895:18:0;6874:7;6895:18;;;:9;:18;;;;;;;6808:111;8854:13;:22;;;;:::i;:::-;:40;;8846:79;;;;-1:-1:-1;;;8846:79:0;;15626:2:1;8846:79:0;;;15608:21:1;15665:2;15645:18;;;15638:30;15704:28;15684:18;;;15677:56;15750:18;;8846:79:0;15424:350:1;8846:79:0;8942:33;8971:3;8942:24;8953:12;;8942:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;8930:45;;8641:340;8996:13;;-1:-1:-1;;;;;8990:19:0;;;8996:13;;8990:19;:43;;;;-1:-1:-1;;;;;;9013:20:0;;9028:4;9013:20;;8990:43;8987:105;;;9052:34;9082:3;9052:25;9063:13;;9052:6;:10;;:25;;;;:::i;:34::-;9040:46;;8987:105;9147:4;9098:28;6895:18;;;:9;:18;;;;;;9163:6;;-1:-1:-1;;;9163:6:0;;;;9162:7;:30;;;;-1:-1:-1;9179:13:0;;-1:-1:-1;;;;;9173:19:0;;;9179:13;;9173:19;9162:30;:45;;;;-1:-1:-1;9196:11:0;;-1:-1:-1;;;9196:11:0;;;;9162:45;:87;;;;;9232:17;;9211:20;:38;9162:87;9158:303;;;9256:67;9273:49;9277:6;9284:37;9288:20;9309:11;;9284:3;:37::i;:::-;9273:3;:49::i;:::-;9256:16;:67::i;:::-;9357:21;9386:22;;9383:73;;9415:35;9428:21;9415:12;:35::i;:::-;9251:210;9158:303;8636:830;8598:868;9475:11;;9472:139;;9535:4;9517:24;;;;:9;:24;;;;;;:39;;9546:9;9517:28;:39::i;:::-;9510:4;9492:24;;;;:9;:24;;;;;;;:64;;;;9566:39;;-1:-1:-1;;;;;9566:39:0;;;;;;;9595:9;1942:25:1;;1930:2;1915:18;;1796:177;9566:39:0;;;;;;;;9472:139;-1:-1:-1;;;;;9633:15:0;;;;;;:9;:15;;;;;;:27;;9653:6;9633:19;:27::i;:::-;-1:-1:-1;;;;;9617:15:0;;;;;;:9;:15;;;;;:43;9679:40;9697:21;:6;9708:9;9697:10;:21::i;:::-;-1:-1:-1;;;;;9679:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9665:13:0;;;;;;;:9;:13;;;;;:54;;;;9729:41;;;9748:21;:6;9759:9;9748:10;:21::i;:::-;9729:41;;1942:25:1;;;1930:2;1915:18;9729:41:0;;;;;;;8359:1417;8290:1486;;;:::o;1332:170::-;1418:7;1448:12;1440:6;;;;1432:29;;;;-1:-1:-1;;;1432:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1466:9:0;1478:5;1482:1;1478;:5;:::i;:::-;1466:17;1332:170;-1:-1:-1;;;;;1332:170:0:o;9782:395::-;5260:6;:13;;-1:-1:-1;;;;5260:13:0;-1:-1:-1;;;5260:13:0;;;9878:16:::1;::::0;;9892:1:::1;9878:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9878:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9878:16:0::1;9854:40;;9917:4;9899;9904:1;9899:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9899:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9937:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9937:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9899:7;;9937:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9927:4;9932:1;9927:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9927:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9996:15:::1;::::0;9964:62:::1;::::0;9981:4:::1;::::0;9996:15:::1;10014:11:::0;9964:8:::1;:62::i;:::-;10031:15;::::0;:140:::1;::::0;-1:-1:-1;;;10031:140:0;;-1:-1:-1;;;;;10031:15:0;;::::1;::::0;:66:::1;::::0;:140:::1;::::0;10102:11;;10031:15:::1;::::0;10124:4;;10141::::1;::::0;10151:15:::1;::::0;10031:140:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5284:6:0;:14;;-1:-1:-1;;;;5284:14:0;;;-1:-1:-1;;;;9782:395:0:o;11434:84::-;11485:10;;:27;;-1:-1:-1;;;;;11485:10:0;;;;:27;;;;;11505:6;;11485:10;:27;:10;:27;11505:6;11485:10;:27;;;;;;;;;;;;;;;;;;;1508:204;1566:7;1584:1;1589;1584:6;1580:31;;-1:-1:-1;1604:1:0;1597:8;;1580:31;1615:9;1627:5;1631:1;1627;:5;:::i;:::-;1615:17;-1:-1:-1;1654:1:0;1645:5;1649:1;1615:17;1645:5;:::i;:::-;:10;1637:56;;;;-1:-1:-1;;;1637:56:0;;17577:2:1;1637:56:0;;;17559:21:1;17616:2;17596:18;;;17589:30;17655:34;17635:18;;;17628:62;-1:-1:-1;;;17706:18:1;;;17699:31;17747:19;;1637:56:0;17375:397:1;1637:56:0;1705:1;1508:204;-1:-1:-1;;;1508:204:0:o;1718:124::-;1776:7;1797:39;1801:1;1804;1797:39;;;;;;;;;;;;;;;;;:3;:39::i;11336:92::-;11393:7;11416:1;11414;:3;11413:9;;11421:1;11413:9;;;-1:-1:-1;11419:1:0;11336:92;-1:-1:-1;11336:92:0:o;1033:159::-;1091:7;;1117:5;1121:1;1117;:5;:::i;:::-;1105:17;;1140:1;1135;:6;;1127:46;;;;-1:-1:-1;;;1127:46:0;;17979:2:1;1127:46:0;;;17961:21:1;18018:2;17998:18;;;17991:30;18057:29;18037:18;;;18030:57;18104:18;;1127:46:0;17777:351:1;1198:128:0;1256:7;1277:43;1281:1;1284;1277:43;;;;;;;;;;;;;;;;;:3;:43::i;1848:169::-;1934:7;1963:12;1956:5;1948:28;;;;-1:-1:-1;;;1948:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1981:9:0;1993:5;1997:1;1993;:5;:::i;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:131::-;-1:-1:-1;;;;;501:31:1;;491:42;;481:70;;547:1;544;537:12;562:1021;646:6;677:2;720;708:9;699:7;695:23;691:32;688:52;;;736:1;733;726:12;688:52;776:9;763:23;805:18;846:2;838:6;835:14;832:34;;;862:1;859;852:12;832:34;900:6;889:9;885:22;875:32;;945:7;938:4;934:2;930:13;926:27;916:55;;967:1;964;957:12;916:55;1003:2;990:16;1025:2;1021;1018:10;1015:36;;;1031:18;;:::i;:::-;1077:2;1074:1;1070:10;1060:20;;1100:28;1124:2;1120;1116:11;1100:28;:::i;:::-;1162:15;;;1232:11;;;1228:20;;;1193:12;;;;1260:19;;;1257:39;;;1292:1;1289;1282:12;1257:39;1316:11;;;;1336:217;1352:6;1347:3;1344:15;1336:217;;;1432:3;1419:17;1406:30;;1449:31;1474:5;1449:31;:::i;:::-;1493:18;;;1369:12;;;;1531;;;;1336:217;;;1572:5;562:1021;-1:-1:-1;;;;;;;;562:1021:1:o;1978:250::-;2063:1;2073:113;2087:6;2084:1;2081:13;2073:113;;;2163:11;;;2157:18;2144:11;;;2137:39;2109:2;2102:10;2073:113;;;-1:-1:-1;;2220:1:1;2202:16;;2195:27;1978:250::o;2233:271::-;2275:3;2313:5;2307:12;2340:6;2335:3;2328:19;2356:76;2425:6;2418:4;2413:3;2409:14;2402:4;2395:5;2391:16;2356:76;:::i;:::-;2486:2;2465:15;-1:-1:-1;;2461:29:1;2452:39;;;;2493:4;2448:50;;2233:271;-1:-1:-1;;2233:271:1:o;2509:220::-;2658:2;2647:9;2640:21;2621:4;2678:45;2719:2;2708:9;2704:18;2696:6;2678:45;:::i;2734:315::-;2802:6;2810;2863:2;2851:9;2842:7;2838:23;2834:32;2831:52;;;2879:1;2876;2869:12;2831:52;2918:9;2905:23;2937:31;2962:5;2937:31;:::i;:::-;2987:5;3039:2;3024:18;;;;3011:32;;-1:-1:-1;;;2734:315:1:o;3246:764::-;3315:6;3346:2;3389;3377:9;3368:7;3364:23;3360:32;3357:52;;;3405:1;3402;3395:12;3357:52;3445:9;3432:23;3474:18;3515:2;3507:6;3504:14;3501:34;;;3531:1;3528;3521:12;3501:34;3569:6;3558:9;3554:22;3544:32;;3614:7;3607:4;3603:2;3599:13;3595:27;3585:55;;3636:1;3633;3626:12;3585:55;3672:2;3659:16;3694:2;3690;3687:10;3684:36;;;3700:18;;:::i;:::-;3742:53;3785:2;3766:13;;-1:-1:-1;;3762:27:1;3758:36;;3742:53;:::i;:::-;3729:66;;3818:2;3811:5;3804:17;3858:7;3853:2;3848;3844;3840:11;3836:20;3833:33;3830:53;;;3879:1;3876;3869:12;3830:53;3934:2;3929;3925;3921:11;3916:2;3909:5;3905:14;3892:45;3978:1;3957:14;;;3953:23;;;3946:34;;;;-1:-1:-1;3961:5:1;3246:764;-1:-1:-1;;;3246:764:1:o;4015:456::-;4092:6;4100;4108;4161:2;4149:9;4140:7;4136:23;4132:32;4129:52;;;4177:1;4174;4167:12;4129:52;4216:9;4203:23;4235:31;4260:5;4235:31;:::i;:::-;4285:5;-1:-1:-1;4342:2:1;4327:18;;4314:32;4355:33;4314:32;4355:33;:::i;:::-;4015:456;;4407:7;;-1:-1:-1;;;4461:2:1;4446:18;;;;4433:32;;4015:456::o;4665:445::-;4892:3;4881:9;4874:22;4855:4;4913:46;4954:3;4943:9;4939:19;4931:6;4913:46;:::i;:::-;5002:14;;4995:22;4990:2;4975:18;;4968:50;-1:-1:-1;5049:2:1;5034:18;;5027:34;;;;5092:2;5077:18;;;5070:34;4905:54;4665:445;-1:-1:-1;4665:445:1:o;5115:247::-;5174:6;5227:2;5215:9;5206:7;5202:23;5198:32;5195:52;;;5243:1;5240;5233:12;5195:52;5282:9;5269:23;5301:31;5326:5;5301:31;:::i;5367:248::-;5435:6;5443;5496:2;5484:9;5475:7;5471:23;5467:32;5464:52;;;5512:1;5509;5502:12;5464:52;-1:-1:-1;;5535:23:1;;;5605:2;5590:18;;;5577:32;;-1:-1:-1;5367:248:1:o;5620:388::-;5688:6;5696;5749:2;5737:9;5728:7;5724:23;5720:32;5717:52;;;5765:1;5762;5755:12;5717:52;5804:9;5791:23;5823:31;5848:5;5823:31;:::i;:::-;5873:5;-1:-1:-1;5930:2:1;5915:18;;5902:32;5943:33;5902:32;5943:33;:::i;:::-;5995:7;5985:17;;;5620:388;;;;;:::o;6013:356::-;6215:2;6197:21;;;6234:18;;;6227:30;6293:34;6288:2;6273:18;;6266:62;6360:2;6345:18;;6013:356::o;6374:127::-;6435:10;6430:3;6426:20;6423:1;6416:31;6466:4;6463:1;6456:15;6490:4;6487:1;6480:15;6506:127;6567:10;6562:3;6558:20;6555:1;6548:31;6598:4;6595:1;6588:15;6622:4;6619:1;6612:15;6638:135;6677:3;6698:17;;;6695:43;;6718:18;;:::i;:::-;-1:-1:-1;6765:1:1;6754:13;;6638:135::o;7474:125::-;7539:9;;;7560:10;;;7557:36;;;7573:18;;:::i;7604:289::-;7735:3;7773:6;7767:13;7789:66;7848:6;7843:3;7836:4;7828:6;7824:17;7789:66;:::i;:::-;7871:16;;;;;7604:289;-1:-1:-1;;7604:289:1:o;7898:380::-;7977:1;7973:12;;;;8020;;;8041:61;;8095:4;8087:6;8083:17;8073:27;;8041:61;8148:2;8140:6;8137:14;8117:18;8114:38;8111:161;;8194:10;8189:3;8185:20;8182:1;8175:31;8229:4;8226:1;8219:15;8257:4;8254:1;8247:15;8409:545;8511:2;8506:3;8503:11;8500:448;;;8547:1;8572:5;8568:2;8561:17;8617:4;8613:2;8603:19;8687:2;8675:10;8671:19;8668:1;8664:27;8658:4;8654:38;8723:4;8711:10;8708:20;8705:47;;;-1:-1:-1;8746:4:1;8705:47;8801:2;8796:3;8792:12;8789:1;8785:20;8779:4;8775:31;8765:41;;8856:82;8874:2;8867:5;8864:13;8856:82;;;8919:17;;;8900:1;8889:13;8856:82;;;8860:3;;;8500:448;8409:545;;;:::o;9130:1352::-;9256:3;9250:10;9283:18;9275:6;9272:30;9269:56;;;9305:18;;:::i;:::-;9334:97;9424:6;9384:38;9416:4;9410:11;9384:38;:::i;:::-;9378:4;9334:97;:::i;:::-;9486:4;;9550:2;9539:14;;9567:1;9562:663;;;;10269:1;10286:6;10283:89;;;-1:-1:-1;10338:19:1;;;10332:26;10283:89;-1:-1:-1;;9087:1:1;9083:11;;;9079:24;9075:29;9065:40;9111:1;9107:11;;;9062:57;10385:81;;9532:944;;9562:663;8356:1;8349:14;;;8393:4;8380:18;;-1:-1:-1;;9598:20:1;;;9716:236;9730:7;9727:1;9724:14;9716:236;;;9819:19;;;9813:26;9798:42;;9911:27;;;;9879:1;9867:14;;;;9746:19;;9716:236;;;9720:3;9980:6;9971:7;9968:19;9965:201;;;10041:19;;;10035:26;-1:-1:-1;;10124:1:1;10120:14;;;10136:3;10116:24;10112:37;10108:42;10093:58;10078:74;;9965:201;-1:-1:-1;;;;;10212:1:1;10196:14;;;10192:22;10179:36;;-1:-1:-1;9130:1352:1:o;10487:291::-;10664:2;10653:9;10646:21;10627:4;10684:45;10725:2;10714:9;10710:18;10702:6;10684:45;:::i;:::-;10676:53;;10765:6;10760:2;10749:9;10745:18;10738:34;10487:291;;;;;:::o;10783:422::-;10872:1;10915:5;10872:1;10929:270;10950:7;10940:8;10937:21;10929:270;;;11009:4;11005:1;11001:6;10997:17;10991:4;10988:27;10985:53;;;11018:18;;:::i;:::-;11068:7;11058:8;11054:22;11051:55;;;11088:16;;;;11051:55;11167:22;;;;11127:15;;;;10929:270;;;10933:3;10783:422;;;;;:::o;11210:806::-;11259:5;11289:8;11279:80;;-1:-1:-1;11330:1:1;11344:5;;11279:80;11378:4;11368:76;;-1:-1:-1;11415:1:1;11429:5;;11368:76;11460:4;11478:1;11473:59;;;;11546:1;11541:130;;;;11453:218;;11473:59;11503:1;11494:10;;11517:5;;;11541:130;11578:3;11568:8;11565:17;11562:43;;;11585:18;;:::i;:::-;-1:-1:-1;;11641:1:1;11627:16;;11656:5;;11453:218;;11755:2;11745:8;11742:16;11736:3;11730:4;11727:13;11723:36;11717:2;11707:8;11704:16;11699:2;11693:4;11690:12;11686:35;11683:77;11680:159;;;-1:-1:-1;11792:19:1;;;11824:5;;11680:159;11871:34;11896:8;11890:4;11871:34;:::i;:::-;11941:6;11937:1;11933:6;11929:19;11920:7;11917:32;11914:58;;;11952:18;;:::i;:::-;11990:20;;11210:806;-1:-1:-1;;;11210:806:1:o;12021:140::-;12079:5;12108:47;12149:4;12139:8;12135:19;12129:4;12108:47;:::i;12166:168::-;12239:9;;;12270;;12287:15;;;12281:22;;12267:37;12257:71;;12308:18;;:::i;15779:128::-;15846:9;;;15867:11;;;15864:37;;;15881:18;;:::i;15912:251::-;15982:6;16035:2;16023:9;16014:7;16010:23;16006:32;16003:52;;;16051:1;16048;16041:12;16003:52;16083:9;16077:16;16102:31;16127:5;16102:31;:::i;16168:980::-;16430:4;16478:3;16467:9;16463:19;16509:6;16498:9;16491:25;16535:2;16573:6;16568:2;16557:9;16553:18;16546:34;16616:3;16611:2;16600:9;16596:18;16589:31;16640:6;16675;16669:13;16706:6;16698;16691:22;16744:3;16733:9;16729:19;16722:26;;16783:2;16775:6;16771:15;16757:29;;16804:1;16814:195;16828:6;16825:1;16822:13;16814:195;;;16893:13;;-1:-1:-1;;;;;16889:39:1;16877:52;;16984:15;;;;16949:12;;;;16925:1;16843:9;16814:195;;;-1:-1:-1;;;;;;;17065:32:1;;;;17060:2;17045:18;;17038:60;-1:-1:-1;;;17129:3:1;17114:19;17107:35;17026:3;16168:980;-1:-1:-1;;;16168:980:1:o;17153:217::-;17193:1;17219;17209:132;;17263:10;17258:3;17254:20;17251:1;17244:31;17298:4;17295:1;17288:15;17326:4;17323:1;17316:15;17209:132;-1:-1:-1;17355:9:1;;17153:217::o

Swarm Source

ipfs://72fe0798906a83a0f24d8ff928b42bc79efce0b06a307d80f6c2de2322a13d8b
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.