ERC-20
Source Code
Overview
Max Total Supply
100,000,000,000,000,000 EthKing
Holders
3
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 1 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
EthereumKing
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-11-25
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.4;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
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;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
}
abstract contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = msg.sender;
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == msg.sender, "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;
}
}
interface IUniswapV2Factory {
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract EthereumKing is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
string private _name = "EthereumKing";
string private _symbol = "EthKing";
uint8 private _decimals = 1;
address payable public marketingWalletAddress = payable(0x3045E708aAea1048b2943052c4361b353BF9Ebbe);
address payable public BurnedWalletAddress = payable(0x3045E708aAea1048b2943052c4361b353BF9Ebbe);
address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public isExcludedFromFee;
mapping (address => bool) public isWalletLimitExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public isMarketPair;
mapping (address => bool) private _isBot;
uint256 public tradeStartBlock;
uint256 public killBlock = 100;
uint256 public _buyLiquidityFee = 1;
uint256 public _buyMarketingFee = 1;
uint256 public _buyBurnedFee = 1;
uint256 public _sellLiquidityFee = 1;
uint256 public _sellMarketingFee = 1;
uint256 public _sellBurnedFee = 1;
uint256 public _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
uint256 public _marketingShare = _buyMarketingFee.add(_sellMarketingFee);
uint256 public _BurnedShare = _buyBurnedFee.add(_sellBurnedFee);
uint256 public _totalTaxIfBuying;
uint256 public _totalTaxIfSelling;
uint256 public _totalDistributionShares;
uint256 private _totalSupply = 100000000000000000* 10**_decimals;
uint256 private minimumTokensBeforeSwap = 100 * 10**_decimals;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapPair;
uint256 public genesisBlock;
uint256 public coolBlock = 0;
uint256 _saleKeepFee = 1000;
bool inSwapAndLiquify;
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(
uint256 amountIn,
address[] path
);
event SwapTokensForETH(
uint256 amountIn,
address[] path
);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
_totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyBurnedFee);
_totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnedFee);
_totalDistributionShares = _liquidityShare.add(_marketingShare).add(_BurnedShare);
isWalletLimitExempt[owner()] = true;
isWalletLimitExempt[address(uniswapPair)] = true;
isWalletLimitExempt[address(this)] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[address(this)] = true;
isMarketPair[address(uniswapPair)] = true;
_balances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function minimumTokensBeforeSwapAmount() public view returns (uint256) {
return minimumTokensBeforeSwap;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, 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 setMarketPairStatus(address account, bool state) external {
require(_isBot[account] != state, 'Value already set');
_isBot[account] = state;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress));
}
function transferToAddressETH(address payable recipient, uint256 amount) private {
recipient.transfer(amount);
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, 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 setAntibot(address account, bool state) external onlyOwner {
require(_isBot[account] != state, 'Value already set');
_isBot[account] = state;
}
function isBot(address account) public view returns (bool){
return _isBot[account];
}
function setKillBlock(uint256 amount) public onlyOwner {
killBlock = amount;
}
function startTrade() external onlyOwner {
require(0 == tradeStartBlock, "trading");
tradeStartBlock = block.number;
}
function closeTrade() external onlyOwner {
tradeStartBlock = 0;
}
function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(!_isBot[sender] && !_isBot[recipient], 'You are a bot');
require(0 < tradeStartBlock, "!Trading");
if (killBlock > 0) {
if (tradeStartBlock > 0 && isMarketPair[sender] && block.number < tradeStartBlock + killBlock) {
_isBot[recipient] = true;
}
if (tradeStartBlock == 0 && isMarketPair[recipient]) {
tradeStartBlock = block.number;
}
}
if(recipient == uniswapPair && !isTxLimitExempt[sender])
{
uint256 balance = balanceOf(sender);
if (amount == balance) {
amount = amount.sub(amount.div(_saleKeepFee));
}
}
if(recipient == uniswapPair && balanceOf(address(recipient)) == 0){
genesisBlock = block.number;
}
if(inSwapAndLiquify)
{
return _basicTransfer(sender, recipient, amount);
}
else
{
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender])
{
if(sender != address(uniswapV2Router))
{
swapAndLiquify(contractTokenBalance);
}
}
uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ?
takeTax(sender, recipient, amount) : takeFee(sender, recipient, amount);
_balances[recipient] = _balances[recipient].add(finalAmount);
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
emit Transfer(sender, recipient, finalAmount);
if (block.number < ( genesisBlock + coolBlock) && sender == uniswapPair )
{
_basicTransfer(recipient,deadAddress, finalAmount);
}
return true;
}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function swapAndLiquify(uint256 tAmount) private lockTheSwap {
uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
uint256 tokensForSwap = tAmount.sub(tokensForLP);
swapTokensForEth(tokensForSwap);
uint256 amountReceived = address(this).balance;
uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
uint256 amountBNBBurned = amountReceived.mul(_BurnedShare).div(totalBNBFee);
uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBBurned);
if(amountBNBMarketing > 0)
transferToAddressETH(marketingWalletAddress, amountBNBMarketing);
if(amountBNBBurned > 0)
transferToAddressETH(BurnedWalletAddress, amountBNBBurned);
if(amountBNBLiquidity > 0 && tokensForLP > 0)
addLiquidity(tokensForLP, amountBNBLiquidity);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
owner(),
block.timestamp
);
}
function takeTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeAmount = 0;
if (isExcludedFromFee[sender])feeAmount=amount;
if (!isExcludedFromFee[recipient])feeAmount=feeAmount*0;
return amount.add(feeAmount);
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeAmount = 0;
if(isMarketPair[sender]) {
feeAmount = amount.mul(_totalTaxIfBuying).div(100);
}
else if(isMarketPair[recipient]) {
feeAmount = amount.mul(_totalTaxIfSelling).div(100);
}
if(feeAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BurnedWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"killBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setKillBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeStartBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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
60a06040526040518060400160405280600c81526020017f457468657265756d4b696e670000000000000000000000000000000000000000815250600190805190602001906200005192919062000b6e565b506040518060400160405280600781526020017f4574684b696e6700000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000b6e565b506001600360006101000a81548160ff021916908360ff160217905550733045e708aaea1048b2943052c4361b353bf9ebbe600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733045e708aaea1048b2943052c4361b353bf9ebbe600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506064600d556001600e556001600f556001601055600160115560016012556001601355620001df601154600e5462000ada60201b620019a31790919060201c565b60145562000200601254600f5462000ada60201b620019a31790919060201c565b6015556200022160135460105462000ada60201b620019a31790919060201c565b601655600360009054906101000a900460ff16600a62000242919062000de5565b67016345785d8a000062000257919062000f22565b601a55600360009054906101000a900460ff16600a62000278919062000de5565b606462000286919062000f22565b601b556000601f556103e8602055348015620002a157600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a357600080fd5b505afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000c35565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044157600080fd5b505afa15801562000456573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047c919062000c35565b6040518363ffffffff1660e01b81526004016200049b92919062000cb0565b602060405180830381600087803b158015620004b657600080fd5b505af1158015620004cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f1919062000c35565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760006200062d62000b3d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070f601054620006fb600f54600e5462000ada60201b620019a31790919060201c565b62000ada60201b620019a31790919060201c565b6017819055506200074e6013546200073a60125460115462000ada60201b620019a31790919060201c565b62000ada60201b620019a31790919060201c565b6018819055506200078d6016546200077960155460145462000ada60201b620019a31790919060201c565b62000ada60201b620019a31790919060201c565b601981905550600160086000620007a962000b3d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e262000b3d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a546005600062000a1c62000b6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a6a62000b6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a5460405162000acb919062000cff565b60405180910390a350620010b7565b600080828462000aeb919062000d2d565b90508381101562000b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2a9062000cdd565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b82805462000b7c9062000fce565b90600052602060002090601f01602090048101928262000ba0576000855562000bec565b82601f1062000bbb57805160ff191683800117855562000bec565b8280016001018555821562000bec579182015b8281111562000beb57825182559160200191906001019062000bce565b5b50905062000bfb919062000bff565b5090565b5b8082111562000c1a57600081600090555060010162000c00565b5090565b60008151905062000c2f816200109d565b92915050565b60006020828403121562000c4e5762000c4d62001062565b5b600062000c5e8482850162000c1e565b91505092915050565b62000c728162000f83565b82525050565b600062000c87601b8362000d1c565b915062000c948262001074565b602082019050919050565b62000caa8162000fb7565b82525050565b600060408201905062000cc7600083018562000c67565b62000cd6602083018462000c67565b9392505050565b6000602082019050818103600083015262000cf88162000c78565b9050919050565b600060208201905062000d16600083018462000c9f565b92915050565b600082825260208201905092915050565b600062000d3a8262000fb7565b915062000d478362000fb7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d7f5762000d7e62001004565b5b828201905092915050565b6000808291508390505b600185111562000ddc5780860481111562000db45762000db362001004565b5b600185161562000dc45780820291505b808102905062000dd48562001067565b945062000d94565b94509492505050565b600062000df28262000fb7565b915062000dff8362000fc1565b925062000e2e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e36565b905092915050565b60008262000e48576001905062000f1b565b8162000e58576000905062000f1b565b816001811462000e71576002811462000e7c5762000eb2565b600191505062000f1b565b60ff84111562000e915762000e9062001004565b5b8360020a91508482111562000eab5762000eaa62001004565b5b5062000f1b565b5060208310610133831016604e8410600b841016171562000eec5782820a90508381111562000ee65762000ee562001004565b5b62000f1b565b62000efb848484600162000d8a565b9250905081840481111562000f155762000f1462001004565b5b81810290505b9392505050565b600062000f2f8262000fb7565b915062000f3c8362000fb7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f785762000f7762001004565b5b828202905092915050565b600062000f908262000f97565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000fe757607f821691505b6020821081141562000ffe5762000ffd62001033565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b620010a88162000f83565b8114620010b457600080fd5b50565b60805160601c61409a620010e460003960008181610d6501528181610d910152612497015261409a6000f3fe60806040526004361061028c5760003560e01c8063881459111161015a578063c5d24189116100c1578063dd62ed3e1161007a578063dd62ed3e14610a15578063e116554514610a52578063f0cd1dac14610a7b578063f2c4220e14610aa6578063f2fde38b14610ad1578063fcdb89ce14610afa57610293565b8063c5d2418914610901578063c816841b1461092c578063c860795214610957578063c867d60b14610982578063d158272d146109bf578063dc44b6a0146109ea57610293565b8063a073d37f11610113578063a073d37f146107db578063a08e671f14610806578063a457c2d714610831578063a9059cbb1461086e578063aea9cd15146108ab578063af806d9a146108d657610293565b806388145911146106c757806388790a68146106f25780638b42507f1461071d5780638da5cb5b1461075a57806395d89b411461078557806396d0efa7146107b057610293565b80633bbac579116101fe5780636c580801116101b75780636c580801146105dd57806370a08231146105f4578063715018a61461063157806382eefb43146106485780638317390b14610673578063844d591c1461069e57610293565b80633bbac579146104a55780633ecad271146104e25780634cdc9c631461051f5780635342acb41461054a57806357a5802f1461058757806361a23c69146105b257610293565b806323b872dd1161025057806323b872dd1461037f57806327c8f835146103bc5780632b112e49146103e75780632ca1146014610412578063313ce5671461043d578063395093511461046857610293565b806306fdde0314610298578063095ea7b3146102c3578063108c336d146103005780631694505e1461032957806318160ddd1461035457610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b11565b6040516102ba9190613721565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906132c9565b610ba3565b6040516102f791906136eb565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190613309565b610bc1565b005b34801561033557600080fd5b5061033e610c59565b60405161034b9190613706565b60405180910390f35b34801561036057600080fd5b50610369610c7f565b60405161037691906138c3565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190613236565b610c89565b6040516103b391906136eb565b60405180910390f35b3480156103c857600080fd5b506103d1610d63565b6040516103de9190613654565b60405180910390f35b3480156103f357600080fd5b506103fc610d87565b60405161040991906138c3565b60405180910390f35b34801561041e57600080fd5b50610427610dcb565b60405161043491906138c3565b60405180910390f35b34801561044957600080fd5b50610452610dd1565b60405161045f9190613968565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906132c9565b610de8565b60405161049c91906136eb565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c7919061319c565b610e9b565b6040516104d991906136eb565b60405180910390f35b3480156104ee57600080fd5b506105096004803603810190610504919061319c565b610ef1565b60405161051691906136eb565b60405180910390f35b34801561052b57600080fd5b50610534610f11565b60405161054191906138c3565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c919061319c565b610f17565b60405161057e91906136eb565b60405180910390f35b34801561059357600080fd5b5061059c610f37565b6040516105a991906138c3565b60405180910390f35b3480156105be57600080fd5b506105c7610f3d565b6040516105d491906138c3565b60405180910390f35b3480156105e957600080fd5b506105f2610f43565b005b34801561060057600080fd5b5061061b6004803603810190610616919061319c565b61101f565b60405161062891906138c3565b60405180910390f35b34801561063d57600080fd5b50610646611068565b005b34801561065457600080fd5b5061065d6111b4565b60405161066a91906138c3565b60405180910390f35b34801561067f57600080fd5b506106886111ba565b604051610695919061366f565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190613289565b6111e0565b005b3480156106d357600080fd5b506106dc6112ce565b6040516106e991906138c3565b60405180910390f35b3480156106fe57600080fd5b506107076112d4565b60405161071491906138c3565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f919061319c565b6112da565b60405161075191906136eb565b60405180910390f35b34801561076657600080fd5b5061076f6112fa565b60405161077c9190613654565b60405180910390f35b34801561079157600080fd5b5061079a611323565b6040516107a79190613721565b60405180910390f35b3480156107bc57600080fd5b506107c56113b5565b6040516107d291906138c3565b60405180910390f35b3480156107e757600080fd5b506107f06113bb565b6040516107fd91906138c3565b60405180910390f35b34801561081257600080fd5b5061081b6113c5565b60405161082891906138c3565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906132c9565b6113cb565b60405161086591906136eb565b60405180910390f35b34801561087a57600080fd5b50610895600480360381019061089091906132c9565b611498565b6040516108a291906136eb565b60405180910390f35b3480156108b757600080fd5b506108c06114b7565b6040516108cd91906138c3565b60405180910390f35b3480156108e257600080fd5b506108eb6114bd565b6040516108f891906138c3565b60405180910390f35b34801561090d57600080fd5b506109166114c3565b60405161092391906138c3565b60405180910390f35b34801561093857600080fd5b506109416114c9565b60405161094e9190613654565b60405180910390f35b34801561096357600080fd5b5061096c6114ef565b60405161097991906138c3565b60405180910390f35b34801561098e57600080fd5b506109a960048036038101906109a4919061319c565b6114f5565b6040516109b691906136eb565b60405180910390f35b3480156109cb57600080fd5b506109d4611515565b6040516109e1919061366f565b60405180910390f35b3480156109f657600080fd5b506109ff61153b565b604051610a0c91906138c3565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906131f6565b611541565b604051610a4991906138c3565b60405180910390f35b348015610a5e57600080fd5b50610a796004803603810190610a749190613289565b6115c8565b005b348015610a8757600080fd5b50610a90611744565b604051610a9d91906138c3565b60405180910390f35b348015610ab257600080fd5b50610abb61174a565b604051610ac891906138c3565b60405180910390f35b348015610add57600080fd5b50610af86004803603810190610af3919061319c565b611750565b005b348015610b0657600080fd5b50610b0f61190b565b005b606060018054610b2090613bcf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c90613bcf565b8015610b995780601f10610b6e57610100808354040283529160200191610b99565b820191906000526020600020905b815481529060010190602001808311610b7c57829003601f168201915b5050505050905090565b6000610bb7610bb0611a01565b8484611a09565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4690613843565b60405180910390fd5b80600d8190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6000610c96848484611bd4565b50610d5884610ca3611a01565b610d538560405180606001604052806028815260200161401860289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d09611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b611a09565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610dc6610db57f000000000000000000000000000000000000000000000000000000000000000061101f565b601a5461253190919063ffffffff16565b905090565b60105481565b6000600360009054906101000a900460ff16905090565b6000610e91610df5611a01565b84610e8c8560066000610e06611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b611a09565b6001905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601e5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60145481565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890613843565b60405180910390fd5b600c54600014611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90613803565b60405180910390fd5b43600c81905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90613843565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60185481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a90613763565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b60115481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461133290613bcf565b80601f016020809104026020016040519081016040528092919081815260200182805461135e90613bcf565b80156113ab5780601f10611380576101008083540402835291602001916113ab565b820191906000526020600020905b81548152906001019060200180831161138e57829003601f168201915b5050505050905090565b60135481565b6000601b54905090565b60195481565b600061148e6113d8611a01565b84611489856040518060600160405280602581526020016140406025913960066000611402611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b611a09565b6001905092915050565b60006114ac6114a5611a01565b8484611bd4565b506001905092915050565b601f5481565b60165481565b600f5481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90613843565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090613763565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60175481565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590613843565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184590613783565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199090613843565b60405180910390fd5b6000600c81905550565b60008082846119b291906139d8565b9050838110156119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ee906137c3565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae0906137a3565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bc791906138c3565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3c90613863565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613743565b60405180910390fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d595750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f906138a3565b60405180910390fd5b600c54600010611ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd4906137e3565b60405180910390fd5b6000600d541115611f24576000600c54118015611e435750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611e5d5750600d54600c54611e5a91906139d8565b43105b15611ebb576001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600c54148015611f165750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f235743600c819055505b5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fcb5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612011576000611fdb8561101f565b90508083141561200f5761200c611ffd6020548561257b90919063ffffffff16565b8461253190919063ffffffff16565b92505b505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612076575060006120748461101f565b145b156120835743601e819055505b602160009054906101000a900460ff16156120aa576120a38484846125c5565b90506124c6565b60006120b53061101f565b90506000601b5482101590508080156120db5750602160009054906101000a900460ff16155b80156121315750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561219657601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146121955761219482612798565b5b5b6000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122395750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61224d57612248878787612989565b612259565b612258878787612bb0565b5b90506122ad81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612379856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161241991906138c3565b60405180910390a3601f54601e5461243191906139d8565b4310801561248c5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b156124be576124bc867f0000000000000000000000000000000000000000000000000000000000000000836125c5565b505b600193505050505b9392505050565b6000838311158290612515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250c9190613721565b60405180910390fd5b50600083856125249190613ab9565b9050809150509392505050565b600061257383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124cd565b905092915050565b60006125bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c8b565b905092915050565b6000612650826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126e582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161278591906138c3565b60405180910390a3600190509392505050565b6001602160006101000a81548160ff02191690831515021790555060006127f160026127e36019546127d560145487612cee90919063ffffffff16565b61257b90919063ffffffff16565b61257b90919063ffffffff16565b90506000612808828461253190919063ffffffff16565b905061281381612d69565b60004790506000612844612833600260145461257b90919063ffffffff16565b60195461253190919063ffffffff16565b9050600061288260026128748461286660145488612cee90919063ffffffff16565b61257b90919063ffffffff16565b61257b90919063ffffffff16565b905060006128ad8361289f60165487612cee90919063ffffffff16565b61257b90919063ffffffff16565b905060006128d6826128c8858861253190919063ffffffff16565b61253190919063ffffffff16565b9050600081111561290e5761290d600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612ff4565b5b600082111561294457612943600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612ff4565b5b6000831180156129545750600087115b1561296457612963878461303f565b5b505050505050506000602160006101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a1157612a0a60646129fc60175486612cee90919063ffffffff16565b61257b90919063ffffffff16565b9050612a8f565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a8e57612a8b6064612a7d60185486612cee90919063ffffffff16565b61257b90919063ffffffff16565b90505b5b6000811115612b9357612aea81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b8a91906138c3565b60405180910390a35b612ba6818461253190919063ffffffff16565b9150509392505050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c0d578290505b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c6e57600081612c6b9190613a5f565b90505b612c8181846119a390919063ffffffff16565b9150509392505050565b60008083118290612cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc99190613721565b60405180910390fd5b5060008385612ce19190613a2e565b9050809150509392505050565b600080831415612d015760009050612d63565b60008284612d0f9190613a5f565b9050828482612d1e9190613a2e565b14612d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5590613823565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115612d8657612d85613cbd565b5b604051908082528060200260200182016040528015612db45781602001602082028036833780820191505090505b5090503081600081518110612dcc57612dcb613c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612e6e57600080fd5b505afa158015612e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea691906131c9565b81600181518110612eba57612eb9613c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f2130601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a09565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f8595949392919061390e565b600060405180830381600087803b158015612f9f57600080fd5b505af1158015612fb3573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612fe89291906138de565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561303a573d6000803e3d6000fd5b505050565b61306c30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a09565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806130b86112fa565b426040518863ffffffff1660e01b81526004016130da9695949392919061368a565b6060604051808303818588803b1580156130f357600080fd5b505af1158015613107573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061312c9190613336565b5050505050565b60008135905061314281613fd2565b92915050565b60008151905061315781613fd2565b92915050565b60008135905061316c81613fe9565b92915050565b60008135905061318181614000565b92915050565b60008151905061319681614000565b92915050565b6000602082840312156131b2576131b1613cec565b5b60006131c084828501613133565b91505092915050565b6000602082840312156131df576131de613cec565b5b60006131ed84828501613148565b91505092915050565b6000806040838503121561320d5761320c613cec565b5b600061321b85828601613133565b925050602061322c85828601613133565b9150509250929050565b60008060006060848603121561324f5761324e613cec565b5b600061325d86828701613133565b935050602061326e86828701613133565b925050604061327f86828701613172565b9150509250925092565b600080604083850312156132a05761329f613cec565b5b60006132ae85828601613133565b92505060206132bf8582860161315d565b9150509250929050565b600080604083850312156132e0576132df613cec565b5b60006132ee85828601613133565b92505060206132ff85828601613172565b9150509250929050565b60006020828403121561331f5761331e613cec565b5b600061332d84828501613172565b91505092915050565b60008060006060848603121561334f5761334e613cec565b5b600061335d86828701613187565b935050602061336e86828701613187565b925050604061337f86828701613187565b9150509250925092565b600061339583836133b0565b60208301905092915050565b6133aa81613aff565b82525050565b6133b981613aed565b82525050565b6133c881613aed565b82525050565b60006133d982613993565b6133e381856139b6565b93506133ee83613983565b8060005b8381101561341f5781516134068882613389565b9750613411836139a9565b9250506001810190506133f2565b5085935050505092915050565b61343581613b11565b82525050565b61344481613b54565b82525050565b61345381613b66565b82525050565b60006134648261399e565b61346e81856139c7565b935061347e818560208601613b9c565b61348781613cf1565b840191505092915050565b600061349f6023836139c7565b91506134aa82613d02565b604082019050919050565b60006134c26011836139c7565b91506134cd82613d51565b602082019050919050565b60006134e56026836139c7565b91506134f082613d7a565b604082019050919050565b60006135086022836139c7565b915061351382613dc9565b604082019050919050565b600061352b601b836139c7565b915061353682613e18565b602082019050919050565b600061354e6008836139c7565b915061355982613e41565b602082019050919050565b60006135716007836139c7565b915061357c82613e6a565b602082019050919050565b60006135946021836139c7565b915061359f82613e93565b604082019050919050565b60006135b76020836139c7565b91506135c282613ee2565b602082019050919050565b60006135da6025836139c7565b91506135e582613f0b565b604082019050919050565b60006135fd6024836139c7565b915061360882613f5a565b604082019050919050565b6000613620600d836139c7565b915061362b82613fa9565b602082019050919050565b61363f81613b3d565b82525050565b61364e81613b47565b82525050565b600060208201905061366960008301846133bf565b92915050565b600060208201905061368460008301846133a1565b92915050565b600060c08201905061369f60008301896133bf565b6136ac6020830188613636565b6136b9604083018761344a565b6136c6606083018661344a565b6136d360808301856133bf565b6136e060a0830184613636565b979650505050505050565b6000602082019050613700600083018461342c565b92915050565b600060208201905061371b600083018461343b565b92915050565b6000602082019050818103600083015261373b8184613459565b905092915050565b6000602082019050818103600083015261375c81613492565b9050919050565b6000602082019050818103600083015261377c816134b5565b9050919050565b6000602082019050818103600083015261379c816134d8565b9050919050565b600060208201905081810360008301526137bc816134fb565b9050919050565b600060208201905081810360008301526137dc8161351e565b9050919050565b600060208201905081810360008301526137fc81613541565b9050919050565b6000602082019050818103600083015261381c81613564565b9050919050565b6000602082019050818103600083015261383c81613587565b9050919050565b6000602082019050818103600083015261385c816135aa565b9050919050565b6000602082019050818103600083015261387c816135cd565b9050919050565b6000602082019050818103600083015261389c816135f0565b9050919050565b600060208201905081810360008301526138bc81613613565b9050919050565b60006020820190506138d86000830184613636565b92915050565b60006040820190506138f36000830185613636565b818103602083015261390581846133ce565b90509392505050565b600060a0820190506139236000830188613636565b613930602083018761344a565b818103604083015261394281866133ce565b905061395160608301856133bf565b61395e6080830184613636565b9695505050505050565b600060208201905061397d6000830184613645565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006139e382613b3d565b91506139ee83613b3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a2357613a22613c01565b5b828201905092915050565b6000613a3982613b3d565b9150613a4483613b3d565b925082613a5457613a53613c30565b5b828204905092915050565b6000613a6a82613b3d565b9150613a7583613b3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aae57613aad613c01565b5b828202905092915050565b6000613ac482613b3d565b9150613acf83613b3d565b925082821015613ae257613ae1613c01565b5b828203905092915050565b6000613af882613b1d565b9050919050565b6000613b0a82613b1d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b5f82613b78565b9050919050565b6000613b7182613b3d565b9050919050565b6000613b8382613b8a565b9050919050565b6000613b9582613b1d565b9050919050565b60005b83811015613bba578082015181840152602081019050613b9f565b83811115613bc9576000848401525b50505050565b60006002820490506001821680613be757607f821691505b60208210811415613bfb57613bfa613c5f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f2154726164696e67000000000000000000000000000000000000000000000000600082015250565b7f74726164696e6700000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b613fdb81613aed565b8114613fe657600080fd5b50565b613ff281613b11565b8114613ffd57600080fd5b50565b61400981613b3d565b811461401457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122012885288cf09905136d68bd3cd047d3a55d671297cbbcea9894127fdfae539d264736f6c63430008070033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063881459111161015a578063c5d24189116100c1578063dd62ed3e1161007a578063dd62ed3e14610a15578063e116554514610a52578063f0cd1dac14610a7b578063f2c4220e14610aa6578063f2fde38b14610ad1578063fcdb89ce14610afa57610293565b8063c5d2418914610901578063c816841b1461092c578063c860795214610957578063c867d60b14610982578063d158272d146109bf578063dc44b6a0146109ea57610293565b8063a073d37f11610113578063a073d37f146107db578063a08e671f14610806578063a457c2d714610831578063a9059cbb1461086e578063aea9cd15146108ab578063af806d9a146108d657610293565b806388145911146106c757806388790a68146106f25780638b42507f1461071d5780638da5cb5b1461075a57806395d89b411461078557806396d0efa7146107b057610293565b80633bbac579116101fe5780636c580801116101b75780636c580801146105dd57806370a08231146105f4578063715018a61461063157806382eefb43146106485780638317390b14610673578063844d591c1461069e57610293565b80633bbac579146104a55780633ecad271146104e25780634cdc9c631461051f5780635342acb41461054a57806357a5802f1461058757806361a23c69146105b257610293565b806323b872dd1161025057806323b872dd1461037f57806327c8f835146103bc5780632b112e49146103e75780632ca1146014610412578063313ce5671461043d578063395093511461046857610293565b806306fdde0314610298578063095ea7b3146102c3578063108c336d146103005780631694505e1461032957806318160ddd1461035457610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610b11565b6040516102ba9190613721565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906132c9565b610ba3565b6040516102f791906136eb565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190613309565b610bc1565b005b34801561033557600080fd5b5061033e610c59565b60405161034b9190613706565b60405180910390f35b34801561036057600080fd5b50610369610c7f565b60405161037691906138c3565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190613236565b610c89565b6040516103b391906136eb565b60405180910390f35b3480156103c857600080fd5b506103d1610d63565b6040516103de9190613654565b60405180910390f35b3480156103f357600080fd5b506103fc610d87565b60405161040991906138c3565b60405180910390f35b34801561041e57600080fd5b50610427610dcb565b60405161043491906138c3565b60405180910390f35b34801561044957600080fd5b50610452610dd1565b60405161045f9190613968565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906132c9565b610de8565b60405161049c91906136eb565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c7919061319c565b610e9b565b6040516104d991906136eb565b60405180910390f35b3480156104ee57600080fd5b506105096004803603810190610504919061319c565b610ef1565b60405161051691906136eb565b60405180910390f35b34801561052b57600080fd5b50610534610f11565b60405161054191906138c3565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c919061319c565b610f17565b60405161057e91906136eb565b60405180910390f35b34801561059357600080fd5b5061059c610f37565b6040516105a991906138c3565b60405180910390f35b3480156105be57600080fd5b506105c7610f3d565b6040516105d491906138c3565b60405180910390f35b3480156105e957600080fd5b506105f2610f43565b005b34801561060057600080fd5b5061061b6004803603810190610616919061319c565b61101f565b60405161062891906138c3565b60405180910390f35b34801561063d57600080fd5b50610646611068565b005b34801561065457600080fd5b5061065d6111b4565b60405161066a91906138c3565b60405180910390f35b34801561067f57600080fd5b506106886111ba565b604051610695919061366f565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190613289565b6111e0565b005b3480156106d357600080fd5b506106dc6112ce565b6040516106e991906138c3565b60405180910390f35b3480156106fe57600080fd5b506107076112d4565b60405161071491906138c3565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f919061319c565b6112da565b60405161075191906136eb565b60405180910390f35b34801561076657600080fd5b5061076f6112fa565b60405161077c9190613654565b60405180910390f35b34801561079157600080fd5b5061079a611323565b6040516107a79190613721565b60405180910390f35b3480156107bc57600080fd5b506107c56113b5565b6040516107d291906138c3565b60405180910390f35b3480156107e757600080fd5b506107f06113bb565b6040516107fd91906138c3565b60405180910390f35b34801561081257600080fd5b5061081b6113c5565b60405161082891906138c3565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906132c9565b6113cb565b60405161086591906136eb565b60405180910390f35b34801561087a57600080fd5b50610895600480360381019061089091906132c9565b611498565b6040516108a291906136eb565b60405180910390f35b3480156108b757600080fd5b506108c06114b7565b6040516108cd91906138c3565b60405180910390f35b3480156108e257600080fd5b506108eb6114bd565b6040516108f891906138c3565b60405180910390f35b34801561090d57600080fd5b506109166114c3565b60405161092391906138c3565b60405180910390f35b34801561093857600080fd5b506109416114c9565b60405161094e9190613654565b60405180910390f35b34801561096357600080fd5b5061096c6114ef565b60405161097991906138c3565b60405180910390f35b34801561098e57600080fd5b506109a960048036038101906109a4919061319c565b6114f5565b6040516109b691906136eb565b60405180910390f35b3480156109cb57600080fd5b506109d4611515565b6040516109e1919061366f565b60405180910390f35b3480156109f657600080fd5b506109ff61153b565b604051610a0c91906138c3565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906131f6565b611541565b604051610a4991906138c3565b60405180910390f35b348015610a5e57600080fd5b50610a796004803603810190610a749190613289565b6115c8565b005b348015610a8757600080fd5b50610a90611744565b604051610a9d91906138c3565b60405180910390f35b348015610ab257600080fd5b50610abb61174a565b604051610ac891906138c3565b60405180910390f35b348015610add57600080fd5b50610af86004803603810190610af3919061319c565b611750565b005b348015610b0657600080fd5b50610b0f61190b565b005b606060018054610b2090613bcf565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c90613bcf565b8015610b995780601f10610b6e57610100808354040283529160200191610b99565b820191906000526020600020905b815481529060010190602001808311610b7c57829003601f168201915b5050505050905090565b6000610bb7610bb0611a01565b8484611a09565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4690613843565b60405180910390fd5b80600d8190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6000610c96848484611bd4565b50610d5884610ca3611a01565b610d538560405180606001604052806028815260200161401860289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d09611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b611a09565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610dc6610db57f000000000000000000000000000000000000000000000000000000000000dead61101f565b601a5461253190919063ffffffff16565b905090565b60105481565b6000600360009054906101000a900460ff16905090565b6000610e91610df5611a01565b84610e8c8560066000610e06611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b611a09565b6001905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601e5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60145481565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890613843565b60405180910390fd5b600c54600014611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90613803565b60405180910390fd5b43600c81905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90613843565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60185481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a90613763565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b60115481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461133290613bcf565b80601f016020809104026020016040519081016040528092919081815260200182805461135e90613bcf565b80156113ab5780601f10611380576101008083540402835291602001916113ab565b820191906000526020600020905b81548152906001019060200180831161138e57829003601f168201915b5050505050905090565b60135481565b6000601b54905090565b60195481565b600061148e6113d8611a01565b84611489856040518060600160405280602581526020016140406025913960066000611402611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b611a09565b6001905092915050565b60006114ac6114a5611a01565b8484611bd4565b506001905092915050565b601f5481565b60165481565b600f5481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90613843565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090613763565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60175481565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590613843565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561184e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184590613783565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199090613843565b60405180910390fd5b6000600c81905550565b60008082846119b291906139d8565b9050838110156119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ee906137c3565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae0906137a3565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bc791906138c3565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3c90613863565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613743565b60405180910390fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d595750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f906138a3565b60405180910390fd5b600c54600010611ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd4906137e3565b60405180910390fd5b6000600d541115611f24576000600c54118015611e435750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611e5d5750600d54600c54611e5a91906139d8565b43105b15611ebb576001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b6000600c54148015611f165750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f235743600c819055505b5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fcb5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612011576000611fdb8561101f565b90508083141561200f5761200c611ffd6020548561257b90919063ffffffff16565b8461253190919063ffffffff16565b92505b505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612076575060006120748461101f565b145b156120835743601e819055505b602160009054906101000a900460ff16156120aa576120a38484846125c5565b90506124c6565b60006120b53061101f565b90506000601b5482101590508080156120db5750602160009054906101000a900460ff16155b80156121315750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561219657601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146121955761219482612798565b5b5b6000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122395750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61224d57612248878787612989565b612259565b612258878787612bb0565b5b90506122ad81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612379856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161241991906138c3565b60405180910390a3601f54601e5461243191906139d8565b4310801561248c5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b156124be576124bc867f000000000000000000000000000000000000000000000000000000000000dead836125c5565b505b600193505050505b9392505050565b6000838311158290612515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250c9190613721565b60405180910390fd5b50600083856125249190613ab9565b9050809150509392505050565b600061257383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124cd565b905092915050565b60006125bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c8b565b905092915050565b6000612650826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126e582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161278591906138c3565b60405180910390a3600190509392505050565b6001602160006101000a81548160ff02191690831515021790555060006127f160026127e36019546127d560145487612cee90919063ffffffff16565b61257b90919063ffffffff16565b61257b90919063ffffffff16565b90506000612808828461253190919063ffffffff16565b905061281381612d69565b60004790506000612844612833600260145461257b90919063ffffffff16565b60195461253190919063ffffffff16565b9050600061288260026128748461286660145488612cee90919063ffffffff16565b61257b90919063ffffffff16565b61257b90919063ffffffff16565b905060006128ad8361289f60165487612cee90919063ffffffff16565b61257b90919063ffffffff16565b905060006128d6826128c8858861253190919063ffffffff16565b61253190919063ffffffff16565b9050600081111561290e5761290d600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612ff4565b5b600082111561294457612943600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612ff4565b5b6000831180156129545750600087115b1561296457612963878461303f565b5b505050505050506000602160006101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a1157612a0a60646129fc60175486612cee90919063ffffffff16565b61257b90919063ffffffff16565b9050612a8f565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a8e57612a8b6064612a7d60185486612cee90919063ffffffff16565b61257b90919063ffffffff16565b90505b5b6000811115612b9357612aea81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a390919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b8a91906138c3565b60405180910390a35b612ba6818461253190919063ffffffff16565b9150509392505050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c0d578290505b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c6e57600081612c6b9190613a5f565b90505b612c8181846119a390919063ffffffff16565b9150509392505050565b60008083118290612cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc99190613721565b60405180910390fd5b5060008385612ce19190613a2e565b9050809150509392505050565b600080831415612d015760009050612d63565b60008284612d0f9190613a5f565b9050828482612d1e9190613a2e565b14612d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5590613823565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115612d8657612d85613cbd565b5b604051908082528060200260200182016040528015612db45781602001602082028036833780820191505090505b5090503081600081518110612dcc57612dcb613c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612e6e57600080fd5b505afa158015612e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea691906131c9565b81600181518110612eba57612eb9613c8e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f2130601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a09565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f8595949392919061390e565b600060405180830381600087803b158015612f9f57600080fd5b505af1158015612fb3573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612fe89291906138de565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561303a573d6000803e3d6000fd5b505050565b61306c30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a09565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806130b86112fa565b426040518863ffffffff1660e01b81526004016130da9695949392919061368a565b6060604051808303818588803b1580156130f357600080fd5b505af1158015613107573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061312c9190613336565b5050505050565b60008135905061314281613fd2565b92915050565b60008151905061315781613fd2565b92915050565b60008135905061316c81613fe9565b92915050565b60008135905061318181614000565b92915050565b60008151905061319681614000565b92915050565b6000602082840312156131b2576131b1613cec565b5b60006131c084828501613133565b91505092915050565b6000602082840312156131df576131de613cec565b5b60006131ed84828501613148565b91505092915050565b6000806040838503121561320d5761320c613cec565b5b600061321b85828601613133565b925050602061322c85828601613133565b9150509250929050565b60008060006060848603121561324f5761324e613cec565b5b600061325d86828701613133565b935050602061326e86828701613133565b925050604061327f86828701613172565b9150509250925092565b600080604083850312156132a05761329f613cec565b5b60006132ae85828601613133565b92505060206132bf8582860161315d565b9150509250929050565b600080604083850312156132e0576132df613cec565b5b60006132ee85828601613133565b92505060206132ff85828601613172565b9150509250929050565b60006020828403121561331f5761331e613cec565b5b600061332d84828501613172565b91505092915050565b60008060006060848603121561334f5761334e613cec565b5b600061335d86828701613187565b935050602061336e86828701613187565b925050604061337f86828701613187565b9150509250925092565b600061339583836133b0565b60208301905092915050565b6133aa81613aff565b82525050565b6133b981613aed565b82525050565b6133c881613aed565b82525050565b60006133d982613993565b6133e381856139b6565b93506133ee83613983565b8060005b8381101561341f5781516134068882613389565b9750613411836139a9565b9250506001810190506133f2565b5085935050505092915050565b61343581613b11565b82525050565b61344481613b54565b82525050565b61345381613b66565b82525050565b60006134648261399e565b61346e81856139c7565b935061347e818560208601613b9c565b61348781613cf1565b840191505092915050565b600061349f6023836139c7565b91506134aa82613d02565b604082019050919050565b60006134c26011836139c7565b91506134cd82613d51565b602082019050919050565b60006134e56026836139c7565b91506134f082613d7a565b604082019050919050565b60006135086022836139c7565b915061351382613dc9565b604082019050919050565b600061352b601b836139c7565b915061353682613e18565b602082019050919050565b600061354e6008836139c7565b915061355982613e41565b602082019050919050565b60006135716007836139c7565b915061357c82613e6a565b602082019050919050565b60006135946021836139c7565b915061359f82613e93565b604082019050919050565b60006135b76020836139c7565b91506135c282613ee2565b602082019050919050565b60006135da6025836139c7565b91506135e582613f0b565b604082019050919050565b60006135fd6024836139c7565b915061360882613f5a565b604082019050919050565b6000613620600d836139c7565b915061362b82613fa9565b602082019050919050565b61363f81613b3d565b82525050565b61364e81613b47565b82525050565b600060208201905061366960008301846133bf565b92915050565b600060208201905061368460008301846133a1565b92915050565b600060c08201905061369f60008301896133bf565b6136ac6020830188613636565b6136b9604083018761344a565b6136c6606083018661344a565b6136d360808301856133bf565b6136e060a0830184613636565b979650505050505050565b6000602082019050613700600083018461342c565b92915050565b600060208201905061371b600083018461343b565b92915050565b6000602082019050818103600083015261373b8184613459565b905092915050565b6000602082019050818103600083015261375c81613492565b9050919050565b6000602082019050818103600083015261377c816134b5565b9050919050565b6000602082019050818103600083015261379c816134d8565b9050919050565b600060208201905081810360008301526137bc816134fb565b9050919050565b600060208201905081810360008301526137dc8161351e565b9050919050565b600060208201905081810360008301526137fc81613541565b9050919050565b6000602082019050818103600083015261381c81613564565b9050919050565b6000602082019050818103600083015261383c81613587565b9050919050565b6000602082019050818103600083015261385c816135aa565b9050919050565b6000602082019050818103600083015261387c816135cd565b9050919050565b6000602082019050818103600083015261389c816135f0565b9050919050565b600060208201905081810360008301526138bc81613613565b9050919050565b60006020820190506138d86000830184613636565b92915050565b60006040820190506138f36000830185613636565b818103602083015261390581846133ce565b90509392505050565b600060a0820190506139236000830188613636565b613930602083018761344a565b818103604083015261394281866133ce565b905061395160608301856133bf565b61395e6080830184613636565b9695505050505050565b600060208201905061397d6000830184613645565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006139e382613b3d565b91506139ee83613b3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a2357613a22613c01565b5b828201905092915050565b6000613a3982613b3d565b9150613a4483613b3d565b925082613a5457613a53613c30565b5b828204905092915050565b6000613a6a82613b3d565b9150613a7583613b3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aae57613aad613c01565b5b828202905092915050565b6000613ac482613b3d565b9150613acf83613b3d565b925082821015613ae257613ae1613c01565b5b828203905092915050565b6000613af882613b1d565b9050919050565b6000613b0a82613b1d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b5f82613b78565b9050919050565b6000613b7182613b3d565b9050919050565b6000613b8382613b8a565b9050919050565b6000613b9582613b1d565b9050919050565b60005b83811015613bba578082015181840152602081019050613b9f565b83811115613bc9576000848401525b50505050565b60006002820490506001821680613be757607f821691505b60208210811415613bfb57613bfa613c5f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f2154726164696e67000000000000000000000000000000000000000000000000600082015250565b7f74726164696e6700000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b613fdb81613aed565b8114613fe657600080fd5b50565b613ff281613b11565b8114613ffd57600080fd5b50565b61400981613b3d565b811461401457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122012885288cf09905136d68bd3cd047d3a55d671297cbbcea9894127fdfae539d264736f6c63430008070033
Deployed Bytecode Sourcemap
7720:13192:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11407:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12701:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14568:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9514:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11684:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13947:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8188:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13402:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8847:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11593:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14457:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8580:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9598:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8409:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9014:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9093:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14668:141;;;;;;;;;;;;;:::i;:::-;;11792:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4057:148;;;;;;;;;;;;;:::i;:::-;;9284:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8084:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13217:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8718:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8886:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8525:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3834:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11498:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8972:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12573:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9324:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12296:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13772:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9632:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9173:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8805:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9562:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8929:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8466:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7977:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8763:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11919:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14274:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9245:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8681:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4213:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14817:79;;;;;;;;;;;;;:::i;:::-;;11407:83;11444:13;11477:5;11470:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11407:83;:::o;12701:161::-;12776:4;12793:39;12802:12;:10;:12::i;:::-;12816:7;12825:6;12793:8;:39::i;:::-;12850:4;12843:11;;12701:161;;;;:::o;14568:92::-;3978:10;3968:20;;:6;;;;;;;;;;:20;;;3960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14646:6:::1;14634:9;:18;;;;14568:92:::0;:::o;9514:41::-;;;;;;;;;;;;;:::o;11684:100::-;11737:7;11764:12;;11757:19;;11684:100;:::o;13947:313::-;14045:4;14062:36;14072:6;14080:9;14091:6;14062:9;:36::i;:::-;;14109:121;14118:6;14126:12;:10;:12::i;:::-;14140:89;14178:6;14140:89;;;;;;;;;;;;;;;;;:11;:19;14152:6;14140:19;;;;;;;;;;;;;;;:33;14160:12;:10;:12::i;:::-;14140:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14109:8;:121::i;:::-;14248:4;14241:11;;13947:313;;;;;:::o;8188:81::-;;;:::o;13402:128::-;13455:7;13482:40;13499:22;13509:11;13499:9;:22::i;:::-;13482:12;;:16;;:40;;;;:::i;:::-;13475:47;;13402:128;:::o;8847:32::-;;;;:::o;11593:83::-;11634:5;11659:9;;;;;;;;;;;11652:16;;11593:83;:::o;12070:218::-;12158:4;12175:83;12184:12;:10;:12::i;:::-;12198:7;12207:50;12246:10;12207:11;:25;12219:12;:10;:12::i;:::-;12207:25;;;;;;;;;;;;;;;:34;12233:7;12207:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12175:8;:83::i;:::-;12276:4;12269:11;;12070:218;;;;:::o;14457:99::-;14510:4;14533:6;:15;14540:7;14533:15;;;;;;;;;;;;;;;;;;;;;;;;;14526:22;;14457:99;;;:::o;8580:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;9598:27::-;;;;:::o;8409:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;9014:72::-;;;;:::o;9093:73::-;;;;:::o;14668:141::-;3978:10;3968:20;;:6;;;;;;;;;;:20;;;3960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14733:15:::1;;14728:1;:20;14720:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;14789:12;14771:15;:30;;;;14668:141::o:0;11792:119::-;11858:7;11885:9;:18;11895:7;11885:18;;;;;;;;;;;;;;;;11878:25;;11792:119;;;:::o;4057:148::-;3978:10;3968:20;;:6;;;;;;;;;;:20;;;3960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4164:1:::1;4127:40;;4148:6;::::0;::::1;;;;;;;;4127:40;;;;;;;;;;;;4195:1;4178:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4057:148::o:0;9284:33::-;;;;:::o;8084:96::-;;;;;;;;;;;;;:::o;13217:175::-;13323:5;13304:24;;:6;:15;13311:7;13304:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;13296:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;13379:5;13361:6;:15;13368:7;13361:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13217:175;;:::o;8718:30::-;;;;:::o;8886:36::-;;;;:::o;8525:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3834:79::-;3872:7;3899:6;;;;;;;;;;;3892:13;;3834:79;:::o;11498:87::-;11537:13;11570:7;11563:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11498:87;:::o;8972:33::-;;;;:::o;12573:120::-;12635:7;12662:23;;12655:30;;12573:120;:::o;9324:39::-;;;;:::o;12296:269::-;12389:4;12406:129;12415:12;:10;:12::i;:::-;12429:7;12438:96;12477:15;12438:96;;;;;;;;;;;;;;;;;:11;:25;12450:12;:10;:12::i;:::-;12438:25;;;;;;;;;;;;;;;:34;12464:7;12438:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12406:8;:129::i;:::-;12553:4;12546:11;;12296:269;;;;:::o;13772:167::-;13850:4;13867:42;13877:12;:10;:12::i;:::-;13891:9;13902:6;13867:9;:42::i;:::-;;13927:4;13920:11;;13772:167;;;;:::o;9632:28::-;;;;:::o;9173:63::-;;;;:::o;8805:35::-;;;;:::o;9562:26::-;;;;;;;;;;;;;:::o;8929:36::-;;;;:::o;8466:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;7977:99::-;;;;;;;;;;;;;:::o;8763:35::-;;;;:::o;11919:143::-;12000:7;12027:11;:18;12039:5;12027:18;;;;;;;;;;;;;;;:27;12046:7;12027:27;;;;;;;;;;;;;;;;12020:34;;11919:143;;;;:::o;14274:175::-;3978:10;3968:20;;:6;;;;;;;;;;:20;;;3960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14380:5:::1;14361:24;;:6;:15;14368:7;14361:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;14353:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;14436:5;14418:6;:15;14425:7;14418:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14274:175:::0;;:::o;9245:32::-;;;;:::o;8681:30::-;;;;:::o;4213:244::-;3978:10;3968:20;;:6;;;;;;;;;;:20;;;3960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4322:1:::1;4302:22;;:8;:22;;;;4294:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4412:8;4383:38;;4404:6;::::0;::::1;;;;;;;;4383:38;;;;;;;;;;;;4441:8;4432:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4213:244:::0;:::o;14817:79::-;3978:10;3968:20;;:6;;;;;;;;;;:20;;;3960:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14887:1:::1;14869:15;:19;;;;14817:79::o:0;1170:181::-;1228:7;1248:9;1264:1;1260;:5;;;;:::i;:::-;1248:17;;1289:1;1284;:6;;1276:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1342:1;1335:8;;;1170:181;;;;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;12870:337::-;12980:1;12963:19;;:5;:19;;;;12955:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13061:1;13042:21;;:7;:21;;;;13034:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13145:6;13115:11;:18;13127:5;13115:18;;;;;;;;;;;;;;;:27;13134:7;13115:27;;;;;;;;;;;;;;;:36;;;;13183:7;13167:32;;13176:5;13167:32;;;13192:6;13167:32;;;;;;:::i;:::-;;;;;;;;12870:337;;;:::o;14904:2480::-;14991:4;15036:1;15018:20;;:6;:20;;;;15010:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15120:1;15099:23;;:9;:23;;;;15091:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15182:6;:14;15189:6;15182:14;;;;;;;;;;;;;;;;;;;;;;;;;15181:15;:37;;;;;15201:6;:17;15208:9;15201:17;;;;;;;;;;;;;;;;;;;;;;;;;15200:18;15181:37;15173:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15259:15;;15255:1;:19;15247:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;15318:1;15306:9;;:13;15302:331;;;15358:1;15340:15;;:19;:43;;;;;15363:12;:20;15376:6;15363:20;;;;;;;;;;;;;;;;;;;;;;;;;15340:43;:89;;;;;15420:9;;15402:15;;:27;;;;:::i;:::-;15387:12;:42;15340:89;15336:154;;;15470:4;15450:6;:17;15457:9;15450:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;15336:154;15527:1;15508:15;;:20;:47;;;;;15532:12;:23;15545:9;15532:23;;;;;;;;;;;;;;;;;;;;;;;;;15508:47;15504:118;;;15594:12;15576:15;:30;;;;15504:118;15302:331;15661:11;;;;;;;;;;;15648:24;;:9;:24;;;:52;;;;;15677:15;:23;15693:6;15677:23;;;;;;;;;;;;;;;;;;;;;;;;;15676:24;15648:52;15645:263;;;15728:15;15746:17;15756:6;15746:9;:17::i;:::-;15728:35;;15794:7;15784:6;:17;15780:103;;;15831:36;15842:24;15853:12;;15842:6;:10;;:24;;;;:::i;:::-;15831:6;:10;;:36;;;;:::i;:::-;15822:45;;15780:103;15711:197;15645:263;15934:11;;;;;;;;;;;15921:24;;:9;:24;;;:62;;;;;15982:1;15949:29;15967:9;15949;:29::i;:::-;:34;15921:62;15918:120;;;16014:12;15999;:27;;;;15918:120;16053:16;;;;;;;;;;;16050:1327;;;16103:41;16118:6;16126:9;16137:6;16103:14;:41::i;:::-;16096:48;;;;16050:1327;16198:28;16229:24;16247:4;16229:9;:24::i;:::-;16198:55;;16268:28;16323:23;;16299:20;:47;;16268:78;;16379:23;:44;;;;;16407:16;;;;;;;;;;;16406:17;16379:44;:69;;;;;16428:12;:20;16441:6;16428:20;;;;;;;;;;;;;;;;;;;;;;;;;16427:21;16379:69;16375:280;;;16505:15;;;;;;;;;;;16486:35;;:6;:35;;;16483:140;;16563:36;16578:20;16563:14;:36::i;:::-;16483:140;16375:280;16688:19;16711:17;:25;16729:6;16711:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;16740:17;:28;16758:9;16740:28;;;;;;;;;;;;;;;;;;;;;;;;;16711:57;16710:176;;16852:34;16860:6;16868:9;16879:6;16852:7;:34::i;:::-;16710:176;;;16815:34;16823:6;16831:9;16842:6;16815:7;:34::i;:::-;16710:176;16688:198;;16924:37;16949:11;16924:9;:20;16934:9;16924:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;16901:9;:20;16911:9;16901:20;;;;;;;;;;;;;;;:60;;;;17011:53;17033:6;17011:53;;;;;;;;;;;;;;;;;:9;:17;17021:6;17011:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16991:9;:17;17001:6;16991:17;;;;;;;;;;;;;;;:73;;;;17130:9;17113:40;;17122:6;17113:40;;;17141:11;17113:40;;;;;;:::i;:::-;;;;;;;;17204:9;;17189:12;;:24;;;;:::i;:::-;17172:12;:42;:67;;;;;17228:11;;;;;;;;;;;17218:21;;:6;:21;;;17172:67;17168:172;;;17274:50;17289:9;17299:11;17312;17274:14;:50::i;:::-;;17168:172;17361:4;17354:11;;;;;14904:2480;;;;;;:::o;1503:192::-;1589:7;1622:1;1617;:6;;1625:12;1609:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1649:9;1665:1;1661;:5;;;;:::i;:::-;1649:17;;1686:1;1679:8;;;1503:192;;;;;:::o;1359:136::-;1417:7;1444:43;1448:1;1451;1444:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1437:50;;1359:136;;;;:::o;1961:132::-;2019:7;2046:39;2050:1;2053;2046:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2039:46;;1961:132;;;;:::o;17392:330::-;17485:4;17522:53;17544:6;17522:53;;;;;;;;;;;;;;;;;:9;:17;17532:6;17522:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17502:9;:17;17512:6;17502:17;;;;;;;;;;;;;;;:73;;;;17609:32;17634:6;17609:9;:20;17619:9;17609:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17586:9;:20;17596:9;17586:20;;;;;;;;;;;;;;;:55;;;;17674:9;17657:35;;17666:6;17657:35;;;17685:6;17657:35;;;;;;:::i;:::-;;;;;;;;17710:4;17703:11;;17392:330;;;;;:::o;17730:1060::-;10115:4;10096:16;;:23;;;;;;;;;;;;;;;;;;17812:19:::1;17834:65;17897:1;17834:58;17867:24;;17834:28;17846:15;;17834:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;17812:87;;17910:21;17934:24;17946:11;17934:7;:11;;:24;;;;:::i;:::-;17910:48;;17971:31;17988:13;17971:16;:31::i;:::-;18013:22;18038:21;18013:46;;18072:19;18094:52;18123:22;18143:1;18123:15;;:19;;:22;;;;:::i;:::-;18094:24;;:28;;:52;;;;:::i;:::-;18072:74;;18167:26;18196:59;18253:1;18196:52;18236:11;18196:35;18215:15;;18196:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18167:88;;18266:23;18292:49;18329:11;18292:32;18311:12;;18292:14;:18;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;18266:75;;18352:26;18381:59;18424:15;18381:38;18400:18;18381:14;:18;;:38;;;;:::i;:::-;:42;;:59;;;;:::i;:::-;18352:88;;18477:1;18456:18;:22;18453:104;;;18493:64;18514:22;;;;;;;;;;;18538:18;18493:20;:64::i;:::-;18453:104;18591:1;18573:15;:19;18570:95;;;18607:58;18628:19;;;;;;;;;;;18649:15;18607:20;:58::i;:::-;18570:95;18702:1;18681:18;:22;:41;;;;;18721:1;18707:11;:15;18681:41;18678:104;;;18737:45;18750:11;18763:18;18737:12;:45::i;:::-;18678:104;17791:999;;;;;;;10161:5:::0;10142:16;;:24;;;;;;;;;;;;;;;;;;17730:1060;:::o;20301:602::-;20387:7;20407:17;20427:1;20407:21;;20442:12;:20;20455:6;20442:20;;;;;;;;;;;;;;;;;;;;;;;;;20439:223;;;20491:38;20525:3;20491:29;20502:17;;20491:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;20479:50;;20439:223;;;20559:12;:23;20572:9;20559:23;;;;;;;;;;;;;;;;;;;;;;;;;20556:106;;;20611:39;20646:3;20611:30;20622:18;;20611:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20599:51;;20556:106;20439:223;20697:1;20685:9;:13;20682:173;;;20742:39;20771:9;20742;:24;20760:4;20742:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20715:9;:24;20733:4;20715:24;;;;;;;;;;;;;;;:66;;;;20826:4;20801:42;;20810:6;20801:42;;;20833:9;20801:42;;;;;;:::i;:::-;;;;;;;;20682:173;20874:21;20885:9;20874:6;:10;;:21;;;;:::i;:::-;20867:28;;;20301:602;;;;;:::o;19982:305::-;20068:7;20088:17;20108:1;20088:21;;20130:17;:25;20148:6;20130:25;;;;;;;;;;;;;;;;;;;;;;;;;20126:46;;;20166:6;20156:16;;20126:46;20188:17;:28;20206:9;20188:28;;;;;;;;;;;;;;;;;;;;;;;;;20183:55;;20237:1;20227:9;:11;;;;:::i;:::-;20217:21;;20183:55;20258:21;20269:9;20258:6;:10;;:21;;;;:::i;:::-;20251:28;;;19982:305;;;;;:::o;2101:278::-;2187:7;2219:1;2215;:5;2222:12;2207:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2246:9;2262:1;2258;:5;;;;:::i;:::-;2246:17;;2370:1;2363:8;;;2101:278;;;;;:::o;1703:250::-;1761:7;1790:1;1785;:6;1781:47;;;1815:1;1808:8;;;;1781:47;1840:9;1856:1;1852;:5;;;;:::i;:::-;1840:17;;1885:1;1880;1876;:5;;;;:::i;:::-;:10;1868:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1944:1;1937:8;;;1703:250;;;;;:::o;18802:652::-;18928:21;18966:1;18952:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18928:40;;18997:4;18979;18984:1;18979:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19023:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19013:4;19018:1;19013:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19056:62;19073:4;19088:15;;;;;;;;;;;19106:11;19056:8;:62::i;:::-;19155:15;;;;;;;;;;;:66;;;19236:11;19262:1;19306:4;19333;19369:15;19155:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19411:35;19428:11;19441:4;19411:35;;;;;;;:::i;:::-;;;;;;;;18857:597;18802:652;:::o;13538:126::-;13630:9;:18;;:26;13649:6;13630:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13538:126;;:::o;19462:511::-;19610:62;19627:4;19642:15;;;;;;;;;;;19660:11;19610:8;:62::i;:::-;19713:15;;;;;;;;;;;:31;;;19752:9;19785:4;19805:11;19831:1;19874;19917:7;:5;:7::i;:::-;19939:15;19713:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19462:511;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;585:143;;;;:::o;734:329::-;793:6;842:2;830:9;821:7;817:23;813:32;810:119;;;848:79;;:::i;:::-;810:119;968:1;993:53;1038:7;1029:6;1018:9;1014:22;993:53;:::i;:::-;983:63;;939:117;734:329;;;;:::o;1069:351::-;1139:6;1188:2;1176:9;1167:7;1163:23;1159:32;1156:119;;;1194:79;;:::i;:::-;1156:119;1314:1;1339:64;1395:7;1386:6;1375:9;1371:22;1339:64;:::i;:::-;1329:74;;1285:128;1069:351;;;;:::o;1426:474::-;1494:6;1502;1551:2;1539:9;1530:7;1526:23;1522:32;1519:119;;;1557:79;;:::i;:::-;1519:119;1677:1;1702:53;1747:7;1738:6;1727:9;1723:22;1702:53;:::i;:::-;1692:63;;1648:117;1804:2;1830:53;1875:7;1866:6;1855:9;1851:22;1830:53;:::i;:::-;1820:63;;1775:118;1426:474;;;;;:::o;1906:619::-;1983:6;1991;1999;2048:2;2036:9;2027:7;2023:23;2019:32;2016:119;;;2054:79;;:::i;:::-;2016:119;2174:1;2199:53;2244:7;2235:6;2224:9;2220:22;2199:53;:::i;:::-;2189:63;;2145:117;2301:2;2327:53;2372:7;2363:6;2352:9;2348:22;2327:53;:::i;:::-;2317:63;;2272:118;2429:2;2455:53;2500:7;2491:6;2480:9;2476:22;2455:53;:::i;:::-;2445:63;;2400:118;1906:619;;;;;:::o;2531:468::-;2596:6;2604;2653:2;2641:9;2632:7;2628:23;2624:32;2621:119;;;2659:79;;:::i;:::-;2621:119;2779:1;2804:53;2849:7;2840:6;2829:9;2825:22;2804:53;:::i;:::-;2794:63;;2750:117;2906:2;2932:50;2974:7;2965:6;2954:9;2950:22;2932:50;:::i;:::-;2922:60;;2877:115;2531:468;;;;;:::o;3005:474::-;3073:6;3081;3130:2;3118:9;3109:7;3105:23;3101:32;3098:119;;;3136:79;;:::i;:::-;3098:119;3256:1;3281:53;3326:7;3317:6;3306:9;3302:22;3281:53;:::i;:::-;3271:63;;3227:117;3383:2;3409:53;3454:7;3445:6;3434:9;3430:22;3409:53;:::i;:::-;3399:63;;3354:118;3005:474;;;;;:::o;3485:329::-;3544:6;3593:2;3581:9;3572:7;3568:23;3564:32;3561:119;;;3599:79;;:::i;:::-;3561:119;3719:1;3744:53;3789:7;3780:6;3769:9;3765:22;3744:53;:::i;:::-;3734:63;;3690:117;3485:329;;;;:::o;3820:663::-;3908:6;3916;3924;3973:2;3961:9;3952:7;3948:23;3944:32;3941:119;;;3979:79;;:::i;:::-;3941:119;4099:1;4124:64;4180:7;4171:6;4160:9;4156:22;4124:64;:::i;:::-;4114:74;;4070:128;4237:2;4263:64;4319:7;4310:6;4299:9;4295:22;4263:64;:::i;:::-;4253:74;;4208:129;4376:2;4402:64;4458:7;4449:6;4438:9;4434:22;4402:64;:::i;:::-;4392:74;;4347:129;3820:663;;;;;:::o;4489:179::-;4558:10;4579:46;4621:3;4613:6;4579:46;:::i;:::-;4657:4;4652:3;4648:14;4634:28;;4489:179;;;;:::o;4674:142::-;4777:32;4803:5;4777:32;:::i;:::-;4772:3;4765:45;4674:142;;:::o;4822:108::-;4899:24;4917:5;4899:24;:::i;:::-;4894:3;4887:37;4822:108;;:::o;4936:118::-;5023:24;5041:5;5023:24;:::i;:::-;5018:3;5011:37;4936:118;;:::o;5090:732::-;5209:3;5238:54;5286:5;5238:54;:::i;:::-;5308:86;5387:6;5382:3;5308:86;:::i;:::-;5301:93;;5418:56;5468:5;5418:56;:::i;:::-;5497:7;5528:1;5513:284;5538:6;5535:1;5532:13;5513:284;;;5614:6;5608:13;5641:63;5700:3;5685:13;5641:63;:::i;:::-;5634:70;;5727:60;5780:6;5727:60;:::i;:::-;5717:70;;5573:224;5560:1;5557;5553:9;5548:14;;5513:284;;;5517:14;5813:3;5806:10;;5214:608;;;5090:732;;;;:::o;5828:109::-;5909:21;5924:5;5909:21;:::i;:::-;5904:3;5897:34;5828:109;;:::o;5943:183::-;6056:63;6113:5;6056:63;:::i;:::-;6051:3;6044:76;5943:183;;:::o;6132:147::-;6227:45;6266:5;6227:45;:::i;:::-;6222:3;6215:58;6132:147;;:::o;6285:364::-;6373:3;6401:39;6434:5;6401:39;:::i;:::-;6456:71;6520:6;6515:3;6456:71;:::i;:::-;6449:78;;6536:52;6581:6;6576:3;6569:4;6562:5;6558:16;6536:52;:::i;:::-;6613:29;6635:6;6613:29;:::i;:::-;6608:3;6604:39;6597:46;;6377:272;6285:364;;;;:::o;6655:366::-;6797:3;6818:67;6882:2;6877:3;6818:67;:::i;:::-;6811:74;;6894:93;6983:3;6894:93;:::i;:::-;7012:2;7007:3;7003:12;6996:19;;6655:366;;;:::o;7027:::-;7169:3;7190:67;7254:2;7249:3;7190:67;:::i;:::-;7183:74;;7266:93;7355:3;7266:93;:::i;:::-;7384:2;7379:3;7375:12;7368:19;;7027:366;;;:::o;7399:::-;7541:3;7562:67;7626:2;7621:3;7562:67;:::i;:::-;7555:74;;7638:93;7727:3;7638:93;:::i;:::-;7756:2;7751:3;7747:12;7740:19;;7399:366;;;:::o;7771:::-;7913:3;7934:67;7998:2;7993:3;7934:67;:::i;:::-;7927:74;;8010:93;8099:3;8010:93;:::i;:::-;8128:2;8123:3;8119:12;8112:19;;7771:366;;;:::o;8143:::-;8285:3;8306:67;8370:2;8365:3;8306:67;:::i;:::-;8299:74;;8382:93;8471:3;8382:93;:::i;:::-;8500:2;8495:3;8491:12;8484:19;;8143:366;;;:::o;8515:365::-;8657:3;8678:66;8742:1;8737:3;8678:66;:::i;:::-;8671:73;;8753:93;8842:3;8753:93;:::i;:::-;8871:2;8866:3;8862:12;8855:19;;8515:365;;;:::o;8886:::-;9028:3;9049:66;9113:1;9108:3;9049:66;:::i;:::-;9042:73;;9124:93;9213:3;9124:93;:::i;:::-;9242:2;9237:3;9233:12;9226:19;;8886:365;;;:::o;9257:366::-;9399:3;9420:67;9484:2;9479:3;9420:67;:::i;:::-;9413:74;;9496:93;9585:3;9496:93;:::i;:::-;9614:2;9609:3;9605:12;9598:19;;9257:366;;;:::o;9629:::-;9771:3;9792:67;9856:2;9851:3;9792:67;:::i;:::-;9785:74;;9868:93;9957:3;9868:93;:::i;:::-;9986:2;9981:3;9977:12;9970:19;;9629:366;;;:::o;10001:::-;10143:3;10164:67;10228:2;10223:3;10164:67;:::i;:::-;10157:74;;10240:93;10329:3;10240:93;:::i;:::-;10358:2;10353:3;10349:12;10342:19;;10001:366;;;:::o;10373:::-;10515:3;10536:67;10600:2;10595:3;10536:67;:::i;:::-;10529:74;;10612:93;10701:3;10612:93;:::i;:::-;10730:2;10725:3;10721:12;10714:19;;10373:366;;;:::o;10745:::-;10887:3;10908:67;10972:2;10967:3;10908:67;:::i;:::-;10901:74;;10984:93;11073:3;10984:93;:::i;:::-;11102:2;11097:3;11093:12;11086:19;;10745:366;;;:::o;11117:118::-;11204:24;11222:5;11204:24;:::i;:::-;11199:3;11192:37;11117:118;;:::o;11241:112::-;11324:22;11340:5;11324:22;:::i;:::-;11319:3;11312:35;11241:112;;:::o;11359:222::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11503:71;11571:1;11560:9;11556:17;11547:6;11503:71;:::i;:::-;11359:222;;;;:::o;11587:254::-;11696:4;11734:2;11723:9;11719:18;11711:26;;11747:87;11831:1;11820:9;11816:17;11807:6;11747:87;:::i;:::-;11587:254;;;;:::o;11847:807::-;12096:4;12134:3;12123:9;12119:19;12111:27;;12148:71;12216:1;12205:9;12201:17;12192:6;12148:71;:::i;:::-;12229:72;12297:2;12286:9;12282:18;12273:6;12229:72;:::i;:::-;12311:80;12387:2;12376:9;12372:18;12363:6;12311:80;:::i;:::-;12401;12477:2;12466:9;12462:18;12453:6;12401:80;:::i;:::-;12491:73;12559:3;12548:9;12544:19;12535:6;12491:73;:::i;:::-;12574;12642:3;12631:9;12627:19;12618:6;12574:73;:::i;:::-;11847:807;;;;;;;;;:::o;12660:210::-;12747:4;12785:2;12774:9;12770:18;12762:26;;12798:65;12860:1;12849:9;12845:17;12836:6;12798:65;:::i;:::-;12660:210;;;;:::o;12876:274::-;12995:4;13033:2;13022:9;13018:18;13010:26;;13046:97;13140:1;13129:9;13125:17;13116:6;13046:97;:::i;:::-;12876:274;;;;:::o;13156:313::-;13269:4;13307:2;13296:9;13292:18;13284:26;;13356:9;13350:4;13346:20;13342:1;13331:9;13327:17;13320:47;13384:78;13457:4;13448:6;13384:78;:::i;:::-;13376:86;;13156:313;;;;:::o;13475:419::-;13641:4;13679:2;13668:9;13664:18;13656:26;;13728:9;13722:4;13718:20;13714:1;13703:9;13699:17;13692:47;13756:131;13882:4;13756:131;:::i;:::-;13748:139;;13475:419;;;:::o;13900:::-;14066:4;14104:2;14093:9;14089:18;14081:26;;14153:9;14147:4;14143:20;14139:1;14128:9;14124:17;14117:47;14181:131;14307:4;14181:131;:::i;:::-;14173:139;;13900:419;;;:::o;14325:::-;14491:4;14529:2;14518:9;14514:18;14506:26;;14578:9;14572:4;14568:20;14564:1;14553:9;14549:17;14542:47;14606:131;14732:4;14606:131;:::i;:::-;14598:139;;14325:419;;;:::o;14750:::-;14916:4;14954:2;14943:9;14939:18;14931:26;;15003:9;14997:4;14993:20;14989:1;14978:9;14974:17;14967:47;15031:131;15157:4;15031:131;:::i;:::-;15023:139;;14750:419;;;:::o;15175:::-;15341:4;15379:2;15368:9;15364:18;15356:26;;15428:9;15422:4;15418:20;15414:1;15403:9;15399:17;15392:47;15456:131;15582:4;15456:131;:::i;:::-;15448:139;;15175:419;;;:::o;15600:::-;15766:4;15804:2;15793:9;15789:18;15781:26;;15853:9;15847:4;15843:20;15839:1;15828:9;15824:17;15817:47;15881:131;16007:4;15881:131;:::i;:::-;15873:139;;15600:419;;;:::o;16025:::-;16191:4;16229:2;16218:9;16214:18;16206:26;;16278:9;16272:4;16268:20;16264:1;16253:9;16249:17;16242:47;16306:131;16432:4;16306:131;:::i;:::-;16298:139;;16025:419;;;:::o;16450:::-;16616:4;16654:2;16643:9;16639:18;16631:26;;16703:9;16697:4;16693:20;16689:1;16678:9;16674:17;16667:47;16731:131;16857:4;16731:131;:::i;:::-;16723:139;;16450:419;;;:::o;16875:::-;17041:4;17079:2;17068:9;17064:18;17056:26;;17128:9;17122:4;17118:20;17114:1;17103:9;17099:17;17092:47;17156:131;17282:4;17156:131;:::i;:::-;17148:139;;16875:419;;;:::o;17300:::-;17466:4;17504:2;17493:9;17489:18;17481:26;;17553:9;17547:4;17543:20;17539:1;17528:9;17524:17;17517:47;17581:131;17707:4;17581:131;:::i;:::-;17573:139;;17300:419;;;:::o;17725:::-;17891:4;17929:2;17918:9;17914:18;17906:26;;17978:9;17972:4;17968:20;17964:1;17953:9;17949:17;17942:47;18006:131;18132:4;18006:131;:::i;:::-;17998:139;;17725:419;;;:::o;18150:::-;18316:4;18354:2;18343:9;18339:18;18331:26;;18403:9;18397:4;18393:20;18389:1;18378:9;18374:17;18367:47;18431:131;18557:4;18431:131;:::i;:::-;18423:139;;18150:419;;;:::o;18575:222::-;18668:4;18706:2;18695:9;18691:18;18683:26;;18719:71;18787:1;18776:9;18772:17;18763:6;18719:71;:::i;:::-;18575:222;;;;:::o;18803:483::-;18974:4;19012:2;19001:9;18997:18;18989:26;;19025:71;19093:1;19082:9;19078:17;19069:6;19025:71;:::i;:::-;19143:9;19137:4;19133:20;19128:2;19117:9;19113:18;19106:48;19171:108;19274:4;19265:6;19171:108;:::i;:::-;19163:116;;18803:483;;;;;:::o;19292:831::-;19555:4;19593:3;19582:9;19578:19;19570:27;;19607:71;19675:1;19664:9;19660:17;19651:6;19607:71;:::i;:::-;19688:80;19764:2;19753:9;19749:18;19740:6;19688:80;:::i;:::-;19815:9;19809:4;19805:20;19800:2;19789:9;19785:18;19778:48;19843:108;19946:4;19937:6;19843:108;:::i;:::-;19835:116;;19961:72;20029:2;20018:9;20014:18;20005:6;19961:72;:::i;:::-;20043:73;20111:3;20100:9;20096:19;20087:6;20043:73;:::i;:::-;19292:831;;;;;;;;:::o;20129:214::-;20218:4;20256:2;20245:9;20241:18;20233:26;;20269:67;20333:1;20322:9;20318:17;20309:6;20269:67;:::i;:::-;20129:214;;;;:::o;20430:132::-;20497:4;20520:3;20512:11;;20550:4;20545:3;20541:14;20533:22;;20430:132;;;:::o;20568:114::-;20635:6;20669:5;20663:12;20653:22;;20568:114;;;:::o;20688:99::-;20740:6;20774:5;20768:12;20758:22;;20688:99;;;:::o;20793:113::-;20863:4;20895;20890:3;20886:14;20878:22;;20793:113;;;:::o;20912:184::-;21011:11;21045:6;21040:3;21033:19;21085:4;21080:3;21076:14;21061:29;;20912:184;;;;:::o;21102:169::-;21186:11;21220:6;21215:3;21208:19;21260:4;21255:3;21251:14;21236:29;;21102:169;;;;:::o;21277:305::-;21317:3;21336:20;21354:1;21336:20;:::i;:::-;21331:25;;21370:20;21388:1;21370:20;:::i;:::-;21365:25;;21524:1;21456:66;21452:74;21449:1;21446:81;21443:107;;;21530:18;;:::i;:::-;21443:107;21574:1;21571;21567:9;21560:16;;21277:305;;;;:::o;21588:185::-;21628:1;21645:20;21663:1;21645:20;:::i;:::-;21640:25;;21679:20;21697:1;21679:20;:::i;:::-;21674:25;;21718:1;21708:35;;21723:18;;:::i;:::-;21708:35;21765:1;21762;21758:9;21753:14;;21588:185;;;;:::o;21779:348::-;21819:7;21842:20;21860:1;21842:20;:::i;:::-;21837:25;;21876:20;21894:1;21876:20;:::i;:::-;21871:25;;22064:1;21996:66;21992:74;21989:1;21986:81;21981:1;21974:9;21967:17;21963:105;21960:131;;;22071:18;;:::i;:::-;21960:131;22119:1;22116;22112:9;22101:20;;21779:348;;;;:::o;22133:191::-;22173:4;22193:20;22211:1;22193:20;:::i;:::-;22188:25;;22227:20;22245:1;22227:20;:::i;:::-;22222:25;;22266:1;22263;22260:8;22257:34;;;22271:18;;:::i;:::-;22257:34;22316:1;22313;22309:9;22301:17;;22133:191;;;;:::o;22330:96::-;22367:7;22396:24;22414:5;22396:24;:::i;:::-;22385:35;;22330:96;;;:::o;22432:104::-;22477:7;22506:24;22524:5;22506:24;:::i;:::-;22495:35;;22432:104;;;:::o;22542:90::-;22576:7;22619:5;22612:13;22605:21;22594:32;;22542:90;;;:::o;22638:126::-;22675:7;22715:42;22708:5;22704:54;22693:65;;22638:126;;;:::o;22770:77::-;22807:7;22836:5;22825:16;;22770:77;;;:::o;22853:86::-;22888:7;22928:4;22921:5;22917:16;22906:27;;22853:86;;;:::o;22945:152::-;23021:9;23054:37;23085:5;23054:37;:::i;:::-;23041:50;;22945:152;;;:::o;23103:121::-;23161:9;23194:24;23212:5;23194:24;:::i;:::-;23181:37;;23103:121;;;:::o;23230:126::-;23280:9;23313:37;23344:5;23313:37;:::i;:::-;23300:50;;23230:126;;;:::o;23362:113::-;23412:9;23445:24;23463:5;23445:24;:::i;:::-;23432:37;;23362:113;;;:::o;23481:307::-;23549:1;23559:113;23573:6;23570:1;23567:13;23559:113;;;23658:1;23653:3;23649:11;23643:18;23639:1;23634:3;23630:11;23623:39;23595:2;23592:1;23588:10;23583:15;;23559:113;;;23690:6;23687:1;23684:13;23681:101;;;23770:1;23761:6;23756:3;23752:16;23745:27;23681:101;23530:258;23481:307;;;:::o;23794:320::-;23838:6;23875:1;23869:4;23865:12;23855:22;;23922:1;23916:4;23912:12;23943:18;23933:81;;23999:4;23991:6;23987:17;23977:27;;23933:81;24061:2;24053:6;24050:14;24030:18;24027:38;24024:84;;;24080:18;;:::i;:::-;24024:84;23845:269;23794:320;;;:::o;24120:180::-;24168:77;24165:1;24158:88;24265:4;24262:1;24255:15;24289:4;24286:1;24279:15;24306:180;24354:77;24351:1;24344:88;24451:4;24448:1;24441:15;24475:4;24472:1;24465:15;24492:180;24540:77;24537:1;24530:88;24637:4;24634:1;24627:15;24661:4;24658:1;24651:15;24678:180;24726:77;24723:1;24716:88;24823:4;24820:1;24813:15;24847:4;24844:1;24837:15;24864:180;24912:77;24909:1;24902:88;25009:4;25006:1;24999:15;25033:4;25030:1;25023:15;25173:117;25282:1;25279;25272:12;25296:102;25337:6;25388:2;25384:7;25379:2;25372:5;25368:14;25364:28;25354:38;;25296:102;;;:::o;25404:222::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:5;25608:2;25600:6;25596:15;25589:30;25404:222;:::o;25632:167::-;25772:19;25768:1;25760:6;25756:14;25749:43;25632:167;:::o;25805:225::-;25945:34;25941:1;25933:6;25929:14;25922:58;26014:8;26009:2;26001:6;25997:15;25990:33;25805:225;:::o;26036:221::-;26176:34;26172:1;26164:6;26160:14;26153:58;26245:4;26240:2;26232:6;26228:15;26221:29;26036:221;:::o;26263:177::-;26403:29;26399:1;26391:6;26387:14;26380:53;26263:177;:::o;26446:158::-;26586:10;26582:1;26574:6;26570:14;26563:34;26446:158;:::o;26610:157::-;26750:9;26746:1;26738:6;26734:14;26727:33;26610:157;:::o;26773:220::-;26913:34;26909:1;26901:6;26897:14;26890:58;26982:3;26977:2;26969:6;26965:15;26958:28;26773:220;:::o;26999:182::-;27139:34;27135:1;27127:6;27123:14;27116:58;26999:182;:::o;27187:224::-;27327:34;27323:1;27315:6;27311:14;27304:58;27396:7;27391:2;27383:6;27379:15;27372:32;27187:224;:::o;27417:223::-;27557:34;27553:1;27545:6;27541:14;27534:58;27626:6;27621:2;27613:6;27609:15;27602:31;27417:223;:::o;27646:163::-;27786:15;27782:1;27774:6;27770:14;27763:39;27646:163;:::o;27815:122::-;27888:24;27906:5;27888:24;:::i;:::-;27881:5;27878:35;27868:63;;27927:1;27924;27917:12;27868:63;27815:122;:::o;27943:116::-;28013:21;28028:5;28013:21;:::i;:::-;28006:5;28003:32;27993:60;;28049:1;28046;28039:12;27993:60;27943:116;:::o;28065:122::-;28138:24;28156:5;28138:24;:::i;:::-;28131:5;28128:35;28118:63;;28177:1;28174;28167:12;28118:63;28065:122;:::o
Swarm Source
ipfs://12885288cf09905136d68bd3cd047d3a55d671297cbbcea9894127fdfae539d2
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)