ERC-20
Overview
Max Total Supply
420,696,969 42069
Holders
109
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,674,024.574227260233004691 42069Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FourTwentySixtyNine
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-06 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IPancakeFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IPancakeRouter { function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract FourTwentySixtyNine is IBEP20, Ownable { mapping (address => uint) private _balances; mapping (address => mapping (address => uint)) private _allowances; mapping(address => bool) public excludedFromFees; mapping(address=>bool) public isAMM; //Token Info string private constant _name = '42069'; string private constant _symbol = '42069'; uint8 private constant _decimals = 18; uint public constant InitialSupply= 420696969 * 10**_decimals; uint public MaxWallet=InitialSupply/100; //TODO: mainnet //TestNet //address private constant PancakeRouter=0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; //MainNet address private constant PancakeRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //variables that track balanceLimit and sellLimit, //can be updated based on circulating supply and Sell- and BalanceLimitDividers uint private _circulatingSupply =InitialSupply; //Tracks the current Taxes, different Taxes can be applied for buy/sell/transfer uint public buyTax = 60; uint public sellTax = 90; uint public transferTax = 0; uint public burnTax=0; uint public liquidityTax=167; uint public marketingTax=833; uint constant TAX_DENOMINATOR=1000; uint constant MAXTAXDENOMINATOR=5; address private _pancakePairAddress; IPancakeRouter private _pancakeRouter; //TODO: marketingWallet address public marketingWallet; //Only marketingWallet can change marketingWallet function ChangeMarketingWallet(address newWallet) public{ require(msg.sender==marketingWallet); marketingWallet=newWallet; } //modifier for functions only the team can call modifier onlyTeam() { require(_isTeam(msg.sender), "Caller not Team or Owner"); _; } //Checks if address is in Team, is needed to give Team access even if contract is renounced //Team doesn't have access to critical Functions that could turn this into a Rugpull(Exept liquidity unlocks) function _isTeam(address addr) private view returns (bool){ return addr==owner()||addr==marketingWallet; } //////////////////////////////////////////////////////////////////////////////////////////////////////// //Constructor/////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// constructor () { uint deployerBalance=_circulatingSupply; _balances[msg.sender] = deployerBalance; emit Transfer(address(0), msg.sender, deployerBalance); // Pancake Router _pancakeRouter = IPancakeRouter(PancakeRouter); //Creates a Pancake Pair _pancakePairAddress = IPancakeFactory(_pancakeRouter.factory()).createPair(address(this), _pancakeRouter.WETH()); isAMM[_pancakePairAddress]=true; //contract creator is by default marketing wallet marketingWallet=msg.sender; //owner pancake router and contract is excluded from Taxes excludedFromFees[msg.sender]=true; excludedFromFees[PancakeRouter]=true; excludedFromFees[address(this)]=true; } //////////////////////////////////////////////////////////////////////////////////////////////////////// //Transfer functionality//////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// //transfer function, every transfer runs through this function function _transfer(address sender, address recipient, uint amount) private{ require(sender != address(0), "Transfer from zero"); require(recipient != address(0), "Transfer to zero"); //Pick transfer if(excludedFromFees[sender] || excludedFromFees[recipient]) _feelessTransfer(sender, recipient, amount); else{ //once trading is enabled, it can't be turned off again require(LaunchTimestamp>0,"trading not yet enabled"); _taxedTransfer(sender,recipient,amount); } } //applies taxes, checks for limits, locks generates autoLP and stakingBNB, and autostakes function _taxedTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; require(senderBalance >= amount, "Transfer exceeds balance"); bool isBuy=isAMM[sender]; bool isSell=isAMM[recipient]; uint tax; if(isSell){ tax=sellTax; } else if(isBuy){ require((_balances[recipient]+amount)<=MaxWallet); uint BuyTaxDuration=1 minutes; if(block.timestamp<LaunchTimestamp+BuyTaxDuration){ tax=_getStartTax(BuyTaxDuration,999); }else tax=buyTax; } else tax=transferTax; if((sender!=_pancakePairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier)) _swapContractToken(false); //Calculates the exact token amount for each tax uint tokensToBeBurnt=_calculateFee(amount, tax, burnTax); //staking and liquidity Tax get treated the same, only during conversion they get split uint contractToken=_calculateFee(amount, tax, marketingTax+liquidityTax); //Subtract the Taxed Tokens from the amount uint taxedAmount=amount-(tokensToBeBurnt + contractToken); _balances[sender]-=amount; //Adds the taxed tokens to the contract wallet _balances[address(this)] += contractToken; //Burns tokens _circulatingSupply-=tokensToBeBurnt; _balances[recipient]+=taxedAmount; emit Transfer(sender,recipient,taxedAmount); } //Start tax drops depending on the time since launch, enables bot protection and Dump protection function _getStartTax(uint duration, uint maxTax) private view returns (uint){ uint timeSinceLaunch=block.timestamp-LaunchTimestamp; return maxTax-((maxTax-50)*timeSinceLaunch/duration); } //Calculates the token that should be taxed function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) { return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR); } //Feeless transfer only transfers and autostakes function _feelessTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; require(senderBalance >= amount, "Transfer exceeds balance"); _balances[sender]-=amount; _balances[recipient]+=amount; emit Transfer(sender,recipient,amount); } //////////////////////////////////////////////////////////////////////////////////////////////////////// //Swap Contract Tokens////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// //Locks the swap if already swapping bool private _isSwappingContractModifier; modifier lockTheSwap { _isSwappingContractModifier = true; _; _isSwappingContractModifier = false; } //Sets the permille of pancake pair to trigger liquifying taxed token uint public swapTreshold=2; function setSwapTreshold(uint newSwapTresholdPermille) public onlyTeam{ require(newSwapTresholdPermille<=10);//MaxTreshold= 1% swapTreshold=newSwapTresholdPermille; } //Sets the max Liquidity where swaps for Liquidity still happen uint public overLiquifyTreshold=150; function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) public onlyTeam{ require(newOverLiquifyTresholdPermille<=1000); overLiquifyTreshold=newOverLiquifyTresholdPermille; } //Sets the taxes Burn+marketing+liquidity tax needs to equal the TAX_DENOMINATOR (1000) //buy, sell and transfer tax are limited by the MAXTAXDENOMINATOR event OnSetTaxes(uint buy, uint sell, uint transfer_, uint burn, uint marketing,uint liquidity); function SetTaxes(uint buy, uint sell, uint transfer_, uint burn, uint marketing,uint liquidity) public onlyTeam{ uint maxTax=TAX_DENOMINATOR/MAXTAXDENOMINATOR; require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax"); require(burn+marketing+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator"); buyTax=buy; sellTax=sell; transferTax=transfer_; marketingTax=marketing; liquidityTax=liquidity; burnTax=burn; emit OnSetTaxes(buy, sell, transfer_, burn, marketing,liquidity); } //If liquidity is over the treshold, convert 100% of Token to Marketing BNB to avoid overliquifying function isOverLiquified() public view returns(bool){ return _balances[_pancakePairAddress]>_circulatingSupply*overLiquifyTreshold/1000; } //swaps the token on the contract for Marketing BNB and LP Token. //always swaps a percentage of the LP pair balance to avoid price impact function _swapContractToken(bool ignoreLimits) private lockTheSwap{ uint contractBalance=_balances[address(this)]; uint totalTax=liquidityTax+marketingTax; //swaps each time it reaches swapTreshold of pancake pair to avoid large prize impact uint tokenToSwap=_balances[_pancakePairAddress]*swapTreshold/1000; //nothing to swap at no tax if(totalTax==0)return; //only swap if contractBalance is larger than tokenToSwap, and totalTax is unequal to 0 //Ignore limits swaps 100% of the contractBalance if(ignoreLimits) tokenToSwap=_balances[address(this)]; else if(contractBalance<tokenToSwap) return; //splits the token in TokenForLiquidity and tokenForMarketing //if over liquified, 0 tokenForLiquidity uint tokenForLiquidity= isOverLiquified()?0 :(tokenToSwap*liquidityTax)/totalTax; uint tokenForMarketing= tokenToSwap-tokenForLiquidity; uint LiqHalf=tokenForLiquidity/2; //swaps marktetingToken and the liquidity token half for BNB uint swapToken=LiqHalf+tokenForMarketing; //Gets the initial BNB balance, so swap won't touch any contract BNB uint initialBNBBalance = address(this).balance; _swapTokenForBNB(swapToken); uint newBNB=(address(this).balance - initialBNBBalance); //calculates the amount of BNB belonging to the LP-Pair and converts them to LP if(tokenForLiquidity>0){ uint liqBNB = (newBNB*LiqHalf)/swapToken; _addLiquidity(LiqHalf, liqBNB); } //Sends all the marketing BNB to the marketingWallet (bool sent,)=marketingWallet.call{value:address(this).balance}(""); sent=true; } //swaps tokens on the contract for BNB function _swapTokenForBNB(uint amount) private { _approve(address(this), address(_pancakeRouter), amount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _pancakeRouter.WETH(); try _pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ){} catch{} } //Adds Liquidity directly to the contract where LP are locked function _addLiquidity(uint tokenamount, uint bnbamount) private { _approve(address(this), address(_pancakeRouter), tokenamount); _pancakeRouter.addLiquidityETH{value: bnbamount}( address(this), tokenamount, 0, 0, owner(), block.timestamp ); } //////////////////////////////////////////////////////////////////////////////////////////////////////// //Settings////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// //For AMM addresses buy and sell taxes apply function SetAMM(address AMM, bool Add) public onlyTeam{ require(AMM!=_pancakePairAddress,"can't change pancake"); isAMM[AMM]=Add; } function setMaxWallet(uint maxWallet) public onlyTeam{ require(maxWallet>InitialSupply/200); MaxWallet=maxWallet; } bool public manualSwap; //switches autoLiquidity and marketing BNB generation during transfers function SwitchManualSwap(bool manual) public onlyTeam{ manualSwap=manual; } //manually converts contract token to LP and staking BNB function SwapContractToken() public onlyTeam{ _swapContractToken(true); } event ExcludeAccount(address account, bool exclude); //Exclude/Include account from fees (eg. CEX) function ExcludeAccountFromFees(address account, bool exclude) public onlyTeam{ require(account!=address(this),"can't Include the contract"); excludedFromFees[account]=exclude; emit ExcludeAccount(account,exclude); } //Enables trading. Sets the launch timestamp to the given Value event OnEnableTrading(); uint public LaunchTimestamp; function SetupEnableTrading() public onlyTeam{ require(LaunchTimestamp==0,"AlreadyLaunched"); LaunchTimestamp=block.timestamp; emit OnEnableTrading(); } //////////////////////////////////////////////////////////////////////////////////////////////////////// //external////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////// receive() external payable {} function getOwner() external view override returns (address) { return owner(); } function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint) { return _circulatingSupply; } function balanceOf(address account) external view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address _owner, address spender) external view override returns (uint) { return _allowances[_owner][spender]; } function approve(address spender, uint amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address owner, address spender, uint amount) private { require(owner != address(0), "Approve from zero"); require(spender != address(0), "Approve to zero"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferFrom(address sender, address recipient, uint amount) external override returns (bool) { _transfer(sender, recipient, amount); uint currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount, "Transfer > allowance"); _approve(sender, msg.sender, currentAllowance - amount); return true; } // IBEP20 - Helpers function increaseAllowance(address spender, uint addedValue) external returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) { uint currentAllowance = _allowances[msg.sender][spender]; require(currentAllowance >= subtractedValue, "<0 allowance"); _approve(msg.sender, spender, currentAllowance - subtractedValue); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"ChangeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LaunchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetupEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","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":"burnTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"overLiquifyTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","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":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526064620000146012600a62000451565b6200002490631913538962000469565b62000030919062000483565b600555620000416012600a62000451565b6200005190631913538962000469565b600655603c600755605a60085560006009556000600a5560a7600b55610341600c55600260105560966011553480156200008a57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000178573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019e9190620004a6565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000201573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002279190620004a6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b9190620004a6565b600d80546001600160a01b03929092166001600160a01b031992831681179091556000908152600460209081526040808320805460ff199081166001908117909255600f805490961633908117909655948452600390925280832080548516831790557ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba88054851683179055308352909120805490921617905550620004d1565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003935781600019048211156200037757620003776200033c565b808516156200038557918102915b93841c939080029062000357565b509250929050565b600082620003ac575060016200044b565b81620003bb575060006200044b565b8160018114620003d45760028114620003df57620003ff565b60019150506200044b565b60ff841115620003f357620003f36200033c565b50506001821b6200044b565b5060208310610133831016604e8410600b841016171562000424575081810a6200044b565b62000430838362000352565b80600019048211156200044757620004476200033c565b0290505b92915050565b60006200046260ff8416836200039b565b9392505050565b80820281158282048414176200044b576200044b6200033c565b600082620004a157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004b957600080fd5b81516001600160a01b03811681146200046257600080fd5b611ee080620004e16000396000f3fe60806040526004361061024a5760003560e01c806375f0a87411610139578063b40d09e2116100b6578063d46b6a301161007a578063d46b6a3014610639578063dbe66ca014610669578063dd62ed3e14610699578063e0d2f9eb146106df578063e52fb9ec146106ff578063f2fde38b1461071557600080fd5b8063b40d09e2146105b7578063bc43d849146105cd578063be617fa0146105ed578063cc1776d314610603578063cfd1940e1461061957600080fd5b8063893d20e8116100fd578063893d20e8146105595780638da5cb5b1461055957806395d89b4114610256578063a457c2d714610577578063a9059cbb1461059757600080fd5b806375f0a874146104b65780637b9e987a146104ee5780638124f7ac14610503578063817d4bff14610519578063868b01411461053957600080fd5b806339509351116101c75780635149f9841161018b5780635149f9841461041157806351bc3c85146104315780635d0044ca1461044b57806370a082311461046b578063715018a6146104a157600080fd5b8063395093511461039b57806341aec357146103bb57806346e35f03146103d05780634a4a9a68146103e55780634f7041a5146103fb57600080fd5b80631d4eaead1161020e5780631d4eaead146103125780631eb25d131461032857806323b872dd1461033d5780632d48f84f1461035d578063313ce5671461037f57600080fd5b806306fdde0314610256578063095ea7b3146102935780630eff4c64146102c357806318160ddd146102e75780631d2cb02d146102fc57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b506040805180820182526005815264343230363960d81b6020820152905161028a9190611a48565b60405180910390f35b34801561029f57600080fd5b506102b36102ae366004611aae565b610735565b604051901515815260200161028a565b3480156102cf57600080fd5b506102d960115481565b60405190815260200161028a565b3480156102f357600080fd5b506006546102d9565b34801561030857600080fd5b506102d9600c5481565b34801561031e57600080fd5b506102d9600a5481565b34801561033457600080fd5b506102d961074c565b34801561034957600080fd5b506102b3610358366004611ada565b610769565b34801561036957600080fd5b5061037d610378366004611b1b565b610805565b005b34801561038b57600080fd5b506040516012815260200161028a565b3480156103a757600080fd5b506102b36103b6366004611aae565b610984565b3480156103c757600080fd5b5061037d6109bb565b3480156103dc57600080fd5b506102b36109ec565b3480156103f157600080fd5b506102d960055481565b34801561040757600080fd5b506102d960075481565b34801561041d57600080fd5b5061037d61042c366004611b73565b610a2c565b34801561043d57600080fd5b506012546102b39060ff1681565b34801561045757600080fd5b5061037d610466366004611ba8565b610ad1565b34801561047757600080fd5b506102d9610486366004611bc1565b6001600160a01b031660009081526001602052604090205490565b3480156104ad57600080fd5b5061037d610b2c565b3480156104c257600080fd5b50600f546104d6906001600160a01b031681565b6040516001600160a01b03909116815260200161028a565b3480156104fa57600080fd5b5061037d610bdf565b34801561050f57600080fd5b506102d960095481565b34801561052557600080fd5b5061037d610534366004611bc1565b610c75565b34801561054557600080fd5b5061037d610554366004611be5565b610cae565b34801561056557600080fd5b506000546001600160a01b03166104d6565b34801561058357600080fd5b506102b3610592366004611aae565b610ce6565b3480156105a357600080fd5b506102b36105b2366004611aae565b610d62565b3480156105c357600080fd5b506102d960135481565b3480156105d957600080fd5b5061037d6105e8366004611ba8565b610d6f565b3480156105f957600080fd5b506102d9600b5481565b34801561060f57600080fd5b506102d960085481565b34801561062557600080fd5b5061037d610634366004611ba8565b610da8565b34801561064557600080fd5b506102b3610654366004611bc1565b60046020526000908152604090205460ff1681565b34801561067557600080fd5b506102b3610684366004611bc1565b60036020526000908152604090205460ff1681565b3480156106a557600080fd5b506102d96106b4366004611c00565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106eb57600080fd5b5061037d6106fa366004611b73565b610de0565b34801561070b57600080fd5b506102d960105481565b34801561072157600080fd5b5061037d610730366004611bc1565b610ec0565b6000610742338484610fe9565b5060015b92915050565b6107586012600a611d33565b610766906319135389611d42565b81565b60006107768484846110dc565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107e65760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b6107fa85336107f58685611d59565b610fe9565b506001949350505050565b61080e33611221565b61082a5760405162461bcd60e51b81526004016107dd90611d6c565b600061083960056103e8611da3565b905080871115801561084b5750808611155b80156108575750808511155b6108985760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b60448201526064016107dd565b6103e8826108a68587611dc5565b6108b09190611dc5565b146109075760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b60648201526084016107dd565b600787905560088690556009859055600c839055600b829055600a8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107429185906107f5908690611dc5565b6109c433611221565b6109e05760405162461bcd60e51b81526004016107dd90611d6c565b6109ea600161124e565b565b60006103e8601154600654610a019190611d42565b610a0b9190611da3565b600d546001600160a01b031660009081526001602052604090205411919050565b610a3533611221565b610a515760405162461bcd60e51b81526004016107dd90611d6c565b600d546001600160a01b0390811690831603610aa65760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b60448201526064016107dd565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b610ada33611221565b610af65760405162461bcd60e51b81526004016107dd90611d6c565b60c8610b046012600a611d33565b610b12906319135389611d42565b610b1c9190611da3565b8111610b2757600080fd5b600555565b33610b3f6000546001600160a01b031690565b6001600160a01b031614610b955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107dd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610be833611221565b610c045760405162461bcd60e51b81526004016107dd90611d6c565b60135415610c465760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b60448201526064016107dd565b426013556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b600f546001600160a01b03163314610c8c57600080fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610cb733611221565b610cd35760405162461bcd60e51b81526004016107dd90611d6c565b6012805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610d495760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b60448201526064016107dd565b610d5833856107f58685611d59565b5060019392505050565b60006107423384846110dc565b610d7833611221565b610d945760405162461bcd60e51b81526004016107dd90611d6c565b6103e8811115610da357600080fd5b601155565b610db133611221565b610dcd5760405162461bcd60e51b81526004016107dd90611d6c565b600a811115610ddb57600080fd5b601055565b610de933611221565b610e055760405162461bcd60e51b81526004016107dd90611d6c565b306001600160a01b03831603610e5d5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e747261637400000000000060448201526064016107dd565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910160405180910390a15050565b33610ed36000546001600160a01b031690565b6001600160a01b031614610f295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107dd565b6001600160a01b038116610f8e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110335760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b60448201526064016107dd565b6001600160a01b03821661107b5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b60448201526064016107dd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111275760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b60448201526064016107dd565b6001600160a01b0382166111705760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b60448201526064016107dd565b6001600160a01b03831660009081526003602052604090205460ff16806111af57506001600160a01b03821660009081526003602052604090205460ff165b156111c4576111bf83838361140a565b505050565b6000601354116112165760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c656400000000000000000060448201526064016107dd565b6111bf83838361151d565b600080546001600160a01b0383811691161480610746575050600f546001600160a01b0390811691161490565b600f805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916112849190611dc5565b601054600d546001600160a01b0316600090815260016020526040812054929350916103e8916112b391611d42565b6112bd9190611da3565b9050816000036112cf575050506113fa565b83156112eb5750306000908152600160205260409020546112fb565b808310156112fb575050506113fa565b60006113056109ec565b6113275782600b54836113189190611d42565b6113229190611da3565b61132a565b60005b905060006113388284611d59565b90506000611347600284611da3565b905060006113558383611dc5565b905047611361826117b1565b600061136d8247611d59565b9050851561139a576000836113828684611d42565b61138c9190611da3565b90506113988582611900565b505b600f546040516000916001600160a01b03169047908381818185875af1925050503d80600081146113e7576040519150601f19603f3d011682016040523d82523d6000602084013e6113ec565b606091505b505050505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b0383166000908152600160205260409020548181101561146e5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b60448201526064016107dd565b6001600160a01b03841660009081526001602052604081208054849290611496908490611d59565b90915550506001600160a01b038316600090815260016020526040812080548492906114c3908490611dc5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150f91815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156115815760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b60448201526064016107dd565b6001600160a01b0380851660009081526004602052604080822054928616825281205460ff92831692169081156115bb575060085461162f565b821561162a576005546001600160a01b0387166000908152600160205260409020546115e8908790611dc5565b11156115f357600080fd5b601354603c90611604908290611dc5565b42101561161e57611617816103e76119d5565b9150611624565b60075491505b5061162f565b506009545b600d546001600160a01b03888116911614801590611650575060125460ff16155b80156116665750600f54600160a01b900460ff16155b1561167557611675600061124e565b60006116848683600a54611a1b565b905060006116a28784600b54600c5461169d9190611dc5565b611a1b565b905060006116b08284611dc5565b6116ba9089611d59565b6001600160a01b038b16600090815260016020526040812080549293508a929091906116e7908490611d59565b9091555050306000908152600160205260408120805484929061170b908490611dc5565b9250508190555082600660008282546117249190611d59565b90915550506001600160a01b03891660009081526001602052604081208054839290611751908490611dc5565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179d91815260200190565b60405180910390a350505050505050505050565b600e546117c99030906001600160a01b031683610fe9565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117fe576117fe611dd8565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190611dee565b8160018151811061188e5761188e611dd8565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac947906118d4908590600090869030904290600401611e0b565b600060405180830381600087803b1580156118ee57600080fd5b505af19250505080156111bf57505050565b600e546119189030906001600160a01b031684610fe9565b600e546001600160a01b031663f305d7198230856000806119416000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156119a9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ce9190611e7c565b5050505050565b600080601354426119e69190611d59565b905083816119f5603286611d59565b6119ff9190611d42565b611a099190611da3565b611a139084611d59565b949350505050565b6000611a296103e880611d42565b82611a348587611d42565b611a3e9190611d42565b611a139190611da3565b600060208083528351808285015260005b81811015611a7557858101830151858201604001528201611a59565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611aab57600080fd5b50565b60008060408385031215611ac157600080fd5b8235611acc81611a96565b946020939093013593505050565b600080600060608486031215611aef57600080fd5b8335611afa81611a96565b92506020840135611b0a81611a96565b929592945050506040919091013590565b60008060008060008060c08789031215611b3457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80358015158114611b6e57600080fd5b919050565b60008060408385031215611b8657600080fd5b8235611b9181611a96565b9150611b9f60208401611b5e565b90509250929050565b600060208284031215611bba57600080fd5b5035919050565b600060208284031215611bd357600080fd5b8135611bde81611a96565b9392505050565b600060208284031215611bf757600080fd5b611bde82611b5e565b60008060408385031215611c1357600080fd5b8235611c1e81611a96565b91506020830135611c2e81611a96565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611c8a578160001904821115611c7057611c70611c39565b80851615611c7d57918102915b93841c9390800290611c54565b509250929050565b600082611ca157506001610746565b81611cae57506000610746565b8160018114611cc45760028114611cce57611cea565b6001915050610746565b60ff841115611cdf57611cdf611c39565b50506001821b610746565b5060208310610133831016604e8410600b8410161715611d0d575081810a610746565b611d178383611c4f565b8060001904821115611d2b57611d2b611c39565b029392505050565b6000611bde60ff841683611c92565b808202811582820484141761074657610746611c39565b8181038181111561074657610746611c39565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600082611dc057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074657610746611c39565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e0057600080fd5b8151611bde81611a96565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e5b5784516001600160a01b031683529383019391830191600101611e36565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611e9157600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a631ec60d687830df04d999b043e90eb8910b56930ad4c79fda65ba9e5624ba264736f6c63430008110033
Deployed Bytecode
0x60806040526004361061024a5760003560e01c806375f0a87411610139578063b40d09e2116100b6578063d46b6a301161007a578063d46b6a3014610639578063dbe66ca014610669578063dd62ed3e14610699578063e0d2f9eb146106df578063e52fb9ec146106ff578063f2fde38b1461071557600080fd5b8063b40d09e2146105b7578063bc43d849146105cd578063be617fa0146105ed578063cc1776d314610603578063cfd1940e1461061957600080fd5b8063893d20e8116100fd578063893d20e8146105595780638da5cb5b1461055957806395d89b4114610256578063a457c2d714610577578063a9059cbb1461059757600080fd5b806375f0a874146104b65780637b9e987a146104ee5780638124f7ac14610503578063817d4bff14610519578063868b01411461053957600080fd5b806339509351116101c75780635149f9841161018b5780635149f9841461041157806351bc3c85146104315780635d0044ca1461044b57806370a082311461046b578063715018a6146104a157600080fd5b8063395093511461039b57806341aec357146103bb57806346e35f03146103d05780634a4a9a68146103e55780634f7041a5146103fb57600080fd5b80631d4eaead1161020e5780631d4eaead146103125780631eb25d131461032857806323b872dd1461033d5780632d48f84f1461035d578063313ce5671461037f57600080fd5b806306fdde0314610256578063095ea7b3146102935780630eff4c64146102c357806318160ddd146102e75780631d2cb02d146102fc57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b506040805180820182526005815264343230363960d81b6020820152905161028a9190611a48565b60405180910390f35b34801561029f57600080fd5b506102b36102ae366004611aae565b610735565b604051901515815260200161028a565b3480156102cf57600080fd5b506102d960115481565b60405190815260200161028a565b3480156102f357600080fd5b506006546102d9565b34801561030857600080fd5b506102d9600c5481565b34801561031e57600080fd5b506102d9600a5481565b34801561033457600080fd5b506102d961074c565b34801561034957600080fd5b506102b3610358366004611ada565b610769565b34801561036957600080fd5b5061037d610378366004611b1b565b610805565b005b34801561038b57600080fd5b506040516012815260200161028a565b3480156103a757600080fd5b506102b36103b6366004611aae565b610984565b3480156103c757600080fd5b5061037d6109bb565b3480156103dc57600080fd5b506102b36109ec565b3480156103f157600080fd5b506102d960055481565b34801561040757600080fd5b506102d960075481565b34801561041d57600080fd5b5061037d61042c366004611b73565b610a2c565b34801561043d57600080fd5b506012546102b39060ff1681565b34801561045757600080fd5b5061037d610466366004611ba8565b610ad1565b34801561047757600080fd5b506102d9610486366004611bc1565b6001600160a01b031660009081526001602052604090205490565b3480156104ad57600080fd5b5061037d610b2c565b3480156104c257600080fd5b50600f546104d6906001600160a01b031681565b6040516001600160a01b03909116815260200161028a565b3480156104fa57600080fd5b5061037d610bdf565b34801561050f57600080fd5b506102d960095481565b34801561052557600080fd5b5061037d610534366004611bc1565b610c75565b34801561054557600080fd5b5061037d610554366004611be5565b610cae565b34801561056557600080fd5b506000546001600160a01b03166104d6565b34801561058357600080fd5b506102b3610592366004611aae565b610ce6565b3480156105a357600080fd5b506102b36105b2366004611aae565b610d62565b3480156105c357600080fd5b506102d960135481565b3480156105d957600080fd5b5061037d6105e8366004611ba8565b610d6f565b3480156105f957600080fd5b506102d9600b5481565b34801561060f57600080fd5b506102d960085481565b34801561062557600080fd5b5061037d610634366004611ba8565b610da8565b34801561064557600080fd5b506102b3610654366004611bc1565b60046020526000908152604090205460ff1681565b34801561067557600080fd5b506102b3610684366004611bc1565b60036020526000908152604090205460ff1681565b3480156106a557600080fd5b506102d96106b4366004611c00565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106eb57600080fd5b5061037d6106fa366004611b73565b610de0565b34801561070b57600080fd5b506102d960105481565b34801561072157600080fd5b5061037d610730366004611bc1565b610ec0565b6000610742338484610fe9565b5060015b92915050565b6107586012600a611d33565b610766906319135389611d42565b81565b60006107768484846110dc565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107e65760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b6107fa85336107f58685611d59565b610fe9565b506001949350505050565b61080e33611221565b61082a5760405162461bcd60e51b81526004016107dd90611d6c565b600061083960056103e8611da3565b905080871115801561084b5750808611155b80156108575750808511155b6108985760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b60448201526064016107dd565b6103e8826108a68587611dc5565b6108b09190611dc5565b146109075760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b60648201526084016107dd565b600787905560088690556009859055600c839055600b829055600a8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916107429185906107f5908690611dc5565b6109c433611221565b6109e05760405162461bcd60e51b81526004016107dd90611d6c565b6109ea600161124e565b565b60006103e8601154600654610a019190611d42565b610a0b9190611da3565b600d546001600160a01b031660009081526001602052604090205411919050565b610a3533611221565b610a515760405162461bcd60e51b81526004016107dd90611d6c565b600d546001600160a01b0390811690831603610aa65760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b60448201526064016107dd565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b610ada33611221565b610af65760405162461bcd60e51b81526004016107dd90611d6c565b60c8610b046012600a611d33565b610b12906319135389611d42565b610b1c9190611da3565b8111610b2757600080fd5b600555565b33610b3f6000546001600160a01b031690565b6001600160a01b031614610b955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107dd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610be833611221565b610c045760405162461bcd60e51b81526004016107dd90611d6c565b60135415610c465760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b60448201526064016107dd565b426013556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b600f546001600160a01b03163314610c8c57600080fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610cb733611221565b610cd35760405162461bcd60e51b81526004016107dd90611d6c565b6012805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610d495760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b60448201526064016107dd565b610d5833856107f58685611d59565b5060019392505050565b60006107423384846110dc565b610d7833611221565b610d945760405162461bcd60e51b81526004016107dd90611d6c565b6103e8811115610da357600080fd5b601155565b610db133611221565b610dcd5760405162461bcd60e51b81526004016107dd90611d6c565b600a811115610ddb57600080fd5b601055565b610de933611221565b610e055760405162461bcd60e51b81526004016107dd90611d6c565b306001600160a01b03831603610e5d5760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e747261637400000000000060448201526064016107dd565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed4910160405180910390a15050565b33610ed36000546001600160a01b031690565b6001600160a01b031614610f295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107dd565b6001600160a01b038116610f8e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107dd565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110335760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b60448201526064016107dd565b6001600160a01b03821661107b5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b60448201526064016107dd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111275760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b60448201526064016107dd565b6001600160a01b0382166111705760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b60448201526064016107dd565b6001600160a01b03831660009081526003602052604090205460ff16806111af57506001600160a01b03821660009081526003602052604090205460ff165b156111c4576111bf83838361140a565b505050565b6000601354116112165760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c656400000000000000000060448201526064016107dd565b6111bf83838361151d565b600080546001600160a01b0383811691161480610746575050600f546001600160a01b0390811691161490565b600f805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916112849190611dc5565b601054600d546001600160a01b0316600090815260016020526040812054929350916103e8916112b391611d42565b6112bd9190611da3565b9050816000036112cf575050506113fa565b83156112eb5750306000908152600160205260409020546112fb565b808310156112fb575050506113fa565b60006113056109ec565b6113275782600b54836113189190611d42565b6113229190611da3565b61132a565b60005b905060006113388284611d59565b90506000611347600284611da3565b905060006113558383611dc5565b905047611361826117b1565b600061136d8247611d59565b9050851561139a576000836113828684611d42565b61138c9190611da3565b90506113988582611900565b505b600f546040516000916001600160a01b03169047908381818185875af1925050503d80600081146113e7576040519150601f19603f3d011682016040523d82523d6000602084013e6113ec565b606091505b505050505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b0383166000908152600160205260409020548181101561146e5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b60448201526064016107dd565b6001600160a01b03841660009081526001602052604081208054849290611496908490611d59565b90915550506001600160a01b038316600090815260016020526040812080548492906114c3908490611dc5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150f91815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156115815760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b60448201526064016107dd565b6001600160a01b0380851660009081526004602052604080822054928616825281205460ff92831692169081156115bb575060085461162f565b821561162a576005546001600160a01b0387166000908152600160205260409020546115e8908790611dc5565b11156115f357600080fd5b601354603c90611604908290611dc5565b42101561161e57611617816103e76119d5565b9150611624565b60075491505b5061162f565b506009545b600d546001600160a01b03888116911614801590611650575060125460ff16155b80156116665750600f54600160a01b900460ff16155b1561167557611675600061124e565b60006116848683600a54611a1b565b905060006116a28784600b54600c5461169d9190611dc5565b611a1b565b905060006116b08284611dc5565b6116ba9089611d59565b6001600160a01b038b16600090815260016020526040812080549293508a929091906116e7908490611d59565b9091555050306000908152600160205260408120805484929061170b908490611dc5565b9250508190555082600660008282546117249190611d59565b90915550506001600160a01b03891660009081526001602052604081208054839290611751908490611dc5565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179d91815260200190565b60405180910390a350505050505050505050565b600e546117c99030906001600160a01b031683610fe9565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117fe576117fe611dd8565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190611dee565b8160018151811061188e5761188e611dd8565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac947906118d4908590600090869030904290600401611e0b565b600060405180830381600087803b1580156118ee57600080fd5b505af19250505080156111bf57505050565b600e546119189030906001600160a01b031684610fe9565b600e546001600160a01b031663f305d7198230856000806119416000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156119a9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119ce9190611e7c565b5050505050565b600080601354426119e69190611d59565b905083816119f5603286611d59565b6119ff9190611d42565b611a099190611da3565b611a139084611d59565b949350505050565b6000611a296103e880611d42565b82611a348587611d42565b611a3e9190611d42565b611a139190611da3565b600060208083528351808285015260005b81811015611a7557858101830151858201604001528201611a59565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611aab57600080fd5b50565b60008060408385031215611ac157600080fd5b8235611acc81611a96565b946020939093013593505050565b600080600060608486031215611aef57600080fd5b8335611afa81611a96565b92506020840135611b0a81611a96565b929592945050506040919091013590565b60008060008060008060c08789031215611b3457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80358015158114611b6e57600080fd5b919050565b60008060408385031215611b8657600080fd5b8235611b9181611a96565b9150611b9f60208401611b5e565b90509250929050565b600060208284031215611bba57600080fd5b5035919050565b600060208284031215611bd357600080fd5b8135611bde81611a96565b9392505050565b600060208284031215611bf757600080fd5b611bde82611b5e565b60008060408385031215611c1357600080fd5b8235611c1e81611a96565b91506020830135611c2e81611a96565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611c8a578160001904821115611c7057611c70611c39565b80851615611c7d57918102915b93841c9390800290611c54565b509250929050565b600082611ca157506001610746565b81611cae57506000610746565b8160018114611cc45760028114611cce57611cea565b6001915050610746565b60ff841115611cdf57611cdf611c39565b50506001821b610746565b5060208310610133831016604e8410600b8410161715611d0d575081810a610746565b611d178383611c4f565b8060001904821115611d2b57611d2b611c39565b029392505050565b6000611bde60ff841683611c92565b808202811582820484141761074657610746611c39565b8181038181111561074657610746611c39565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600082611dc057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074657610746611c39565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e0057600080fd5b8151611bde81611a96565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e5b5784516001600160a01b031683529383019391830191600101611e36565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611e9157600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a631ec60d687830df04d999b043e90eb8910b56930ad4c79fda65ba9e5624ba264736f6c63430008110033
Deployed Bytecode Sourcemap
3386:16793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17866:94;;;;;;;;;;-1:-1:-1;17947:5:0;;;;;;;;;;;-1:-1:-1;;;17947:5:0;;;;17866:94;;;;17947:5;17866:94;:::i;:::-;;;;;;;;18739:158;;;;;;;;;;-1:-1:-1;18739:158:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;18739:158:0;1023:187:1;11328:35:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;11328:35:0;1215:177:1;18176:105:0;;;;;;;;;;-1:-1:-1;18255:18:0;;18176:105;;4611:28;;;;;;;;;;;;;;;;4548:21;;;;;;;;;;;;;;;;3822:61;;;;;;;;;;;;;:::i;19207:386::-;;;;;;;;;;-1:-1:-1;19207:386:0;;;;;:::i;:::-;;:::i;11853:608::-;;;;;;;;;;-1:-1:-1;11853:608:0;;;;;:::i;:::-;;:::i;:::-;;18074:94;;;;;;;;;;-1:-1:-1;18074:94:0;;3813:2;2528:36:1;;2516:2;2501:18;18074:94:0;2386:184:1;19628:202:0;;;;;;;;;;-1:-1:-1;19628:202:0;;;;;:::i;:::-;;:::i;16616:83::-;;;;;;;;;;;;;:::i;12578:152::-;;;;;;;;;;;;;:::i;3890:39::-;;;;;;;;;;;;;;;;4453:23;;;;;;;;;;;;;;;;16049:154;;;;;;;;;;-1:-1:-1;16049:154:0;;;;;:::i;:::-;;:::i;16353:22::-;;;;;;;;;;-1:-1:-1;16353:22:0;;;;;;;;16209:138;;;;;;;;;;-1:-1:-1;16209:138:0;;;;;:::i;:::-;;:::i;18289:118::-;;;;;;;;;;-1:-1:-1;18289:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;18381:18:0;18357:4;18381:18;;;:9;:18;;;;;;;18289:118;2844:140;;;;;;;;;;;;;:::i;4864:30::-;;;;;;;;;;-1:-1:-1;4864:30:0;;;;-1:-1:-1;;;;;4864:30:0;;;;;;-1:-1:-1;;;;;3661:32:1;;;3643:51;;3631:2;3616:18;4864:30:0;3497:203:1;17201:184:0;;;;;;;;;;;;;:::i;4514:27::-;;;;;;;;;;;;;;;;4956:147;;;;;;;;;;-1:-1:-1;4956:147:0;;;;;:::i;:::-;;:::i;16458:90::-;;;;;;;;;;-1:-1:-1;16458:90:0;;;;;:::i;:::-;;:::i;17764:94::-;;;;;;;;;;-1:-1:-1;17816:7:0;2268:6;-1:-1:-1;;;;;2268:6:0;17764:94;;19838:336;;;;;;;;;;-1:-1:-1;19838:336:0;;;;;:::i;:::-;;:::i;18415:164::-;;;;;;;;;;-1:-1:-1;18415:164:0;;;;;:::i;:::-;;:::i;17167:27::-;;;;;;;;;;;;;;;;11370:211;;;;;;;;;;-1:-1:-1;11370:211:0;;;;;:::i;:::-;;:::i;4576:28::-;;;;;;;;;;;;;;;;4483:24;;;;;;;;;;;;;;;;11064:189;;;;;;;;;;-1:-1:-1;11064:189:0;;;;;:::i;:::-;;:::i;3624:35::-;;;;;;;;;;-1:-1:-1;3624:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3569:48;;;;;;;;;;-1:-1:-1;3569:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18587:144;;;;;;;;;;-1:-1:-1;18587:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;18695:19:0;;;18671:4;18695:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18587:144;16814:248;;;;;;;;;;-1:-1:-1;16814:248:0;;;;;:::i;:::-;;:::i;11031:26::-;;;;;;;;;;;;;;;;3139:236;;;;;;;;;;-1:-1:-1;3139:236:0;;;;;:::i;:::-;;:::i;18739:158::-;18813:4;18830:37;18839:10;18851:7;18860:6;18830:8;:37::i;:::-;-1:-1:-1;18885:4:0;18739:158;;;;;:::o;3822:61::-;3870:13;3813:2;3870;:13;:::i;:::-;3858:25;;:9;:25;:::i;:::-;3822:61;:::o;19207:386::-;19304:4;19321:36;19331:6;19339:9;19350:6;19321:9;:36::i;:::-;-1:-1:-1;;;;;19394:19:0;;19370:21;19394:19;;;:11;:19;;;;;;;;19414:10;19394:31;;;;;;;;19444:26;;;;19436:59;;;;-1:-1:-1;;;19436:59:0;;6173:2:1;19436:59:0;;;6155:21:1;6212:2;6192:18;;;6185:30;-1:-1:-1;;;6231:18:1;;;6224:50;6291:18;;19436:59:0;;;;;;;;;19508:55;19517:6;19525:10;19537:25;19556:6;19537:16;:25;:::i;:::-;19508:8;:55::i;:::-;-1:-1:-1;19581:4:0;;19207:386;-1:-1:-1;;;;19207:386:0:o;11853:608::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;11976:11:::1;11988:33;4719:1;4676:4;11988:33;:::i;:::-;11976:45;;12045:6;12040:3;:11;;:25;;;;;12059:6;12053:4;:12;;12040:25;:44;;;;;12078:6;12067:9;:17;;12040:44;12032:74;;;::::0;-1:-1:-1;;;12032:74:0;;7230:2:1;12032:74:0::1;::::0;::::1;7212:21:1::0;7269:2;7249:18;;;7242:30;-1:-1:-1;;;7288:18:1;;;7281:48;7346:18;;12032:74:0::1;7028:342:1::0;12032:74:0::1;4676:4;12140:9:::0;12125:14:::1;12130:9:::0;12125:4;:14:::1;:::i;:::-;:24;;;;:::i;:::-;:41;12117:86;;;::::0;-1:-1:-1;;;12117:86:0;;7707:2:1;12117:86:0::1;::::0;::::1;7689:21:1::0;7746:2;7726:18;;;7719:30;7785:34;7765:18;;;7758:62;-1:-1:-1;;;7836:18:1;;;7829:31;7877:19;;12117:86:0::1;7505:397:1::0;12117:86:0::1;12224:6;:10:::0;;;12245:7:::1;:12:::0;;;12268:11:::1;:21:::0;;;12300:12:::1;:22:::0;;;12333:12:::1;:22:::0;;;12366:7:::1;:12:::0;;;12394:59:::1;::::0;;8194:25:1;;;8250:2;8235:18;;8228:34;;;8278:18;;;8271:34;;;8336:2;8321:18;;8314:34;;;8379:3;8364:19;;8357:35;;;8423:3;8408:19;;8401:35;;;12394:59:0::1;::::0;8181:3:1;8166:19;12394:59:0::1;;;;;;;11965:496;11853:608:::0;;;;;;:::o;19628:202::-;19733:10;19707:4;19754:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19754:32:0;;;;;;;;;;19707:4;;19724:76;;19745:7;;19754:45;;19789:10;;19754:45;:::i;16616:83::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;16667:24:::1;16686:4;16667:18;:24::i;:::-;16616:83::o:0;12578:152::-;12625:4;12718;12698:19;;12679:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;12658:19;;-1:-1:-1;;;;;12658:19:0;12648:30;;;;:9;:30;;;;;;:74;;12578:152;-1:-1:-1;12578:152:0:o;16049:154::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;16127:19:::1;::::0;-1:-1:-1;;;;;16127:19:0;;::::1;16122:24:::0;;::::1;::::0;16114:56:::1;;;::::0;-1:-1:-1;;;16114:56:0;;8649:2:1;16114:56:0::1;::::0;::::1;8631:21:1::0;8688:2;8668:18;;;8661:30;-1:-1:-1;;;8707:18:1;;;8700:50;8767:18;;16114:56:0::1;8447:344:1::0;16114:56:0::1;-1:-1:-1::0;;;;;16181:10:0;;;::::1;;::::0;;;:5:::1;:10;::::0;;;;:14;;-1:-1:-1;;16181:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16049:154::o;16209:138::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;16305:3:::1;3870:13;3813:2;3870;:13;:::i;:::-;3858:25;::::0;:9:::1;:25;:::i;:::-;16291:17;;;;:::i;:::-;16281:9;:27;16273:36;;;::::0;::::1;;16320:9;:19:::0;16209:138::o;2844:140::-;2426:10;2415:7;2241;2268:6;-1:-1:-1;;;;;2268:6:0;;2203:79;2415:7;-1:-1:-1;;;;;2415:21:0;;2407:66;;;;-1:-1:-1;;;2407:66:0;;8998:2:1;2407:66:0;;;8980:21:1;;;9017:18;;;9010:30;9076:34;9056:18;;;9049:62;9128:18;;2407:66:0;8796:356:1;2407:66:0;2943:1:::1;2927:6:::0;;2906:40:::1;::::0;-1:-1:-1;;;;;2927:6:0;;::::1;::::0;2906:40:::1;::::0;2943:1;;2906:40:::1;2974:1;2957:19:::0;;-1:-1:-1;;;;;;2957:19:0::1;::::0;;2844:140::o;17201:184::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;17265:15:::1;::::0;:18;17257:45:::1;;;::::0;-1:-1:-1;;;17257:45:0;;9359:2:1;17257:45:0::1;::::0;::::1;9341:21:1::0;9398:2;9378:18;;;9371:30;-1:-1:-1;;;9417:18:1;;;9410:45;9472:18;;17257:45:0::1;9157:339:1::0;17257:45:0::1;17329:15;17313;:31:::0;17360:17:::1;::::0;::::1;::::0;;;::::1;17201:184::o:0;4956:147::-;5043:15;;-1:-1:-1;;;;;5043:15:0;5031:10;:27;5023:36;;;;;;5070:15;:25;;-1:-1:-1;;;;;;5070:25:0;-1:-1:-1;;;;;5070:25:0;;;;;;;;;;4956:147::o;16458:90::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;16523:10:::1;:17:::0;;-1:-1:-1;;16523:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16458:90::o;19838:336::-;19975:10;19922:4;19963:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19963:32:0;;;;;;;;;;20014:35;;;;20006:60;;;;-1:-1:-1;;;20006:60:0;;9703:2:1;20006:60:0;;;9685:21:1;9742:2;9722:18;;;9715:30;-1:-1:-1;;;9761:18:1;;;9754:42;9813:18;;20006:60:0;9501:336:1;20006:60:0;20079:65;20088:10;20100:7;20109:34;20128:15;20109:16;:34;:::i;20079:65::-;-1:-1:-1;20162:4:0;;19838:336;-1:-1:-1;;;19838:336:0:o;18415:164::-;18492:4;18509:40;18519:10;18531:9;18542:6;18509:9;:40::i;11370:211::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;11507:4:::1;11475:30;:36;;11467:45;;;::::0;::::1;;11523:19;:50:::0;11370:211::o;11064:189::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;11178:2:::1;11153:23;:27;;11145:36;;;::::0;::::1;;11209:12;:36:::0;11064:189::o;16814:248::-;5201:19;5209:10;5201:7;:19::i;:::-;5193:56;;;;-1:-1:-1;;;5193:56:0;;;;;;;:::i;:::-;16928:4:::1;-1:-1:-1::0;;;;;16911:22:0;::::1;::::0;16903:60:::1;;;::::0;-1:-1:-1;;;16903:60:0;;10044:2:1;16903:60:0::1;::::0;::::1;10026:21:1::0;10083:2;10063:18;;;10056:30;10122:28;10102:18;;;10095:56;10168:18;;16903:60:0::1;9842:350:1::0;16903:60:0::1;-1:-1:-1::0;;;;;16974:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;16974:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17023:31;;10365:51:1;;;10432:18;;;10425:50;17023:31:0::1;::::0;10338:18:1;17023:31:0::1;;;;;;;16814:248:::0;;:::o;3139:236::-;2426:10;2415:7;2241;2268:6;-1:-1:-1;;;;;2268:6:0;;2203:79;2415:7;-1:-1:-1;;;;;2415:21:0;;2407:66;;;;-1:-1:-1;;;2407:66:0;;8998:2:1;2407:66:0;;;8980:21:1;;;9017:18;;;9010:30;9076:34;9056:18;;;9049:62;9128:18;;2407:66:0;8796:356:1;2407:66:0;-1:-1:-1;;;;;3220:22:0;::::1;3212:73;;;::::0;-1:-1:-1;;;3212:73:0;;10688:2:1;3212:73:0::1;::::0;::::1;10670:21:1::0;10727:2;10707:18;;;10700:30;10766:34;10746:18;;;10739:62;-1:-1:-1;;;10817:18:1;;;10810:36;10863:19;;3212:73:0::1;10486:402:1::0;3212:73:0::1;3322:6;::::0;;3301:38:::1;::::0;-1:-1:-1;;;;;3301:38:0;;::::1;::::0;3322:6;::::1;::::0;3301:38:::1;::::0;::::1;3350:6;:17:::0;;-1:-1:-1;;;;;;3350:17:0::1;-1:-1:-1::0;;;;;3350:17:0;;;::::1;::::0;;;::::1;::::0;;3139:236::o;18903:296::-;-1:-1:-1;;;;;18993:19:0;;18985:49;;;;-1:-1:-1;;;18985:49:0;;11095:2:1;18985:49:0;;;11077:21:1;11134:2;11114:18;;;11107:30;-1:-1:-1;;;11153:18:1;;;11146:47;11210:18;;18985:49:0;10893:341:1;18985:49:0;-1:-1:-1;;;;;19053:21:0;;19045:49;;;;-1:-1:-1;;;19045:49:0;;11441:2:1;19045:49:0;;;11423:21:1;11480:2;11460:18;;;11453:30;-1:-1:-1;;;11499:18:1;;;11492:45;11554:18;;19045:49:0;11239:339:1;19045:49:0;-1:-1:-1;;;;;19107:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19159:32;;1361:25:1;;;19159:32:0;;1334:18:1;19159:32:0;;;;;;;18903:296;;;:::o;7148:598::-;-1:-1:-1;;;;;7241:20:0;;7233:51;;;;-1:-1:-1;;;7233:51:0;;11785:2:1;7233:51:0;;;11767:21:1;11824:2;11804:18;;;11797:30;-1:-1:-1;;;11843:18:1;;;11836:48;11901:18;;7233:51:0;11583:342:1;7233:51:0;-1:-1:-1;;;;;7303:23:0;;7295:52;;;;-1:-1:-1;;;7295:52:0;;12132:2:1;7295:52:0;;;12114:21:1;12171:2;12151:18;;;12144:30;-1:-1:-1;;;12190:18:1;;;12183:46;12246:18;;7295:52:0;11930:340:1;7295:52:0;-1:-1:-1;;;;;7390:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;7418:27:0;;;;;;:16;:27;;;;;;;;7390:55;7387:352;;;7460:43;7477:6;7485:9;7496:6;7460:16;:43::i;:::-;7148:598;;;:::o;7387:352::-;7627:1;7611:15;;:17;7603:52;;;;-1:-1:-1;;;7603:52:0;;12477:2:1;7603:52:0;;;12459:21:1;12516:2;12496:18;;;12489:30;12555:25;12535:18;;;12528:53;12598:18;;7603:52:0;12275:347:1;7603:52:0;7670:39;7685:6;7692:9;7702:6;7670:14;:39::i;5487:120::-;5540:4;2268:6;;-1:-1:-1;;;;;5563:13:0;;;2268:6;;5563:13;;:36;;-1:-1:-1;;5584:15:0;;-1:-1:-1;;;;;5584:15:0;;;5578:21;;;;5487:120::o;12889:1820::-;10848:27;:34;;-1:-1:-1;;;;10848:34:0;-1:-1:-1;;;10848:34:0;;;13005:4:::1;10848:34:::0;12987:24;;;10878:4;12987:24:::1;::::0;;;;;13049:12:::1;::::0;13036::::1;::::0;12987:24;;10848:34;13036:25:::1;::::0;13049:12;13036:25:::1;:::i;:::-;13215:12;::::0;13194:19:::1;::::0;-1:-1:-1;;;;;13194:19:0::1;13167:16;13184:30:::0;;;:9:::1;:30;::::0;;;;;13022:39;;-1:-1:-1;13167:16:0;13228:4:::1;::::0;13184:43:::1;::::0;::::1;:::i;:::-;:48;;;;:::i;:::-;13167:65;;13285:8;13295:1;13285:11:::0;13282:22:::1;;13297:7;;;;;13282:22;13473:12;13470:134;;;-1:-1:-1::0;13530:4:0::1;13512:24;::::0;;;:9:::1;:24;::::0;;;;;13470:134:::1;;;13571:11;13555:15;:27;13552:52;;;13597:7;;;;;13552:52;13737:22;13770:17;:15;:17::i;:::-;:65;;13827:8;13813:12;;13801:11;:24;;;;:::i;:::-;13800:35;;;;:::i;:::-;13770:65;;;13788:1;13770:65;13737:98:::0;-1:-1:-1;13848:22:0::1;13872:29;13737:98:::0;13872:11;:29:::1;:::i;:::-;13848:53:::0;-1:-1:-1;13914:12:0::1;13927:19;13945:1;13927:17:::0;:19:::1;:::i;:::-;13914:32:::0;-1:-1:-1;14027:14:0::1;14042:25;14050:17:::0;13914:32;14042:25:::1;:::i;:::-;14027:40:::0;-1:-1:-1;14181:21:0::1;14213:27;14027:40:::0;14213:16:::1;:27::i;:::-;14251:11;14264:41;14288:17:::0;14264:21:::1;:41;:::i;:::-;14251:55:::0;-1:-1:-1;14411:19:0;;14408:135:::1;;14446:11;14477:9:::0;14461:14:::1;14468:7:::0;14461:6;:14:::1;:::i;:::-;14460:26;;;;:::i;:::-;14446:40;;14501:30;14515:7;14524:6;14501:13;:30::i;:::-;14431:112;14408:135;14628:15;::::0;:53:::1;::::0;14616:9:::1;::::0;-1:-1:-1;;;;;14628:15:0::1;::::0;14655:21:::1;::::0;14616:9;14628:53;14616:9;14628:53;14655:21;14628:15;:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;10893:1:0::1;-1:-1:-1::0;10905:27:0;:35;;-1:-1:-1;;;;10905:35:0;;;12889:1820::o;10044:339::-;-1:-1:-1;;;;;10157:17:0;;10136:18;10157:17;;;:9;:17;;;;;;10193:23;;;;10185:60;;;;-1:-1:-1;;;10185:60:0;;13039:2:1;10185:60:0;;;13021:21:1;13078:2;13058:18;;;13051:30;-1:-1:-1;;;13097:18:1;;;13090:54;13161:18;;10185:60:0;12837:348:1;10185:60:0;-1:-1:-1;;;;;10256:17:0;;;;;;:9;:17;;;;;:25;;10275:6;;10256:17;:25;;10275:6;;10256:25;:::i;:::-;;;;-1:-1:-1;;;;;;;10292:20:0;;;;;;:9;:20;;;;;:28;;10314:6;;10292:20;:28;;10314:6;;10292:28;:::i;:::-;;;;;;;;10358:9;-1:-1:-1;;;;;10342:33:0;10351:6;-1:-1:-1;;;;;10342:33:0;;10368:6;10342:33;;;;1361:25:1;;1349:2;1334:18;;1215:177;10342:33:0;;;;;;;;10125:258;10044:339;;;:::o;7847:1583::-;-1:-1:-1;;;;;7958:17:0;;7937:18;7958:17;;;:9;:17;;;;;;7994:23;;;;7986:60;;;;-1:-1:-1;;;7986:60:0;;13039:2:1;7986:60:0;;;13021:21:1;13078:2;13058:18;;;13051:30;-1:-1:-1;;;13097:18:1;;;13090:54;13161:18;;7986:60:0;12837:348:1;7986:60:0;-1:-1:-1;;;;;8070:13:0;;;8059:10;8070:13;;;:5;:13;;;;;;;8106:16;;;;;;;;8070:13;;;;;8106:16;;8154:384;;;;-1:-1:-1;8185:7:0;;8154:384;;;8226:5;8223:315;;;8286:9;;-1:-1:-1;;;;;8256:20:0;;;;;;:9;:20;;;;;;:27;;8277:6;;8256:27;:::i;:::-;8255:40;;8247:49;;;;;;8374:15;;8331:9;;8374:30;;8331:9;;8374:30;:::i;:::-;8358:15;:46;8355:136;;;8428:32;8441:14;8456:3;8428:12;:32::i;:::-;8424:36;;8355:136;;;8485:6;;8481:10;;8355:136;8232:285;8223:315;;;-1:-1:-1;8527:11:0;;8223:315;8563:19;;-1:-1:-1;;;;;8555:27:0;;;8563:19;;8555:27;;;;8554:44;;-1:-1:-1;8587:10:0;;;;8586:11;8554:44;:76;;;;-1:-1:-1;8602:27:0;;-1:-1:-1;;;8602:27:0;;;;8601:28;8554:76;8551:119;;;8645:25;8664:5;8645:18;:25::i;:::-;8741:20;8762:35;8776:6;8784:3;8789:7;;8762:13;:35::i;:::-;8741:56;;8905:18;8924:53;8938:6;8946:3;8964:12;;8951;;:25;;;;:::i;:::-;8924:13;:53::i;:::-;8905:72;-1:-1:-1;9041:16:0;9066:31;8905:72;9066:15;:31;:::i;:::-;9058:40;;:6;:40;:::i;:::-;-1:-1:-1;;;;;9111:17:0;;;;;;:9;:17;;;;;:25;;9041:57;;-1:-1:-1;9130:6:0;;9111:17;;;:25;;9130:6;;9111:25;:::i;:::-;;;;-1:-1:-1;;9221:4:0;9203:24;;;;:9;:24;;;;;:41;;9231:13;;9203:24;:41;;9231:13;;9203:41;:::i;:::-;;;;;;;;9299:15;9279:18;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9325:20:0;;;;;;:9;:20;;;;;:33;;9347:11;;9325:20;:33;;9347:11;;9325:33;:::i;:::-;;;;;;;;9400:9;-1:-1:-1;;;;;9384:38:0;9393:6;-1:-1:-1;;;;;9384:38:0;;9410:11;9384:38;;;;1361:25:1;;1349:2;1334:18;;1215:177;9384:38:0;;;;;;;;7926:1504;;;;;;;7847:1583;;;:::o;14759:474::-;14849:14;;14817:56;;14834:4;;-1:-1:-1;;;;;14849:14:0;14866:6;14817:8;:56::i;:::-;14908:16;;;14922:1;14908:16;;;;;;;;14884:21;;14908:16;;;;;;;;;;-1:-1:-1;14908:16:0;14884:40;;14953:4;14935;14940:1;14935:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14935:23:0;;;:7;;;;;;;;;;:23;;;;14979:14;;:21;;;-1:-1:-1;;;14979:21:0;;;;:14;;;;;:19;;:21;;;;;14935:7;;14979:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14969:4;14974:1;14969:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14969:31:0;;;:7;;;;;;;;;:31;15017:14;;:190;;-1:-1:-1;;;15017:190:0;;:14;;;:65;;:190;;15097:6;;15017:14;;15134:4;;15161;;15181:15;;15017:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14806:427;14759:474;:::o;15306:353::-;15414:14;;15382:61;;15399:4;;-1:-1:-1;;;;;15414:14:0;15431:11;15382:8;:61::i;:::-;15454:14;;-1:-1:-1;;;;;15454:14:0;:30;15492:9;15525:4;15545:11;15454:14;;15603:7;2241;2268:6;-1:-1:-1;;;;;2268:6:0;;2203:79;15603:7;15454:197;;;;;;-1:-1:-1;;;;;;15454:197:0;;;-1:-1:-1;;;;;15054:15:1;;;15454:197:0;;;15036:34:1;15086:18;;;15079:34;;;;15129:18;;;15122:34;;;;15172:18;;;15165:34;15236:15;;;15215:19;;;15208:44;15625:15:0;15268:19:1;;;15261:35;14970:19;;15454:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15306:353;;:::o;9538:211::-;9610:4;9626:20;9663:15;;9647;:31;;;;:::i;:::-;9626:52;-1:-1:-1;9732:8:0;9626:52;9705:9;9712:2;9705:6;:9;:::i;:::-;9704:27;;;;:::i;:::-;:36;;;;:::i;:::-;9696:45;;:6;:45;:::i;:::-;9689:52;9538:211;-1:-1:-1;;;;9538:211:0:o;9804:176::-;9889:4;9940:31;4676:4;;9940:31;:::i;:::-;9925:10;9914;9921:3;9914:6;:10;:::i;:::-;:21;;;;:::i;:::-;9913:59;;;;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:523::-;1962:6;1970;1978;1986;1994;2002;2055:3;2043:9;2034:7;2030:23;2026:33;2023:53;;;2072:1;2069;2062:12;2023:53;-1:-1:-1;;2095:23:1;;;2165:2;2150:18;;2137:32;;-1:-1:-1;2216:2:1;2201:18;;2188:32;;2267:2;2252:18;;2239:32;;-1:-1:-1;2318:3:1;2303:19;;2290:33;;-1:-1:-1;2370:3:1;2355:19;2342:33;;-1:-1:-1;1858:523:1;-1:-1:-1;1858:523:1:o;2575:160::-;2640:20;;2696:13;;2689:21;2679:32;;2669:60;;2725:1;2722;2715:12;2669:60;2575:160;;;:::o;2740:315::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2921:9;2908:23;2940:31;2965:5;2940:31;:::i;:::-;2990:5;-1:-1:-1;3014:35:1;3045:2;3030:18;;3014:35;:::i;:::-;3004:45;;2740:315;;;;;:::o;3060:180::-;3119:6;3172:2;3160:9;3151:7;3147:23;3143:32;3140:52;;;3188:1;3185;3178:12;3140:52;-1:-1:-1;3211:23:1;;3060:180;-1:-1:-1;3060:180:1:o;3245:247::-;3304:6;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3412:9;3399:23;3431:31;3456:5;3431:31;:::i;:::-;3481:5;3245:247;-1:-1:-1;;;3245:247:1:o;3705:180::-;3761:6;3814:2;3802:9;3793:7;3789:23;3785:32;3782:52;;;3830:1;3827;3820:12;3782:52;3853:26;3869:9;3853:26;:::i;3890:388::-;3958:6;3966;4019:2;4007:9;3998:7;3994:23;3990:32;3987:52;;;4035:1;4032;4025:12;3987:52;4074:9;4061:23;4093:31;4118:5;4093:31;:::i;:::-;4143:5;-1:-1:-1;4200:2:1;4185:18;;4172:32;4213:33;4172:32;4213:33;:::i;:::-;4265:7;4255:17;;;3890:388;;;;;:::o;4283:127::-;4344:10;4339:3;4335:20;4332:1;4325:31;4375:4;4372:1;4365:15;4399:4;4396:1;4389:15;4415:422;4504:1;4547:5;4504:1;4561:270;4582:7;4572:8;4569:21;4561:270;;;4641:4;4637:1;4633:6;4629:17;4623:4;4620:27;4617:53;;;4650:18;;:::i;:::-;4700:7;4690:8;4686:22;4683:55;;;4720:16;;;;4683:55;4799:22;;;;4759:15;;;;4561:270;;;4565:3;4415:422;;;;;:::o;4842:806::-;4891:5;4921:8;4911:80;;-1:-1:-1;4962:1:1;4976:5;;4911:80;5010:4;5000:76;;-1:-1:-1;5047:1:1;5061:5;;5000:76;5092:4;5110:1;5105:59;;;;5178:1;5173:130;;;;5085:218;;5105:59;5135:1;5126:10;;5149:5;;;5173:130;5210:3;5200:8;5197:17;5194:43;;;5217:18;;:::i;:::-;-1:-1:-1;;5273:1:1;5259:16;;5288:5;;5085:218;;5387:2;5377:8;5374:16;5368:3;5362:4;5359:13;5355:36;5349:2;5339:8;5336:16;5331:2;5325:4;5322:12;5318:35;5315:77;5312:159;;;-1:-1:-1;5424:19:1;;;5456:5;;5312:159;5503:34;5528:8;5522:4;5503:34;:::i;:::-;5573:6;5569:1;5565:6;5561:19;5552:7;5549:32;5546:58;;;5584:18;;:::i;:::-;5622:20;;4842:806;-1:-1:-1;;;4842:806:1:o;5653:140::-;5711:5;5740:47;5781:4;5771:8;5767:19;5761:4;5740:47;:::i;5798:168::-;5871:9;;;5902;;5919:15;;;5913:22;;5899:37;5889:71;;5940:18;;:::i;6320:128::-;6387:9;;;6408:11;;;6405:37;;;6422:18;;:::i;6453:348::-;6655:2;6637:21;;;6694:2;6674:18;;;6667:30;6733:26;6728:2;6713:18;;6706:54;6792:2;6777:18;;6453:348::o;6806:217::-;6846:1;6872;6862:132;;6916:10;6911:3;6907:20;6904:1;6897:31;6951:4;6948:1;6941:15;6979:4;6976:1;6969:15;6862:132;-1:-1:-1;7008:9:1;;6806:217::o;7375:125::-;7440:9;;;7461:10;;;7458:36;;;7474:18;;:::i;13322:127::-;13383:10;13378:3;13374:20;13371:1;13364:31;13414:4;13411:1;13404:15;13438:4;13435:1;13428:15;13454:251;13524:6;13577:2;13565:9;13556:7;13552:23;13548:32;13545:52;;;13593:1;13590;13583:12;13545:52;13625:9;13619:16;13644:31;13669:5;13644:31;:::i;13710:980::-;13972:4;14020:3;14009:9;14005:19;14051:6;14040:9;14033:25;14077:2;14115:6;14110:2;14099:9;14095:18;14088:34;14158:3;14153:2;14142:9;14138:18;14131:31;14182:6;14217;14211:13;14248:6;14240;14233:22;14286:3;14275:9;14271:19;14264:26;;14325:2;14317:6;14313:15;14299:29;;14346:1;14356:195;14370:6;14367:1;14364:13;14356:195;;;14435:13;;-1:-1:-1;;;;;14431:39:1;14419:52;;14526:15;;;;14491:12;;;;14467:1;14385:9;14356:195;;;-1:-1:-1;;;;;;;14607:32:1;;;;14602:2;14587:18;;14580:60;-1:-1:-1;;;14671:3:1;14656:19;14649:35;14568:3;13710:980;-1:-1:-1;;;13710:980:1:o;15307:306::-;15395:6;15403;15411;15464:2;15452:9;15443:7;15439:23;15435:32;15432:52;;;15480:1;15477;15470:12;15432:52;15509:9;15503:16;15493:26;;15559:2;15548:9;15544:18;15538:25;15528:35;;15603:2;15592:9;15588:18;15582:25;15572:35;;15307:306;;;;;:::o
Swarm Source
ipfs://a631ec60d687830df04d999b043e90eb8910b56930ad4c79fda65ba9e5624ba2
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.