ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 WENMOON
Holders
34
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:
WENMOON
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-05-19
*/
/**
$WENMOON - An inquiry to the dev as to when a certain coin's value will skyrocket "to the moon"
https://t.me/WenMoonEntry
https://www.wenmoon.money
https://www.twitter.com/wenmooncoindex
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
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
);
}
contract Ownable is Context {
address internal _owner;
address private _previousOwner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library 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;
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
contract WENMOON is Context, IERC20, Ownable {
using SafeMath for uint256;
string private constant _name = "Wen Moon Coin";
string private constant _symbol = "WENMOON";
uint8 private constant _decimals = 9;
mapping(address => uint256) private _rOwned;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFromFee;
mapping(address => bool) private _isExcludedFromMax;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _tTotal = 1000000000 * 10**9;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
uint256 private _redisFeeOnBuy = 0;
uint256 private _taxFeeOnBuy = 20;
uint256 private _redisFeeOnSell = 0;
uint256 private _taxFeeOnSell = 25;
uint256 private _redisFee = _redisFeeOnSell;
uint256 private _taxFee = _taxFeeOnSell;
uint256 private _previousredisFee = _redisFee;
uint256 private _previoustaxFee = _taxFee;
mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
address payable private _developmentAddress = payable(0x6bCEFA7399245a1976dB71E1964EbEb8d1c166F0);
address payable private _marketingAddress = payable(0x6bCEFA7399245a1976dB71E1964EbEb8d1c166F0);
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = true;
uint256 public _maxTxAmount = _tTotal.mul(100).div(100);
uint256 public _maxWalletSize = _tTotal.mul(2).div(100);
uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);
event MaxTxAmountUpdated(uint256 _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor() {
_rOwned[_msgSender()] = _rTotal;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_developmentAddress] = true;
_isExcludedFromFee[_marketingAddress] = true;
_isExcludedFromMax[owner()] = true;
_isExcludedFromMax[address(this)] = true;
_isExcludedFromMax[_developmentAddress] = true;
_isExcludedFromMax[_marketingAddress] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
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 tokenFromReflection(_rOwned[account]);
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function tokenFromReflection(uint256 rAmount)
private
view
returns (uint256)
{
require(
rAmount <= _rTotal,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function removeAllFee() private {
if (_redisFee == 0 && _taxFee == 0) return;
_previousredisFee = _redisFee;
_previoustaxFee = _taxFee;
_redisFee = 0;
_taxFee = 0;
}
function restoreAllFee() private {
_redisFee = _previousredisFee;
_taxFee = _previoustaxFee;
}
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 _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 greater than zero");
if (from != owner() && to != owner()) {
//Trade start check
if (!tradingOpen) {
require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
}
if (!_isExcludedFromMax[from]){
require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
}
require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
if(to != uniswapV2Pair && !_isExcludedFromMax[to]) {
require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
if(contractTokenBalance >= _maxTxAmount)
{
contractTokenBalance = _maxTxAmount;
}
if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
bool takeFee = true;
//Transfer Tokens
if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
takeFee = false;
} else {
//Set Fee for Buys
if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
_redisFee = _redisFeeOnBuy;
_taxFee = _taxFeeOnBuy;
}
//Set Fee for Sells
if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
_redisFee = _redisFeeOnSell;
_taxFee = _taxFeeOnSell;
}
}
_tokenTransfer(from, to, amount, takeFee);
}
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 sendETHToFee(uint256 amount) private {
_marketingAddress.transfer(amount.mul(4).div(5));
_developmentAddress.transfer(amount.mul(1).div(5));
}
function setTrading(bool _tradingOpen) public onlyOwner {
tradingOpen = _tradingOpen;
}
function manualswap() external {
require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
uint256 contractBalance = balanceOf(address(this));
swapTokensForEth(contractBalance);
}
function manualsend() external {
require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function blockBots(address[] memory bots_) public onlyOwner {
for (uint256 i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function unblockBot(address notbot) public onlyOwner {
bots[notbot] = false;
}
function _tokenTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee
) private {
if (!takeFee) removeAllFee();
_transferStandard(sender, recipient, amount);
if (!takeFee) restoreAllFee();
}
function _transferStandard(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tTeam
) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeTeam(tTeam);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _takeTeam(uint256 tTeam) private {
uint256 currentRate = _getRate();
uint256 rTeam = tTeam.mul(currentRate);
_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
receive() external payable {}
function _getValues(uint256 tAmount)
private
view
returns (
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
)
{
(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
_getTValues(tAmount, _redisFee, _taxFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
_getRValues(tAmount, tFee, tTeam, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
}
function _getTValues(
uint256 tAmount,
uint256 redisFee,
uint256 taxFee
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 tFee = tAmount.mul(redisFee).div(100);
uint256 tTeam = tAmount.mul(taxFee).div(100);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
return (tTransferAmount, tFee, tTeam);
}
function _getRValues(
uint256 tAmount,
uint256 tFee,
uint256 tTeam,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTeam = tTeam.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
_redisFeeOnBuy = redisFeeOnBuy;
_redisFeeOnSell = redisFeeOnSell;
_taxFeeOnBuy = taxFeeOnBuy;
_taxFeeOnSell = taxFeeOnSell;
}
function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
_swapTokensAtAmount = swapTokensAtAmount;
}
function exemptedFromMax() public onlyOwner {
}
function toggleSwap(bool _swapEnabled) public onlyOwner {
swapEnabled = _swapEnabled;
}
function setMaxTxnAmount(uint256 amountPercent) public onlyOwner {
require(amountPercent>0);
_maxTxAmount = (_tTotal * amountPercent ) / 100;
}
function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
require(amountPercent>0);
_maxWalletSize = (_tTotal * amountPercent ) / 100;
}
function removeLimits() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize = _tTotal;
}
function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
for(uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromFee[accounts[i]] = excluded;
}
}
function excludeMultipleAccountsFromMax(address[] calldata accounts, bool excluded) public onlyOwner {
for(uint256 i = 0; i < accounts.length; i++) {
_isExcludedFromMax[accounts[i]] = excluded;
}
}
}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":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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_swapTokensAtAmount","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":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exemptedFromMax","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526200001a670de0b6b3a76400006000196200056b565b620000289060001962000598565b600755600060098190556014600a819055600b8290556019600c819055600d839055600e819055600f9290925560109190915560138054736bcefa7399245a1976db71e1964ebeb8d1c166f06001600160a01b0319918216811790925582541617905560168054600160b01b61ffff60a81b19909116179055620000db6064620000c7670de0b6b3a7640000826200043b602090811b62000d5a17901c565b620004cf60201b62000de01790919060201c565b601755620001076064620000c76002670de0b6b3a76400006200043b60201b62000d5a1790919060201c565b601855620001346103e8620000c76001670de0b6b3a76400006200043b60201b62000d5a1790919060201c565b6019553480156200014457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b158015620001fd57600080fd5b505afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002389190620005b2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028157600080fd5b505afa15801562000296573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bc9190620005b2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200030557600080fd5b505af11580156200031a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003409190620005b2565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530808652838620805483168417905560138054881687528487208054841685179055601480548916885285882080548516861790558754891688526006875285882080548516861790559187528487208054841685179055548716865283862080548316841790555490951684528184208054909516179093559151670de0b6b3a7640000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200066e565b6000826200044c57506000620004c9565b60006200045a8385620005dd565b905082620004698583620005ff565b14620004c65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620004c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200051960201b60201c565b600081836200053d5760405162461bcd60e51b8152600401620004bd919062000616565b5060006200054c8486620005ff565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200057d576200057d62000555565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620005ad57620005ad62000582565b500390565b600060208284031215620005c557600080fd5b81516001600160a01b0381168114620004c657600080fd5b6000816000190483118215151615620005fa57620005fa62000582565b500290565b60008262000611576200061162000555565b500490565b600060208083528351808285015260005b81811015620006455785810183015185820160400152820162000627565b8181111562000658576000604083870101525b50601f01601f1916929092016040019392505050565b612077806200067e6000396000f3fe6080604052600436106101f15760003560e01c806374010ece1161010d57806398a5c315116100a0578063c3c8cd801161006f578063c3c8cd80146105b1578063c492f046146105c6578063dd62ed3e146105e6578063ea1644d51461062c578063f2fde38b1461064c57600080fd5b806398a5c31514610521578063a2a957bb14610541578063a9059cbb14610561578063bfd792841461058157600080fd5b80638da5cb5b116100dc5780638da5cb5b1461049d5780638f70ccf7146104bb5780638f9a55c0146104db57806395d89b41146104f157600080fd5b806374010ece14610425578063751039fc146104455780637d1db4a51461045a5780637f2feddc1461047057600080fd5b80633654c531116101855780636d8aa8f8116101545780636d8aa8f8146103bb5780636fc3eaec146103db57806370a08231146103f0578063715018a61461041057600080fd5b80633654c5311461034657806341c6ee381461035b57806349bd5a5e1461037b5780636b9990531461039b57600080fd5b806318160ddd116101c157806318160ddd146102cf57806323b872dd146102f45780632fd689e314610314578063313ce5671461032a57600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b3146102675780631694505e1461029757600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611bc8565b61066c565b005b34801561022b57600080fd5b5060408051808201909152600d81526c2bb2b71026b7b7b71021b7b4b760991b60208201525b60405161025e9190611c8d565b60405180910390f35b34801561027357600080fd5b50610287610282366004611ce2565b61070b565b604051901515815260200161025e565b3480156102a357600080fd5b506015546102b7906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b3480156102db57600080fd5b50670de0b6b3a76400005b60405190815260200161025e565b34801561030057600080fd5b5061028761030f366004611d0e565b610722565b34801561032057600080fd5b506102e660195481565b34801561033657600080fd5b506040516009815260200161025e565b34801561035257600080fd5b5061021d61078b565b34801561036757600080fd5b5061021d610376366004611d5f565b6107b7565b34801561038757600080fd5b506016546102b7906001600160a01b031681565b3480156103a757600080fd5b5061021d6103b6366004611de3565b610858565b3480156103c757600080fd5b5061021d6103d6366004611e00565b6108a3565b3480156103e757600080fd5b5061021d6108eb565b3480156103fc57600080fd5b506102e661040b366004611de3565b610936565b34801561041c57600080fd5b5061021d610958565b34801561043157600080fd5b5061021d610440366004611e1b565b6109cc565b34801561045157600080fd5b5061021d610a27565b34801561046657600080fd5b506102e660175481565b34801561047c57600080fd5b506102e661048b366004611de3565b60126020526000908152604090205481565b3480156104a957600080fd5b506000546001600160a01b03166102b7565b3480156104c757600080fd5b5061021d6104d6366004611e00565b610a64565b3480156104e757600080fd5b506102e660185481565b3480156104fd57600080fd5b506040805180820190915260078152662ba2a726a7a7a760c91b6020820152610251565b34801561052d57600080fd5b5061021d61053c366004611e1b565b610aac565b34801561054d57600080fd5b5061021d61055c366004611e34565b610adb565b34801561056d57600080fd5b5061028761057c366004611ce2565b610b19565b34801561058d57600080fd5b5061028761059c366004611de3565b60116020526000908152604090205460ff1681565b3480156105bd57600080fd5b5061021d610b26565b3480156105d257600080fd5b5061021d6105e1366004611d5f565b610b7a565b3480156105f257600080fd5b506102e6610601366004611e66565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561063857600080fd5b5061021d610647366004611e1b565b610c15565b34801561065857600080fd5b5061021d610667366004611de3565b610c70565b6000546001600160a01b0316331461069f5760405162461bcd60e51b815260040161069690611e9f565b60405180910390fd5b60005b8151811015610707576001601160008484815181106106c3576106c3611ed4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ff81611f00565b9150506106a2565b5050565b6000610718338484610e22565b5060015b92915050565b600061072f848484610f46565b610781843361077c8560405180606001604052806028815260200161201a602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906114c9565b610e22565b5060019392505050565b6000546001600160a01b031633146107b55760405162461bcd60e51b815260040161069690611e9f565b565b6000546001600160a01b031633146107e15760405162461bcd60e51b815260040161069690611e9f565b60005b8281101561085257816006600086868581811061080357610803611ed4565b90506020020160208101906108189190611de3565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061084a81611f00565b9150506107e4565b50505050565b6000546001600160a01b031633146108825760405162461bcd60e51b815260040161069690611e9f565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108cd5760405162461bcd60e51b815260040161069690611e9f565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061092057506014546001600160a01b0316336001600160a01b0316145b61092957600080fd5b4761093381611503565b50565b6001600160a01b03811660009081526002602052604081205461071c90611598565b6000546001600160a01b031633146109825760405162461bcd60e51b815260040161069690611e9f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109f65760405162461bcd60e51b815260040161069690611e9f565b60008111610a0357600080fd5b6064610a1782670de0b6b3a7640000611f1b565b610a219190611f3a565b60175550565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161069690611e9f565b670de0b6b3a76400006017819055601855565b6000546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161069690611e9f565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610ad65760405162461bcd60e51b815260040161069690611e9f565b601955565b6000546001600160a01b03163314610b055760405162461bcd60e51b815260040161069690611e9f565b600993909355600b91909155600a55600c55565b6000610718338484610f46565b6013546001600160a01b0316336001600160a01b03161480610b5b57506014546001600160a01b0316336001600160a01b0316145b610b6457600080fd5b6000610b6f30610936565b905061093381611615565b6000546001600160a01b03163314610ba45760405162461bcd60e51b815260040161069690611e9f565b60005b82811015610852578160056000868685818110610bc657610bc6611ed4565b9050602002016020810190610bdb9190611de3565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c0d81611f00565b915050610ba7565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161069690611e9f565b60008111610c4c57600080fd5b6064610c6082670de0b6b3a7640000611f1b565b610c6a9190611f3a565b60185550565b6000546001600160a01b03163314610c9a5760405162461bcd60e51b815260040161069690611e9f565b6001600160a01b038116610cff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610696565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610d695750600061071c565b6000610d758385611f1b565b905082610d828583611f3a565b14610dd95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610696565b9392505050565b6000610dd983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061179e565b6001600160a01b038316610e845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610696565b6001600160a01b038216610ee55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610696565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610faa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610696565b6001600160a01b03821661100c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610696565b6000811161106e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610696565b6000546001600160a01b0384811691161480159061109a57506000546001600160a01b03838116911614155b156113c257601654600160a01b900460ff16611133576000546001600160a01b038481169116146111335760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610696565b6001600160a01b03831660009081526006602052604090205460ff166111a5576017548111156111a55760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610696565b6001600160a01b03831660009081526011602052604090205460ff161580156111e757506001600160a01b03821660009081526011602052604090205460ff16155b61123f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610696565b6016546001600160a01b0383811691161480159061127657506001600160a01b03821660009081526006602052604090205460ff16155b156112eb576018548161128884610936565b6112929190611f5c565b106112eb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610696565b60006112f630610936565b60195460175491925082101590821061130f5760175491505b8080156113265750601654600160a81b900460ff16155b801561134057506016546001600160a01b03868116911614155b80156113555750601654600160b01b900460ff165b801561137a57506001600160a01b03851660009081526005602052604090205460ff16155b801561139f57506001600160a01b03841660009081526005602052604090205460ff16155b156113bf576113ad82611615565b4780156113bd576113bd47611503565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061140457506001600160a01b03831660009081526005602052604090205460ff165b8061143657506016546001600160a01b0385811691161480159061143657506016546001600160a01b03848116911614155b15611443575060006114bd565b6016546001600160a01b03858116911614801561146e57506015546001600160a01b03848116911614155b1561148057600954600d55600a54600e555b6016546001600160a01b0384811691161480156114ab57506015546001600160a01b03858116911614155b156114bd57600b54600d55600c54600e555b610852848484846117cc565b600081848411156114ed5760405162461bcd60e51b81526004016106969190611c8d565b5060006114fa8486611f74565b95945050505050565b6014546001600160a01b03166108fc6115286005611522856004610d5a565b90610de0565b6040518115909202916000818181858888f19350505050158015611550573d6000803e3d6000fd5b506013546001600160a01b03166108fc6115706005611522856001610d5a565b6040518115909202916000818181858888f19350505050158015610707573d6000803e3d6000fd5b60006007548211156115ff5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610696565b60006116096117fa565b9050610dd98382610de0565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061165d5761165d611ed4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116b157600080fd5b505afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190611f8b565b816001815181106116fc576116fc611ed4565b6001600160a01b0392831660209182029290920101526015546117229130911684610e22565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061175b908590600090869030904290600401611fa8565b600060405180830381600087803b15801561177557600080fd5b505af1158015611789573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600081836117bf5760405162461bcd60e51b81526004016106969190611c8d565b5060006114fa8486611f3a565b806117d9576117d961181d565b6117e484848461184b565b8061085257610852600f54600d55601054600e55565b6000806000611807611942565b90925090506118168282610de0565b9250505090565b600d5415801561182d5750600e54155b1561183457565b600d8054600f55600e805460105560009182905555565b60008060008060008061185d87611982565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061188f90876119df565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118be9086611a21565b6001600160a01b0389166000908152600260205260409020556118e081611a80565b6118ea8483611aca565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161192f91815260200190565b60405180910390a3505050505050505050565b6007546000908190670de0b6b3a764000061195d8282610de0565b82101561197957505060075492670de0b6b3a764000092509050565b90939092509050565b600080600080600080600080600061199f8a600d54600e54611aee565b92509250925060006119af6117fa565b905060008060006119c28e878787611b3d565b919e509c509a509598509396509194505050505091939550919395565b6000610dd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114c9565b600080611a2e8385611f5c565b905083811015610dd95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610696565b6000611a8a6117fa565b90506000611a988383610d5a565b30600090815260026020526040902054909150611ab59082611a21565b30600090815260026020526040902055505050565b600754611ad790836119df565b600755600854611ae79082611a21565b6008555050565b6000808080611b0260646115228989610d5a565b90506000611b1560646115228a89610d5a565b90506000611b2d82611b278b866119df565b906119df565b9992985090965090945050505050565b6000808080611b4c8886610d5a565b90506000611b5a8887610d5a565b90506000611b688888610d5a565b90506000611b7a82611b2786866119df565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461093357600080fd5b8035611bc381611ba3565b919050565b60006020808385031215611bdb57600080fd5b823567ffffffffffffffff80821115611bf357600080fd5b818501915085601f830112611c0757600080fd5b813581811115611c1957611c19611b8d565b8060051b604051601f19603f83011681018181108582111715611c3e57611c3e611b8d565b604052918252848201925083810185019188831115611c5c57600080fd5b938501935b82851015611c8157611c7285611bb8565b84529385019392850192611c61565b98975050505050505050565b600060208083528351808285015260005b81811015611cba57858101830151858201604001528201611c9e565b81811115611ccc576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611cf557600080fd5b8235611d0081611ba3565b946020939093013593505050565b600080600060608486031215611d2357600080fd5b8335611d2e81611ba3565b92506020840135611d3e81611ba3565b929592945050506040919091013590565b80358015158114611bc357600080fd5b600080600060408486031215611d7457600080fd5b833567ffffffffffffffff80821115611d8c57600080fd5b818601915086601f830112611da057600080fd5b813581811115611daf57600080fd5b8760208260051b8501011115611dc457600080fd5b602092830195509350611dda9186019050611d4f565b90509250925092565b600060208284031215611df557600080fd5b8135610dd981611ba3565b600060208284031215611e1257600080fd5b610dd982611d4f565b600060208284031215611e2d57600080fd5b5035919050565b60008060008060808587031215611e4a57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611e7957600080fd5b8235611e8481611ba3565b91506020830135611e9481611ba3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f1457611f14611eea565b5060010190565b6000816000190483118215151615611f3557611f35611eea565b500290565b600082611f5757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611f6f57611f6f611eea565b500190565b600082821015611f8657611f86611eea565b500390565b600060208284031215611f9d57600080fd5b8151610dd981611ba3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ff85784516001600160a01b031683529383019391830191600101611fd3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220469dc18fd8e1f3d4d5b562abc00091a7fd4f510cb63a0033562b616eede0406964736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101f15760003560e01c806374010ece1161010d57806398a5c315116100a0578063c3c8cd801161006f578063c3c8cd80146105b1578063c492f046146105c6578063dd62ed3e146105e6578063ea1644d51461062c578063f2fde38b1461064c57600080fd5b806398a5c31514610521578063a2a957bb14610541578063a9059cbb14610561578063bfd792841461058157600080fd5b80638da5cb5b116100dc5780638da5cb5b1461049d5780638f70ccf7146104bb5780638f9a55c0146104db57806395d89b41146104f157600080fd5b806374010ece14610425578063751039fc146104455780637d1db4a51461045a5780637f2feddc1461047057600080fd5b80633654c531116101855780636d8aa8f8116101545780636d8aa8f8146103bb5780636fc3eaec146103db57806370a08231146103f0578063715018a61461041057600080fd5b80633654c5311461034657806341c6ee381461035b57806349bd5a5e1461037b5780636b9990531461039b57600080fd5b806318160ddd116101c157806318160ddd146102cf57806323b872dd146102f45780632fd689e314610314578063313ce5671461032a57600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b3146102675780631694505e1461029757600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611bc8565b61066c565b005b34801561022b57600080fd5b5060408051808201909152600d81526c2bb2b71026b7b7b71021b7b4b760991b60208201525b60405161025e9190611c8d565b60405180910390f35b34801561027357600080fd5b50610287610282366004611ce2565b61070b565b604051901515815260200161025e565b3480156102a357600080fd5b506015546102b7906001600160a01b031681565b6040516001600160a01b03909116815260200161025e565b3480156102db57600080fd5b50670de0b6b3a76400005b60405190815260200161025e565b34801561030057600080fd5b5061028761030f366004611d0e565b610722565b34801561032057600080fd5b506102e660195481565b34801561033657600080fd5b506040516009815260200161025e565b34801561035257600080fd5b5061021d61078b565b34801561036757600080fd5b5061021d610376366004611d5f565b6107b7565b34801561038757600080fd5b506016546102b7906001600160a01b031681565b3480156103a757600080fd5b5061021d6103b6366004611de3565b610858565b3480156103c757600080fd5b5061021d6103d6366004611e00565b6108a3565b3480156103e757600080fd5b5061021d6108eb565b3480156103fc57600080fd5b506102e661040b366004611de3565b610936565b34801561041c57600080fd5b5061021d610958565b34801561043157600080fd5b5061021d610440366004611e1b565b6109cc565b34801561045157600080fd5b5061021d610a27565b34801561046657600080fd5b506102e660175481565b34801561047c57600080fd5b506102e661048b366004611de3565b60126020526000908152604090205481565b3480156104a957600080fd5b506000546001600160a01b03166102b7565b3480156104c757600080fd5b5061021d6104d6366004611e00565b610a64565b3480156104e757600080fd5b506102e660185481565b3480156104fd57600080fd5b506040805180820190915260078152662ba2a726a7a7a760c91b6020820152610251565b34801561052d57600080fd5b5061021d61053c366004611e1b565b610aac565b34801561054d57600080fd5b5061021d61055c366004611e34565b610adb565b34801561056d57600080fd5b5061028761057c366004611ce2565b610b19565b34801561058d57600080fd5b5061028761059c366004611de3565b60116020526000908152604090205460ff1681565b3480156105bd57600080fd5b5061021d610b26565b3480156105d257600080fd5b5061021d6105e1366004611d5f565b610b7a565b3480156105f257600080fd5b506102e6610601366004611e66565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561063857600080fd5b5061021d610647366004611e1b565b610c15565b34801561065857600080fd5b5061021d610667366004611de3565b610c70565b6000546001600160a01b0316331461069f5760405162461bcd60e51b815260040161069690611e9f565b60405180910390fd5b60005b8151811015610707576001601160008484815181106106c3576106c3611ed4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ff81611f00565b9150506106a2565b5050565b6000610718338484610e22565b5060015b92915050565b600061072f848484610f46565b610781843361077c8560405180606001604052806028815260200161201a602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906114c9565b610e22565b5060019392505050565b6000546001600160a01b031633146107b55760405162461bcd60e51b815260040161069690611e9f565b565b6000546001600160a01b031633146107e15760405162461bcd60e51b815260040161069690611e9f565b60005b8281101561085257816006600086868581811061080357610803611ed4565b90506020020160208101906108189190611de3565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061084a81611f00565b9150506107e4565b50505050565b6000546001600160a01b031633146108825760405162461bcd60e51b815260040161069690611e9f565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108cd5760405162461bcd60e51b815260040161069690611e9f565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061092057506014546001600160a01b0316336001600160a01b0316145b61092957600080fd5b4761093381611503565b50565b6001600160a01b03811660009081526002602052604081205461071c90611598565b6000546001600160a01b031633146109825760405162461bcd60e51b815260040161069690611e9f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109f65760405162461bcd60e51b815260040161069690611e9f565b60008111610a0357600080fd5b6064610a1782670de0b6b3a7640000611f1b565b610a219190611f3a565b60175550565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161069690611e9f565b670de0b6b3a76400006017819055601855565b6000546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161069690611e9f565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610ad65760405162461bcd60e51b815260040161069690611e9f565b601955565b6000546001600160a01b03163314610b055760405162461bcd60e51b815260040161069690611e9f565b600993909355600b91909155600a55600c55565b6000610718338484610f46565b6013546001600160a01b0316336001600160a01b03161480610b5b57506014546001600160a01b0316336001600160a01b0316145b610b6457600080fd5b6000610b6f30610936565b905061093381611615565b6000546001600160a01b03163314610ba45760405162461bcd60e51b815260040161069690611e9f565b60005b82811015610852578160056000868685818110610bc657610bc6611ed4565b9050602002016020810190610bdb9190611de3565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c0d81611f00565b915050610ba7565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161069690611e9f565b60008111610c4c57600080fd5b6064610c6082670de0b6b3a7640000611f1b565b610c6a9190611f3a565b60185550565b6000546001600160a01b03163314610c9a5760405162461bcd60e51b815260040161069690611e9f565b6001600160a01b038116610cff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610696565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610d695750600061071c565b6000610d758385611f1b565b905082610d828583611f3a565b14610dd95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610696565b9392505050565b6000610dd983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061179e565b6001600160a01b038316610e845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610696565b6001600160a01b038216610ee55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610696565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610faa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610696565b6001600160a01b03821661100c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610696565b6000811161106e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610696565b6000546001600160a01b0384811691161480159061109a57506000546001600160a01b03838116911614155b156113c257601654600160a01b900460ff16611133576000546001600160a01b038481169116146111335760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610696565b6001600160a01b03831660009081526006602052604090205460ff166111a5576017548111156111a55760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610696565b6001600160a01b03831660009081526011602052604090205460ff161580156111e757506001600160a01b03821660009081526011602052604090205460ff16155b61123f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610696565b6016546001600160a01b0383811691161480159061127657506001600160a01b03821660009081526006602052604090205460ff16155b156112eb576018548161128884610936565b6112929190611f5c565b106112eb5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610696565b60006112f630610936565b60195460175491925082101590821061130f5760175491505b8080156113265750601654600160a81b900460ff16155b801561134057506016546001600160a01b03868116911614155b80156113555750601654600160b01b900460ff165b801561137a57506001600160a01b03851660009081526005602052604090205460ff16155b801561139f57506001600160a01b03841660009081526005602052604090205460ff16155b156113bf576113ad82611615565b4780156113bd576113bd47611503565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061140457506001600160a01b03831660009081526005602052604090205460ff165b8061143657506016546001600160a01b0385811691161480159061143657506016546001600160a01b03848116911614155b15611443575060006114bd565b6016546001600160a01b03858116911614801561146e57506015546001600160a01b03848116911614155b1561148057600954600d55600a54600e555b6016546001600160a01b0384811691161480156114ab57506015546001600160a01b03858116911614155b156114bd57600b54600d55600c54600e555b610852848484846117cc565b600081848411156114ed5760405162461bcd60e51b81526004016106969190611c8d565b5060006114fa8486611f74565b95945050505050565b6014546001600160a01b03166108fc6115286005611522856004610d5a565b90610de0565b6040518115909202916000818181858888f19350505050158015611550573d6000803e3d6000fd5b506013546001600160a01b03166108fc6115706005611522856001610d5a565b6040518115909202916000818181858888f19350505050158015610707573d6000803e3d6000fd5b60006007548211156115ff5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610696565b60006116096117fa565b9050610dd98382610de0565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061165d5761165d611ed4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116b157600080fd5b505afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190611f8b565b816001815181106116fc576116fc611ed4565b6001600160a01b0392831660209182029290920101526015546117229130911684610e22565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061175b908590600090869030904290600401611fa8565b600060405180830381600087803b15801561177557600080fd5b505af1158015611789573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b600081836117bf5760405162461bcd60e51b81526004016106969190611c8d565b5060006114fa8486611f3a565b806117d9576117d961181d565b6117e484848461184b565b8061085257610852600f54600d55601054600e55565b6000806000611807611942565b90925090506118168282610de0565b9250505090565b600d5415801561182d5750600e54155b1561183457565b600d8054600f55600e805460105560009182905555565b60008060008060008061185d87611982565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061188f90876119df565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118be9086611a21565b6001600160a01b0389166000908152600260205260409020556118e081611a80565b6118ea8483611aca565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161192f91815260200190565b60405180910390a3505050505050505050565b6007546000908190670de0b6b3a764000061195d8282610de0565b82101561197957505060075492670de0b6b3a764000092509050565b90939092509050565b600080600080600080600080600061199f8a600d54600e54611aee565b92509250925060006119af6117fa565b905060008060006119c28e878787611b3d565b919e509c509a509598509396509194505050505091939550919395565b6000610dd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114c9565b600080611a2e8385611f5c565b905083811015610dd95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610696565b6000611a8a6117fa565b90506000611a988383610d5a565b30600090815260026020526040902054909150611ab59082611a21565b30600090815260026020526040902055505050565b600754611ad790836119df565b600755600854611ae79082611a21565b6008555050565b6000808080611b0260646115228989610d5a565b90506000611b1560646115228a89610d5a565b90506000611b2d82611b278b866119df565b906119df565b9992985090965090945050505050565b6000808080611b4c8886610d5a565b90506000611b5a8887610d5a565b90506000611b688888610d5a565b90506000611b7a82611b2786866119df565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461093357600080fd5b8035611bc381611ba3565b919050565b60006020808385031215611bdb57600080fd5b823567ffffffffffffffff80821115611bf357600080fd5b818501915085601f830112611c0757600080fd5b813581811115611c1957611c19611b8d565b8060051b604051601f19603f83011681018181108582111715611c3e57611c3e611b8d565b604052918252848201925083810185019188831115611c5c57600080fd5b938501935b82851015611c8157611c7285611bb8565b84529385019392850192611c61565b98975050505050505050565b600060208083528351808285015260005b81811015611cba57858101830151858201604001528201611c9e565b81811115611ccc576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611cf557600080fd5b8235611d0081611ba3565b946020939093013593505050565b600080600060608486031215611d2357600080fd5b8335611d2e81611ba3565b92506020840135611d3e81611ba3565b929592945050506040919091013590565b80358015158114611bc357600080fd5b600080600060408486031215611d7457600080fd5b833567ffffffffffffffff80821115611d8c57600080fd5b818601915086601f830112611da057600080fd5b813581811115611daf57600080fd5b8760208260051b8501011115611dc457600080fd5b602092830195509350611dda9186019050611d4f565b90509250925092565b600060208284031215611df557600080fd5b8135610dd981611ba3565b600060208284031215611e1257600080fd5b610dd982611d4f565b600060208284031215611e2d57600080fd5b5035919050565b60008060008060808587031215611e4a57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611e7957600080fd5b8235611e8481611ba3565b91506020830135611e9481611ba3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f1457611f14611eea565b5060010190565b6000816000190483118215151615611f3557611f35611eea565b500290565b600082611f5757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611f6f57611f6f611eea565b500190565b600082821015611f8657611f86611eea565b500390565b600060208284031215611f9d57600080fd5b8151610dd981611ba3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ff85784516001600160a01b031683529383019391830191600101611fd3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220469dc18fd8e1f3d4d5b562abc00091a7fd4f510cb63a0033562b616eede0406964736f6c63430008090033
Deployed Bytecode Sourcemap
4316:14449:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13498:169;;;;;;;;;;-1:-1:-1;13498:169:0;;;;;:::i;:::-;;:::i;:::-;;7112:83;;;;;;;;;;-1:-1:-1;7182:5:0;;;;;;;;;;;;-1:-1:-1;;;7182:5:0;;;;7112:83;;;;;;;:::i;:::-;;;;;;;;8044:193;;;;;;;;;;-1:-1:-1;8044:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;8044:193:0;2469:187:1;5719:41:0;;;;;;;;;;-1:-1:-1;5719:41:0;;;;-1:-1:-1;;;;;5719:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5719:41:0;2661:229:1;7392:95:0;;;;;;;;;;-1:-1:-1;4931:18:0;7392:95;;;3041:25:1;;;3029:2;3014:18;7392:95:0;2895:177:1;8246:446:0;;;;;;;;;;-1:-1:-1;8246:446:0;;;;;:::i;:::-;;:::i;6036:61::-;;;;;;;;;;;;;;;;7300:83;;;;;;;;;;-1:-1:-1;7300:83:0;;4546:1;3680:36:1;;3668:2;3653:18;7300:83:0;3538:184:1;17634:54:0;;;;;;;;;;;;;:::i;18527:233::-;;;;;;;;;;-1:-1:-1;18527:233:0;;;;;:::i;:::-;;:::i;5767:28::-;;;;;;;;;;-1:-1:-1;5767:28:0;;;;-1:-1:-1;;;;;5767:28:0;;;13676:92;;;;;;;;;;-1:-1:-1;13676:92:0;;;;;:::i;:::-;;:::i;17697:101::-;;;;;;;;;;-1:-1:-1;17697:101:0;;;;;:::i;:::-;;:::i;13254:235::-;;;;;;;;;;;;;:::i;7496:138::-;;;;;;;;;;-1:-1:-1;7496:138:0;;;;;:::i;:::-;;:::i;1790:148::-;;;;;;;;;;;;;:::i;17807:166::-;;;;;;;;;;-1:-1:-1;17807:166:0;;;;;:::i;:::-;;:::i;18158:118::-;;;;;;;;;;;;;:::i;5911:55::-;;;;;;;;;;;;;;;;5458:43;;;;;;;;;;-1:-1:-1;5458:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1574:79;;;;;;;;;;-1:-1:-1;1612:7:0;1639:6;-1:-1:-1;;;;;1639:6:0;1574:79;;12899:101;;;;;;;;;;-1:-1:-1;12899:101:0;;;;;:::i;:::-;;:::i;5973:55::-;;;;;;;;;;;;;;;;7204:87;;;;;;;;;;-1:-1:-1;7276:7:0;;;;;;;;;;;;-1:-1:-1;;;7276:7:0;;;;7204:87;;17487:139;;;;;;;;;;-1:-1:-1;17487:139:0;;;;;:::i;:::-;;:::i;17185:293::-;;;;;;;;;;-1:-1:-1;17185:293:0;;;;;:::i;:::-;;:::i;7643:199::-;;;;;;;;;;-1:-1:-1;7643:199:0;;;;;:::i;:::-;;:::i;5420:36::-;;;;;;;;;;-1:-1:-1;5420:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13009:236;;;;;;;;;;;;;:::i;18285:234::-;;;;;;;;;;-1:-1:-1;18285:234:0;;;;;:::i;:::-;;:::i;7851:184::-;;;;;;;;;;-1:-1:-1;7851:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8000:18:0;;;7968:7;8000:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7851:184;17981:169;;;;;;;;;;-1:-1:-1;17981:169:0;;;;;:::i;:::-;;:::i;1947:244::-;;;;;;;;;;-1:-1:-1;1947:244:0;;;;;:::i;:::-;;:::i;13498:169::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;;;;;;;;;13574:9:::1;13569:91;13593:5;:12;13589:1;:16;13569:91;;;13644:4;13627;:14;13632:5;13638:1;13632:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13627:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13627:14:0;:21;;-1:-1:-1;;13627:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13607:3;::::1;::::0;::::1;:::i;:::-;;;;13569:91;;;;13498:169:::0;:::o;8044:193::-;8146:4;8168:39;402:10;8191:7;8200:6;8168:8;:39::i;:::-;-1:-1:-1;8225:4:0;8044:193;;;;;:::o;8246:446::-;8378:4;8395:36;8405:6;8413:9;8424:6;8395:9;:36::i;:::-;8442:220;8465:6;402:10;8513:138;8569:6;8513:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8513:19:0;;;;;;:11;:19;;;;;;;;402:10;8513:33;;;;;;;;;;:37;:138::i;:::-;8442:8;:220::i;:::-;-1:-1:-1;8680:4:0;8246:446;;;;;:::o;17634:54::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;17634:54::o;18527:233::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;18643:9:::1;18639:114;18658:19:::0;;::::1;18639:114;;;18733:8;18699:18;:31;18718:8;;18727:1;18718:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18699:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18699:31:0;:42;;-1:-1:-1;;18699:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18679:3;::::1;::::0;::::1;:::i;:::-;;;;18639:114;;;;18527:233:::0;;;:::o;13676:92::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13740:12:0::1;13755:5;13740:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13740:20:0::1;::::0;;13676:92::o;17697:101::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;17764:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17764:26:0::1;-1:-1:-1::0;;;;17764:26:0;;::::1;::::0;;;::::1;::::0;;17697:101::o;13254:235::-;13320:19;;-1:-1:-1;;;;;13320:19:0;402:10;-1:-1:-1;;;;;13304:35:0;;:72;;;-1:-1:-1;13359:17:0;;-1:-1:-1;;;;;13359:17:0;402:10;-1:-1:-1;;;;;13343:33:0;;13304:72;13296:81;;;;;;13417:21;13449:32;13417:21;13449:12;:32::i;:::-;13285:204;13254:235::o;7496:138::-;-1:-1:-1;;;;;7609:16:0;;7562:7;7609:16;;;:7;:16;;;;;;7589:37;;:19;:37::i;1790:148::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;1897:1:::1;1881:6:::0;;1860:40:::1;::::0;-1:-1:-1;;;;;1881:6:0;;::::1;::::0;1860:40:::1;::::0;1897:1;;1860:40:::1;1928:1;1911:19:::0;;-1:-1:-1;;;;;;1911:19:0::1;::::0;;1790:148::o;17807:166::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;17905:1:::1;17891:13;:15;17883:24;;;::::0;::::1;;17962:3;17934:23;17944:13:::0;4931:18:::1;17934:23;:::i;:::-;17933:32;;;;:::i;:::-;17918:12;:47:::0;-1:-1:-1;17807:166:0:o;18158:118::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;4931:18:::1;18211:12;:22:::0;;;18244:14:::1;:24:::0;18158:118::o;12899:101::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;12966:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12966:26:0::1;-1:-1:-1::0;;;;12966:26:0;;::::1;::::0;;;::::1;::::0;;12899:101::o;17487:139::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;17578:19:::1;:40:::0;17487:139::o;17185:293::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;17319:14:::1;:30:::0;;;;17360:15:::1;:32:::0;;;;17403:12:::1;:26:::0;17440:13:::1;:28:::0;17185:293::o;7643:199::-;7748:4;7770:42;402:10;7794:9;7805:6;7770:9;:42::i;13009:236::-;13075:19;;-1:-1:-1;;;;;13075:19:0;402:10;-1:-1:-1;;;;;13059:35:0;;:72;;;-1:-1:-1;13114:17:0;;-1:-1:-1;;;;;13114:17:0;402:10;-1:-1:-1;;;;;13098:33:0;;13059:72;13051:81;;;;;;13143:23;13169:24;13187:4;13169:9;:24::i;:::-;13143:50;;13204:33;13221:15;13204:16;:33::i;18285:234::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;18402:9:::1;18398:114;18417:19:::0;;::::1;18398:114;;;18492:8;18458:18;:31;18477:8;;18486:1;18477:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18458:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18458:31:0;:42;;-1:-1:-1;;18458:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18438:3;::::1;::::0;::::1;:::i;:::-;;;;18398:114;;17981:169:::0;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;18080:1:::1;18066:13;:15;18058:24;;;::::0;::::1;;18139:3;18111:23;18121:13:::0;4931:18:::1;18111:23;:::i;:::-;18110:32;;;;:::i;:::-;18093:14;:49:::0;-1:-1:-1;17981:169:0:o;1947:244::-;1702:6;;-1:-1:-1;;;;;1702:6:0;402:10;1702:22;1694:67;;;;-1:-1:-1;;;1694:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2036:22:0;::::1;2028:73;;;::::0;-1:-1:-1;;;2028:73:0;;7561:2:1;2028:73:0::1;::::0;::::1;7543:21:1::0;7600:2;7580:18;;;7573:30;7639:34;7619:18;;;7612:62;-1:-1:-1;;;7690:18:1;;;7683:36;7736:19;;2028:73:0::1;7359:402:1::0;2028:73:0::1;2138:6;::::0;;2117:38:::1;::::0;-1:-1:-1;;;;;2117:38:0;;::::1;::::0;2138:6;::::1;::::0;2117:38:::1;::::0;::::1;2166:6;:17:::0;;-1:-1:-1;;;;;;2166:17:0::1;-1:-1:-1::0;;;;;2166:17:0;;;::::1;::::0;;;::::1;::::0;;1947:244::o;2791:246::-;2849:7;2873:6;2869:47;;-1:-1:-1;2903:1:0;2896:8;;2869:47;2926:9;2938:5;2942:1;2938;:5;:::i;:::-;2926:17;-1:-1:-1;2971:1:0;2962:5;2966:1;2926:17;2962:5;:::i;:::-;:10;2954:56;;;;-1:-1:-1;;;2954:56:0;;7968:2:1;2954:56:0;;;7950:21:1;8007:2;7987:18;;;7980:30;8046:34;8026:18;;;8019:62;-1:-1:-1;;;8097:18:1;;;8090:31;8138:19;;2954:56:0;7766:397:1;2954:56:0;3028:1;2791:246;-1:-1:-1;;;2791:246:0:o;3046:132::-;3104:7;3131:39;3135:1;3138;3131:39;;;;;;;;;;;;;;;;;:3;:39::i;9389:369::-;-1:-1:-1;;;;;9516:19:0;;9508:68;;;;-1:-1:-1;;;9508:68:0;;8370:2:1;9508:68:0;;;8352:21:1;8409:2;8389:18;;;8382:30;8448:34;8428:18;;;8421:62;-1:-1:-1;;;8499:18:1;;;8492:34;8543:19;;9508:68:0;8168:400:1;9508:68:0;-1:-1:-1;;;;;9595:21:0;;9587:68;;;;-1:-1:-1;;;9587:68:0;;8775:2:1;9587:68:0;;;8757:21:1;8814:2;8794:18;;;8787:30;8853:34;8833:18;;;8826:62;-1:-1:-1;;;8904:18:1;;;8897:32;8946:19;;9587:68:0;8573:398:1;9587:68:0;-1:-1:-1;;;;;9666:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9718:32;;3041:25:1;;;9718:32:0;;3014:18:1;9718:32:0;;;;;;;9389:369;;;:::o;9767:2448::-;-1:-1:-1;;;;;9889:18:0;;9881:68;;;;-1:-1:-1;;;9881:68:0;;9178:2:1;9881:68:0;;;9160:21:1;9217:2;9197:18;;;9190:30;9256:34;9236:18;;;9229:62;-1:-1:-1;;;9307:18:1;;;9300:35;9352:19;;9881:68:0;8976:401:1;9881:68:0;-1:-1:-1;;;;;9968:16:0;;9960:64;;;;-1:-1:-1;;;9960:64:0;;9584:2:1;9960:64:0;;;9566:21:1;9623:2;9603:18;;;9596:30;9662:34;9642:18;;;9635:62;-1:-1:-1;;;9713:18:1;;;9706:33;9756:19;;9960:64:0;9382:399:1;9960:64:0;10052:1;10043:6;:10;10035:64;;;;-1:-1:-1;;;10035:64:0;;9988:2:1;10035:64:0;;;9970:21:1;10027:2;10007:18;;;10000:30;10066:34;10046:18;;;10039:62;-1:-1:-1;;;10117:18:1;;;10110:39;10166:19;;10035:64:0;9786:405:1;10035:64:0;1612:7;1639:6;-1:-1:-1;;;;;10117:15:0;;;1639:6;;10117:15;;;;:32;;-1:-1:-1;1612:7:0;1639:6;-1:-1:-1;;;;;10136:13:0;;;1639:6;;10136:13;;10117:32;10113:1369;;;10207:11;;-1:-1:-1;;;10207:11:0;;;;10202:144;;1612:7;1639:6;-1:-1:-1;;;;;10247:15:0;;;1639:6;;10247:15;10239:91;;;;-1:-1:-1;;;10239:91:0;;10398:2:1;10239:91:0;;;10380:21:1;10437:2;10417:18;;;10410:30;10476:34;10456:18;;;10449:62;10547:33;10527:18;;;10520:61;10598:19;;10239:91:0;10196:427:1;10239:91:0;-1:-1:-1;;;;;10367:24:0;;;;;;:18;:24;;;;;;;;10362:128;;10429:12;;10419:6;:22;;10411:63;;;;-1:-1:-1;;;10411:63:0;;10830:2:1;10411:63:0;;;10812:21:1;10869:2;10849:18;;;10842:30;10908;10888:18;;;10881:58;10956:18;;10411:63:0;10628:352:1;10411:63:0;-1:-1:-1;;;;;10527:10:0;;;;;;:4;:10;;;;;;;;10526:11;:24;;;;-1:-1:-1;;;;;;10542:8:0;;;;;;:4;:8;;;;;;;;10541:9;10526:24;10518:72;;;;-1:-1:-1;;;10518:72:0;;11187:2:1;10518:72:0;;;11169:21:1;11226:2;11206:18;;;11199:30;11265:34;11245:18;;;11238:62;-1:-1:-1;;;11316:18:1;;;11309:33;11359:19;;10518:72:0;10985:399:1;10518:72:0;10617:13;;-1:-1:-1;;;;;10611:19:0;;;10617:13;;10611:19;;;;:46;;-1:-1:-1;;;;;;10635:22:0;;;;;;:18;:22;;;;;;;;10634:23;10611:46;10608:173;;;10711:14;;10702:6;10686:13;10696:2;10686:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10678:87;;;;-1:-1:-1;;;10678:87:0;;11724:2:1;10678:87:0;;;11706:21:1;11763:2;11743:18;;;11736:30;11802:34;11782:18;;;11775:62;-1:-1:-1;;;11853:18:1;;;11846:33;11896:19;;10678:87:0;11522:399:1;10678:87:0;10798:28;10829:24;10847:4;10829:9;:24::i;:::-;10907:19;;10971:12;;10798:55;;-1:-1:-1;10883:43:0;;;;10947:36;;10944:124;;11040:12;;11017:35;;10944:124;11089:7;:18;;;;-1:-1:-1;11101:6:0;;-1:-1:-1;;;11101:6:0;;;;11100:7;11089:18;:43;;;;-1:-1:-1;11119:13:0;;-1:-1:-1;;;;;11111:21:0;;;11119:13;;11111:21;;11089:43;:58;;;;-1:-1:-1;11136:11:0;;-1:-1:-1;;;11136:11:0;;;;11089:58;:87;;;;-1:-1:-1;;;;;;11152:24:0;;;;;;:18;:24;;;;;;;;11151:25;11089:87;:114;;;;-1:-1:-1;;;;;;11181:22:0;;;;;;:18;:22;;;;;;;;11180:23;11089:114;11085:386;;;11224:38;11241:20;11224:16;:38::i;:::-;11310:21;11354:22;;11350:106;;11401:35;11414:21;11401:12;:35::i;:::-;11205:266;11085:386;10151:1331;;10113:1369;-1:-1:-1;;;;;11561:24:0;;11496:12;11561:24;;;:18;:24;;;;;;11511:4;;11561:24;;;:50;;-1:-1:-1;;;;;;11589:22:0;;;;;;:18;:22;;;;;;;;11561:50;11560:102;;;-1:-1:-1;11625:13:0;;-1:-1:-1;;;;;11617:21:0;;;11625:13;;11617:21;;;;:44;;-1:-1:-1;11648:13:0;;-1:-1:-1;;;;;11642:19:0;;;11648:13;;11642:19;;11617:44;11556:597;;;-1:-1:-1;11689:5:0;11556:597;;;11773:13;;-1:-1:-1;;;;;11765:21:0;;;11773:13;;11765:21;:55;;;;-1:-1:-1;11804:15:0;;-1:-1:-1;;;;;11790:30:0;;;11804:15;;11790:30;;11765:55;11762:162;;;11853:14;;11841:9;:26;11896:12;;11886:7;:22;11762:162;11984:13;;-1:-1:-1;;;;;11978:19:0;;;11984:13;;11978:19;:55;;;;-1:-1:-1;12017:15:0;;-1:-1:-1;;;;;12001:32:0;;;12017:15;;12001:32;;11978:55;11974:165;;;12066:15;;12054:9;:27;12110:13;;12100:7;:23;11974:165;12166:41;12181:4;12187:2;12191:6;12199:7;12166:14;:41::i;2558:224::-;2678:7;2714:12;2706:6;;;;2698:29;;;;-1:-1:-1;;;2698:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2738:9:0;2750:5;2754:1;2750;:5;:::i;:::-;2738:17;2558:224;-1:-1:-1;;;;;2558:224:0:o;12716:174::-;12773:17;;-1:-1:-1;;;;;12773:17:0;:48;12800:20;12818:1;12800:13;:6;12811:1;12800:10;:13::i;:::-;:17;;:20::i;:::-;12773:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12832:19:0;;-1:-1:-1;;;;;12832:19:0;:50;12861:20;12879:1;12861:13;:6;12832:19;12861:10;:13::i;:20::-;12832:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8701:323;8796:7;8854;;8843;:18;;8821:110;;;;-1:-1:-1;;;8821:110:0;;12258:2:1;8821:110:0;;;12240:21:1;12297:2;12277:18;;;12270:30;12336:34;12316:18;;;12309:62;-1:-1:-1;;;12387:18:1;;;12380:40;12437:19;;8821:110:0;12056:406:1;8821:110:0;8942:19;8964:10;:8;:10::i;:::-;8942:32;-1:-1:-1;8992:24:0;:7;8942:32;8992:11;:24::i;12224:483::-;6192:6;:13;;-1:-1:-1;;;;6192:13:0;-1:-1:-1;;;6192:13:0;;;12326:16:::1;::::0;;12340:1:::1;12326:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12326:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12326:16:0::1;12302:40;;12371:4;12353;12358:1;12353:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12353:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12397:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12397:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12353:7;;12397:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12387:4;12392:1;12387:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12387:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12462:15:::1;::::0;12430:62:::1;::::0;12447:4:::1;::::0;12462:15:::1;12480:11:::0;12430:8:::1;:62::i;:::-;12503:15;::::0;:196:::1;::::0;-1:-1:-1;;;12503:196:0;;-1:-1:-1;;;;;12503:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12584:11;;12503:15:::1;::::0;12626:4;;12653::::1;::::0;12673:15:::1;::::0;12503:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6228:6:0;:14;;-1:-1:-1;;;;6228:14:0;;;-1:-1:-1;;;;12224:483:0:o;3187:223::-;3307:7;3342:12;3335:5;3327:28;;;;-1:-1:-1;;;3327:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3366:9:0;3378:5;3382:1;3378;:5;:::i;13777:282::-;13933:7;13928:28;;13942:14;:12;:14::i;:::-;13967:44;13985:6;13993:9;14004:6;13967:17;:44::i;:::-;14027:7;14022:29;;14036:15;9319:17;;9307:9;:29;9357:15;;9347:7;:25;9263:117;16746:164;16788:7;16809:15;16826;16845:19;:17;:19::i;:::-;16808:56;;-1:-1:-1;16808:56:0;-1:-1:-1;16882:20:0;16808:56;;16882:11;:20::i;:::-;16875:27;;;;16746:164;:::o;9033:221::-;9080:9;;:14;:30;;;;-1:-1:-1;9098:7:0;;:12;9080:30;9076:43;;;9033:221::o;9076:43::-;9152:9;;;9132:17;:29;9190:7;;;9172:15;:25;-1:-1:-1;9211:13:0;;;;9235:11;9033:221::o;14068:610::-;14215:15;14245:23;14283:12;14310:23;14348:12;14375:13;14402:19;14413:7;14402:10;:19::i;:::-;-1:-1:-1;;;;;14450:15:0;;;;;;:7;:15;;;;;;14200:221;;-1:-1:-1;14200:221:0;;-1:-1:-1;14200:221:0;;-1:-1:-1;14200:221:0;-1:-1:-1;14200:221:0;-1:-1:-1;14200:221:0;-1:-1:-1;14450:28:0;;14200:221;14450:19;:28::i;:::-;-1:-1:-1;;;;;14432:15:0;;;;;;;:7;:15;;;;;;:46;;;;14510:18;;;;;;;:39;;14533:15;14510:22;:39::i;:::-;-1:-1:-1;;;;;14489:18:0;;;;;;:7;:18;;;;;:60;14560:16;14570:5;14560:9;:16::i;:::-;14587:23;14599:4;14605;14587:11;:23::i;:::-;14643:9;-1:-1:-1;;;;;14626:44:0;14635:6;-1:-1:-1;;;;;14626:44:0;;14654:15;14626:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14626:44:0;;;;;;;;14189:489;;;;;;14068:610;;;:::o;16919:257::-;17017:7;;16970;;;;4931:18;17085:20;17017:7;4931:18;17085:11;:20::i;:::-;17075:7;:30;17071:61;;;-1:-1:-1;;17115:7:0;;;4931:18;;-1:-1:-1;16919:257:0;-1:-1:-1;16919:257:0:o;17071:61::-;17151:7;;17160;;-1:-1:-1;16919:257:0;-1:-1:-1;16919:257:0:o;15101:615::-;15201:7;15223;15245;15267;15289;15311;15347:23;15372:12;15386:13;15416:40;15428:7;15437:9;;15448:7;;15416:11;:40::i;:::-;15346:110;;;;;;15467:19;15489:10;:8;:10::i;:::-;15467:32;;15511:15;15528:23;15553:12;15582:46;15594:7;15603:4;15609:5;15616:11;15582;:46::i;:::-;15510:118;;-1:-1:-1;15510:118:0;-1:-1:-1;15510:118:0;-1:-1:-1;15679:15:0;;-1:-1:-1;15696:4:0;;-1:-1:-1;15702:5:0;;-1:-1:-1;;;;;15101:615:0;;;;;;;:::o;2413:136::-;2471:7;2498:43;2502:1;2505;2498:43;;;;;;;;;;;;;;;;;:3;:43::i;2225:179::-;2283:7;;2315:5;2319:1;2315;:5;:::i;:::-;2303:17;;2344:1;2339;:6;;2331:46;;;;-1:-1:-1;;;2331:46:0;;13910:2:1;2331:46:0;;;13892:21:1;13949:2;13929:18;;;13922:30;13988:29;13968:18;;;13961:57;14035:18;;2331:46:0;13708:351:1;14687:211:0;14740:19;14762:10;:8;:10::i;:::-;14740:32;-1:-1:-1;14783:13:0;14799:22;:5;14740:32;14799:9;:22::i;:::-;14873:4;14857:22;;;;:7;:22;;;;;;14783:38;;-1:-1:-1;14857:33:0;;14783:38;14857:26;:33::i;:::-;14848:4;14832:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14687:211:0:o;14907:147::-;14985:7;;:17;;14997:4;14985:11;:17::i;:::-;14975:7;:27;15026:10;;:20;;15041:4;15026:14;:20::i;:::-;15013:10;:33;-1:-1:-1;;14907:147:0:o;15725:469::-;15894:7;;;;15988:30;16014:3;15988:21;:7;16000:8;15988:11;:21::i;:30::-;15973:45;-1:-1:-1;16029:13:0;16045:28;16069:3;16045:19;:7;16057:6;16045:11;:19::i;:28::-;16029:44;-1:-1:-1;16084:23:0;16110:28;16029:44;16110:17;:7;16122:4;16110:11;:17::i;:::-;:21;;:28::i;:::-;16084:54;16174:4;;-1:-1:-1;16180:5:0;;-1:-1:-1;15725:469:0;;-1:-1:-1;;;;;15725:469:0:o;16203:534::-;16397:7;;;;16494:24;:7;16506:11;16494;:24::i;:::-;16476:42;-1:-1:-1;16529:12:0;16544:21;:4;16553:11;16544:8;:21::i;:::-;16529:36;-1:-1:-1;16576:13:0;16592:22;:5;16602:11;16592:9;:22::i;:::-;16576:38;-1:-1:-1;16625:23:0;16651:28;16576:38;16651:17;:7;16663:4;16651:11;:17::i;:28::-;16698:7;;;;-1:-1:-1;16724:4:0;;-1:-1:-1;16203:534:0;;-1:-1:-1;;;;;;;16203:534:0:o;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:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3727:160::-;3792:20;;3848:13;;3841:21;3831:32;;3821:60;;3877:1;3874;3867:12;3892:689;3984:6;3992;4000;4053:2;4041:9;4032:7;4028:23;4024:32;4021:52;;;4069:1;4066;4059:12;4021:52;4109:9;4096:23;4138:18;4179:2;4171:6;4168:14;4165:34;;;4195:1;4192;4185:12;4165:34;4233:6;4222:9;4218:22;4208:32;;4278:7;4271:4;4267:2;4263:13;4259:27;4249:55;;4300:1;4297;4290:12;4249:55;4340:2;4327:16;4366:2;4358:6;4355:14;4352:34;;;4382:1;4379;4372:12;4352:34;4437:7;4430:4;4420:6;4417:1;4413:14;4409:2;4405:23;4401:34;4398:47;4395:67;;;4458:1;4455;4448:12;4395:67;4489:4;4481:13;;;;-1:-1:-1;4513:6:1;-1:-1:-1;4538:37:1;;4554:20;;;-1:-1:-1;4538:37:1;:::i;:::-;4528:47;;3892:689;;;;;:::o;4794:247::-;4853:6;4906:2;4894:9;4885:7;4881:23;4877:32;4874:52;;;4922:1;4919;4912:12;4874:52;4961:9;4948:23;4980:31;5005:5;4980:31;:::i;5046:180::-;5102:6;5155:2;5143:9;5134:7;5130:23;5126:32;5123:52;;;5171:1;5168;5161:12;5123:52;5194:26;5210:9;5194:26;:::i;5231:180::-;5290:6;5343:2;5331:9;5322:7;5318:23;5314:32;5311:52;;;5359:1;5356;5349:12;5311:52;-1:-1:-1;5382:23:1;;5231:180;-1:-1:-1;5231:180:1:o;5416:385::-;5502:6;5510;5518;5526;5579:3;5567:9;5558:7;5554:23;5550:33;5547:53;;;5596:1;5593;5586:12;5547:53;-1:-1:-1;;5619:23:1;;;5689:2;5674:18;;5661:32;;-1:-1:-1;5740:2:1;5725:18;;5712:32;;5791:2;5776:18;5763:32;;-1:-1:-1;5416:385:1;-1:-1:-1;5416:385:1:o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;-1:-1:-1;;6884:17:1;;6881:43;;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;6964:168::-;7004:7;7070:1;7066;7062:6;7058:14;7055:1;7052:21;7047:1;7040:9;7033:17;7029:45;7026:71;;;7077:18;;:::i;:::-;-1:-1:-1;7117:9:1;;6964:168::o;7137:217::-;7177:1;7203;7193:132;;7247:10;7242:3;7238:20;7235:1;7228:31;7282:4;7279:1;7272:15;7310:4;7307:1;7300:15;7193:132;-1:-1:-1;7339:9:1;;7137:217::o;11389:128::-;11429:3;11460:1;11456:6;11453:1;11450:13;11447:39;;;11466:18;;:::i;:::-;-1:-1:-1;11502:9:1;;11389:128::o;11926:125::-;11966:4;11994:1;11991;11988:8;11985:34;;;11999:18;;:::i;:::-;-1:-1:-1;12036:9:1;;11926:125::o;12467:251::-;12537:6;12590:2;12578:9;12569:7;12565:23;12561:32;12558:52;;;12606:1;12603;12596:12;12558:52;12638:9;12632:16;12657:31;12682:5;12657:31;:::i;12723:980::-;12985:4;13033:3;13022:9;13018:19;13064:6;13053:9;13046:25;13090:2;13128:6;13123:2;13112:9;13108:18;13101:34;13171:3;13166:2;13155:9;13151:18;13144:31;13195:6;13230;13224:13;13261:6;13253;13246:22;13299:3;13288:9;13284:19;13277:26;;13338:2;13330:6;13326:15;13312:29;;13359:1;13369:195;13383:6;13380:1;13377:13;13369:195;;;13448:13;;-1:-1:-1;;;;;13444:39:1;13432:52;;13539:15;;;;13504:12;;;;13480:1;13398:9;13369:195;;;-1:-1:-1;;;;;;;13620:32:1;;;;13615:2;13600:18;;13593:60;-1:-1:-1;;;13684:3:1;13669:19;13662:35;13581:3;12723:980;-1:-1:-1;;;12723:980:1:o
Swarm Source
ipfs://469dc18fd8e1f3d4d5b562abc00091a7fd4f510cb63a0033562b616eede04069
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)