ERC-20
Overview
Max Total Supply
1,000,000,000,010 PLAX
Holders
84
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
442,283,901.512191536586385389 PLAXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PlanetX
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-27 */ /** Telegram: https://t.me/planetX_love Website: https://www.planetx.love/ Twitter: https://twitter.com/Planet_Save_X Medium: https://medium.com/@planetx.save */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _tokengeneration(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: transfer to the zero address"); _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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); } } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface uniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract PlanetX is ERC20, Ownable { using Address for address payable; uniswapV2Router public IUniswapV2Router02; address public uniswapV2Pair; bool private _inSwap = false; bool private LpProvider = false; bool public tradingEnabled = false; uint256 private ThresholdTokens = 5e9 * 10**18; uint256 public maxTxLimit = 2e10 * 10**18; address public marketingWallet = (0x085aBD29e2417C960aB9013362dc054A5dAe222f); address public charityWallet = (0x31e70aE2b036a289717048D62dfC5aD5c024B579); address private DisperseCA = 0xD152f549545093347A162Dce210e7293f1452150; address private constant DeadAddy = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; uint256 charity; } Taxes private buytaxes = Taxes(2, 1, 1); Taxes private sellTaxes = Taxes(2, 1, 1); uint256 public BuyTaxes = buytaxes.marketing + buytaxes.liquidity + buytaxes.charity; uint256 public SellTaxes = sellTaxes.marketing + sellTaxes.liquidity + sellTaxes.charity; mapping(address => bool) public exemptFee; modifier lockTheSwap() { if (!_inSwap) { _inSwap = true; _; _inSwap = false; } } constructor() ERC20("PlanetX", "PLAX") { _tokengeneration(msg.sender, 1000000000010 * 10**decimals()); if (block.chainid == 56){ IUniswapV2Router02 = uniswapV2Router(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if(block.chainid == 1){ IUniswapV2Router02 = uniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else if(block.chainid == 42161){ IUniswapV2Router02 = uniswapV2Router(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); } else if (block.chainid == 97){ IUniswapV2Router02 = uniswapV2Router(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); } address _pair = IFactory(IUniswapV2Router02.factory()).createPair(address(this), IUniswapV2Router02.WETH()); require(_pair != address(0), "Pair Address cannot be zero"); IUniswapV2Router02 = IUniswapV2Router02; uniswapV2Pair = _pair; exemptFee[address(this)] = true; exemptFee[msg.sender] = true; exemptFee[marketingWallet] = true; exemptFee[charityWallet] = true; exemptFee[DeadAddy] = true; exemptFee[DisperseCA] = true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, "Trading not enabled"); } if (sender == uniswapV2Pair && !exemptFee[recipient]) { require(balanceOf(recipient) + amount <= maxTxLimit, "You are exceeding maxWalletLimit" ); } if (sender != uniswapV2Pair && !exemptFee[recipient] && !exemptFee[sender]) { if (recipient != uniswapV2Pair) { require(balanceOf(recipient) + amount <= maxTxLimit, "You are exceeding maxWalletLimit" ); } } uint256 swapfee; uint256 fee; Taxes memory currentTaxes; if (exemptFee[sender] || exemptFee[recipient]) fee = 0; else if (recipient == uniswapV2Pair) { swapfee = sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.charity; currentTaxes = sellTaxes; } else if (sender == uniswapV2Pair && recipient != address(IUniswapV2Router02)) { swapfee = buytaxes.liquidity + buytaxes.marketing + buytaxes.charity; currentTaxes = buytaxes; } fee = (amount * swapfee) / 100; if(sender != uniswapV2Pair && recipient != uniswapV2Pair) { fee = 0; } if (LpProvider && sender != uniswapV2Pair) Liquify(swapfee, currentTaxes); super._transfer(sender, recipient, amount - fee); if (fee > 0) { if (swapfee > 0) { uint256 feeAmount = (amount * swapfee) / 100; super._transfer(sender, address(this), feeAmount); } } } function Liquify(uint256 swapfee, Taxes memory swapTaxes) private lockTheSwap { if(swapfee == 0){ return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= ThresholdTokens) { if (ThresholdTokens > 1) { contractBalance = ThresholdTokens; } uint256 denominator = swapfee * 2; uint256 Liquiditytokens = (contractBalance * swapTaxes.liquidity) / denominator; uint256 AmountToSwap = contractBalance - Liquiditytokens; uint256 initialBalance = address(this).balance; swapTokensForETH(AmountToSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity); uint256 LiquidityEth = unitBalance * swapTaxes.liquidity; if (LiquidityEth > 0) { addLiquidity(Liquiditytokens, LiquidityEth); } uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } uint256 charityAmt = unitBalance * 2 * swapTaxes.charity; if (charityAmt > 0) { payable(charityWallet).sendValue(charityAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { require(tokenAmount > 0, "Amount should be greater than zero"); address[] memory path = new address[](2); path[0] = address(this); path[1] = IUniswapV2Router02.WETH(); _approve(address(this), address(IUniswapV2Router02), tokenAmount); IUniswapV2Router02.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(IUniswapV2Router02), tokenAmount); IUniswapV2Router02.addLiquidityETH{ value: ethAmount }( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable DeadAddy, block.timestamp ); } function updateLiquidityProvide(bool _state) external onlyOwner { LpProvider = _state; } function updateThreshold(uint256 _liquidityThreshold) external onlyOwner { ThresholdTokens = _liquidityThreshold * 10**decimals(); } function updateBuyTaxes( uint256 _marketing, uint256 _liquidity, uint256 _charity ) external onlyOwner { buytaxes = Taxes(_marketing, _liquidity, _charity); require((_marketing + _liquidity + _charity ) <= 10, "Must keep fees at 10% or less"); } function updateSellTaxes( uint256 _marketing, uint256 _liquidity, uint256 _charity ) external onlyOwner { sellTaxes = Taxes(_marketing, _liquidity, _charity); require((_marketing + _liquidity + _charity ) <= 10, "Must keep fees at 10% or less"); } function enableTrading() external onlyOwner { require(!tradingEnabled, "Cannot re-enable trading"); tradingEnabled = true; LpProvider = true; } function updateMarketingWallet(address _newWallet) external onlyOwner { require(_newWallet != address(0),"Fee Address cannot be zero address"); require(_newWallet != address(this),"Fee Addy cannot be CA"); marketingWallet = _newWallet; exemptFee[_newWallet] = true; } function updateCharitytWallet(address _newWallet) external onlyOwner { require(_newWallet != address(0),"Fee Address cannot be zero address"); require(_newWallet != address(this),"Fee Addy cannot be CA"); charityWallet = _newWallet; exemptFee[_newWallet] = true; } function excludeWalletFromFee(address _address, bool state) external onlyOwner { require(_address != address(0), "Address cannot be the zero address"); exemptFee[_address] = state; } function setMaxTxLimit(uint256 maxWallet) external onlyOwner { require(maxWallet >= 1e9, "Cannot set max wallet amount lower than 0.1%"); maxTxLimit = maxWallet * 10**decimals(); } function clearETHBalance() external { uint256 contractETHBalance = address(this).balance; require(contractETHBalance > 0, "Amount should be greater than zero"); require(contractETHBalance <= address(this).balance, "Insufficient Amount"); payable(marketingWallet).sendValue(contractETHBalance); } function clearERC20Tokens(address _tokenAddy, uint256 _amount) external onlyOwner { require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens"); require(_amount > 0, "Amount should be greater than zero"); require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount"); IERC20(_tokenAddy).transfer(marketingWallet, _amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IUniswapV2Router02","outputs":[{"internalType":"contract uniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTaxes","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":"charityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearETHBalance","outputs":[],"stateMutability":"nonpayable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"excludeWalletFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLimit","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":"uint256","name":"maxWallet","type":"uint256"}],"name":"setMaxTxLimit","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":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_charity","type":"uint256"}],"name":"updateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"updateCharitytWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_charity","type":"uint256"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6007805462ffffff60a01b191690556b1027e72f1f128130880000006008556b409f9cbc7c4a04c220000000600955600a80546001600160a01b031990811673085abd29e2417c960ab9013362dc054a5dae222f17909155600b805482167331e70ae2b036a289717048d62dfc5ad5c024b579179055600c805490911673d152f549545093347a162dce210e7293f145215017905560026080819052600160a081905260c0819052600d829055600e819055600f81905561014060405260e082905261010081905261012081905260108290556011819055601281905590620000ea90829062000652565b620000f6919062000652565b6013556012546011546010546200010e919062000652565b6200011a919062000652565b6014553480156200012a57600080fd5b50604051806040016040528060078152602001660a0d8c2dccae8b60cb1b815250604051806040016040528060048152602001630a09882b60e31b815250816003908162000179919062000713565b50600462000188828262000713565b505050620001a56200019f6200052e60201b60201c565b62000532565b620001cf33620001b86012600a620008dc565b620001c99064e8d4a5100a620008f4565b62000584565b466038036200020457600680546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e1790556200029f565b466001036200023957600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200029f565b4661a4b1036200026f57600680546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b479975061790556200029f565b466061036200029f57600680546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d11790555b6006546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015620002ea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031091906200090e565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000373573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039991906200090e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040d91906200090e565b90506001600160a01b0381166200046b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220416464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b600680546001600160a01b03198082166001600160a01b0392831617909255600780549382169390921692909217905530600090815260156020526040808220805460ff1990811660019081179092553384528284208054821683179055600a54851684528284208054821683179055600b548516845282842080548216831790557f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e58054821683179055600c5490941683529120805490921617905562000939565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620005e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840162000462565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200066857620006686200063c565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200069957607f821691505b602082108103620006ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200070e57600081815260208120601f850160051c81016020861015620006e95750805b601f850160051c820191505b818110156200070a57828155600101620006f5565b5050505b505050565b81516001600160401b038111156200072f576200072f6200066e565b620007478162000740845462000684565b84620006c0565b602080601f8311600181146200077f5760008415620007665750858301515b600019600386901b1c1916600185901b1785556200070a565b600085815260208120601f198616915b82811015620007b0578886015182559484019460019091019084016200078f565b5085821015620007cf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115620008205781600019048211156200080457620008046200063c565b808516156200081257918102915b93841c9390800290620007e4565b509250929050565b600082620008395750600162000668565b81620008485750600062000668565b81600181146200086157600281146200086c576200088c565b600191505062000668565b60ff8411156200088057620008806200063c565b50506001821b62000668565b5060208310610133831016604e8410600b8410161715620008b1575081810a62000668565b620008bd8383620007df565b8060001904821115620008d457620008d46200063c565b029392505050565b6000620008ed60ff84168362000828565b9392505050565b80820281158282048414176200066857620006686200063c565b6000602082840312156200092157600080fd5b81516001600160a01b0381168114620008ed57600080fd5b61237780620009496000396000f3fe6080604052600436106101fc5760003560e01c80637b2087691161010d578063a9059cbb116100a0578063d7d7442f1161006f578063d7d7442f146105c7578063dd62ed3e146105e7578063e0eb9cb31461062d578063f2fde38b14610643578063fc962edb1461066357600080fd5b8063a9059cbb14610537578063aacebbe314610557578063b4337b4e14610577578063c5d32bb21461059757600080fd5b80638c374ac1116100dc5780638c374ac1146104c45780638da5cb5b146104e457806395d89b4114610502578063a457c2d71461051757600080fd5b80637b208769146104595780638036d590146104795780638a54986c1461048f5780638a8c523c146104af57600080fd5b8063395093511161019057806364dfd2031161015f57806364dfd203146103ae57806364f5a5bb146103ce57806370a08231146103ee578063715018a61461042457806375f0a8741461043957600080fd5b8063395093511461031557806349bd5a5e146103355780634ada218b1461036d5780635b4654831461038e57600080fd5b806318160ddd116101cc57806318160ddd146102a557806323b872dd146102c45780632f22f1bf146102e4578063313ce567146102f957600080fd5b8062e9b84d1461020857806306fdde031461022a578063095ea7b3146102555780631340538f1461028557600080fd5b3661020357005b600080fd5b34801561021457600080fd5b50610228610223366004611e28565b610679565b005b34801561023657600080fd5b5061023f61086c565b60405161024c9190611e54565b60405180910390f35b34801561026157600080fd5b50610275610270366004611e28565b6108fe565b604051901515815260200161024c565b34801561029157600080fd5b506102286102a0366004611eb0565b610915565b3480156102b157600080fd5b506002545b60405190815260200161024c565b3480156102d057600080fd5b506102756102df366004611ed4565b61095d565b3480156102f057600080fd5b50610228610a0e565b34801561030557600080fd5b506040516012815260200161024c565b34801561032157600080fd5b50610275610330366004611e28565b610a8b565b34801561034157600080fd5b50600754610355906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561037957600080fd5b5060075461027590600160b01b900460ff1681565b34801561039a57600080fd5b506102286103a9366004611f15565b610ac2565b3480156103ba57600080fd5b506102286103c9366004611f32565b610b9c565b3480156103da57600080fd5b506102286103e9366004611f6b565b610c52565b3480156103fa57600080fd5b506102b6610409366004611f15565b6001600160a01b031660009081526020819052604090205490565b34801561043057600080fd5b50610228610d01565b34801561044557600080fd5b50600a54610355906001600160a01b031681565b34801561046557600080fd5b50600b54610355906001600160a01b031681565b34801561048557600080fd5b506102b660095481565b34801561049b57600080fd5b50600654610355906001600160a01b031681565b3480156104bb57600080fd5b50610228610d37565b3480156104d057600080fd5b506102286104df366004611f84565b610dd2565b3480156104f057600080fd5b506005546001600160a01b0316610355565b34801561050e57600080fd5b5061023f610e88565b34801561052357600080fd5b50610275610532366004611e28565b610e97565b34801561054357600080fd5b50610275610552366004611e28565b610f32565b34801561056357600080fd5b50610228610572366004611f15565b610f3f565b34801561058357600080fd5b50610228610592366004611f84565b611019565b3480156105a357600080fd5b506102756105b2366004611f15565b60156020526000908152604090205460ff1681565b3480156105d357600080fd5b506102286105e2366004611f6b565b611077565b3480156105f357600080fd5b506102b6610602366004611fb0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063957600080fd5b506102b660135481565b34801561064f57600080fd5b5061022861065e366004611f15565b6110bd565b34801561066f57600080fd5b506102b660145481565b6005546001600160a01b031633146106ac5760405162461bcd60e51b81526004016106a390611fde565b60405180910390fd5b306001600160a01b038316036107235760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016106a3565b600081116107435760405162461bcd60e51b81526004016106a390612013565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ab9190612055565b8111156107f05760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a3565b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610843573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610867919061206e565b505050565b60606003805461087b9061208b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a79061208b565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b600061090b338484611155565b5060015b92915050565b6005546001600160a01b0316331461093f5760405162461bcd60e51b81526004016106a390611fde565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600061096a848484611279565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109ef5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a3565b610a0385336109fe86856120db565b611155565b506001949350505050565b4780610a2c5760405162461bcd60e51b81526004016106a390612013565b47811115610a725760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a3565b600a54610a88906001600160a01b031682611732565b50565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161090b9185906109fe9086906120ee565b6005546001600160a01b03163314610aec5760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b038116610b125760405162461bcd60e51b81526004016106a390612101565b306001600160a01b03821603610b625760405162461bcd60e51b815260206004820152601560248201527446656520416464792063616e6e6f7420626520434160581b60448201526064016106a3565b600b80546001600160a01b039092166001600160a01b0319909216821790556000908152601560205260409020805460ff19166001179055565b6005546001600160a01b03163314610bc65760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b038216610c275760405162461bcd60e51b815260206004820152602260248201527f416464726573732063616e6e6f7420626520746865207a65726f206164647265604482015261737360f01b60648201526084016106a3565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c7c5760405162461bcd60e51b81526004016106a390611fde565b633b9aca00811015610ce55760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016106a3565b610cf16012600a612227565b610cfb9082612236565b60095550565b6005546001600160a01b03163314610d2b5760405162461bcd60e51b81526004016106a390611fde565b610d35600061184b565b565b6005546001600160a01b03163314610d615760405162461bcd60e51b81526004016106a390611fde565b600754600160b01b900460ff1615610dbb5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016106a3565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610dfc5760405162461bcd60e51b81526004016106a390611fde565b604080516060810182528481526020810184905201819052600d839055600e829055600f819055600a81610e3084866120ee565b610e3a91906120ee565b11156108675760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016106a3565b60606004805461087b9061208b565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a3565b610f2833856109fe86856120db565b5060019392505050565b600061090b338484611279565b6005546001600160a01b03163314610f695760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b038116610f8f5760405162461bcd60e51b81526004016106a390612101565b306001600160a01b03821603610fdf5760405162461bcd60e51b815260206004820152601560248201527446656520416464792063616e6e6f7420626520434160581b60448201526064016106a3565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152601560205260409020805460ff19166001179055565b6005546001600160a01b031633146110435760405162461bcd60e51b81526004016106a390611fde565b604080516060810182528481526020810184905201819052601083905560118290556012819055600a81610e3084866120ee565b6005546001600160a01b031633146110a15760405162461bcd60e51b81526004016106a390611fde565b6110ad6012600a612227565b6110b79082612236565b60085550565b6005546001600160a01b031633146110e75760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b03811661114c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a3565b610a888161184b565b6001600160a01b0383166111b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a3565b6001600160a01b0382166112185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112db5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a3565b6001600160a01b03831660009081526015602052604090205460ff1615801561131d57506001600160a01b03821660009081526015602052604090205460ff16155b1561137157600754600160b01b900460ff166113715760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106a3565b6007546001600160a01b0384811691161480156113a757506001600160a01b03821660009081526015602052604090205460ff16155b1561142757600954816113cf846001600160a01b031660009081526020819052604090205490565b6113d991906120ee565b11156114275760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a3565b6007546001600160a01b0384811691161480159061145e57506001600160a01b03821660009081526015602052604090205460ff16155b801561148357506001600160a01b03831660009081526015602052604090205460ff16155b15611518576007546001600160a01b0383811691161461151857600954816114c0846001600160a01b031660009081526020819052604090205490565b6114ca91906120ee565b11156115185760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a3565b60008061153f60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03861660009081526015602052604090205460ff168061157e57506001600160a01b03851660009081526015602052604090205460ff165b1561158c576000915061165e565b6007546001600160a01b03908116908616036115ea576012546010546011546115b591906120ee565b6115bf91906120ee565b604080516060810182526010548152601154602082015260125491810191909152909350905061165e565b6007546001600160a01b03878116911614801561161557506006546001600160a01b03868116911614155b1561165e57600f54600d54600e5461162d91906120ee565b61163791906120ee565b60408051606081018252600d548152600e546020820152600f549181019190915290935090505b606461166a8486612236565b611674919061224d565b6007549092506001600160a01b038781169116148015906116a357506007546001600160a01b03868116911614155b156116ad57600091505b600754600160a81b900460ff1680156116d457506007546001600160a01b03878116911614155b156116e3576116e3838261189d565b6116f786866116f285886120db565b611a17565b811561172a57821561172a57600060646117118587612236565b61171b919061224d565b9050611728873083611a17565b505b505050505050565b804710156117825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b50509050806108675760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a3565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611a13576007805460ff60a01b1916600160a01b1790558115611a0557306000908152602081905260409020546008548110611a0357600160085411156118f057506008545b60006118fd846002612236565b90506000818460200151846119129190612236565b61191c919061224d565b9050600061192a82856120db565b90504761193682611bef565b600061194282476120db565b9050600087602001518661195691906120db565b611960908361224d565b905060008860200151826119749190612236565b90508015611986576119868682611d61565b8851600090611996846002612236565b6119a09190612236565b905080156119be57600a546119be906001600160a01b031682611732565b60408a01516000906119d1856002612236565b6119db9190612236565b905080156119f957600b546119f9906001600160a01b031682611732565b5050505050505050505b505b6007805460ff60a01b191690555b5050565b6001600160a01b038316611a7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a3565b6001600160a01b038216611add5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a3565b6001600160a01b03831660009081526020819052604090205481811015611b555760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a3565b611b5f82826120db565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b959084906120ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611be191815260200190565b60405180910390a350505050565b60008111611c0f5760405162461bcd60e51b81526004016106a390612013565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4457611c4461226f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc19190612285565b81600181518110611cd457611cd461226f565b6001600160a01b039283166020918202929092010152600654611cfa9130911684611155565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d339085906000908690309042906004016122a2565b600060405180830381600087803b158015611d4d57600080fd5b505af115801561172a573d6000803e3d6000fd5b600654611d799030906001600160a01b031684611155565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611de7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0c9190612313565b5050505050565b6001600160a01b0381168114610a8857600080fd5b60008060408385031215611e3b57600080fd5b8235611e4681611e13565b946020939093013593505050565b600060208083528351808285015260005b81811015611e8157858101830151858201604001528201611e65565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114610a8857600080fd5b600060208284031215611ec257600080fd5b8135611ecd81611ea2565b9392505050565b600080600060608486031215611ee957600080fd5b8335611ef481611e13565b92506020840135611f0481611e13565b929592945050506040919091013590565b600060208284031215611f2757600080fd5b8135611ecd81611e13565b60008060408385031215611f4557600080fd5b8235611f5081611e13565b91506020830135611f6081611ea2565b809150509250929050565b600060208284031215611f7d57600080fd5b5035919050565b600080600060608486031215611f9957600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611fc357600080fd5b8235611fce81611e13565b91506020830135611f6081611e13565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b60006020828403121561206757600080fd5b5051919050565b60006020828403121561208057600080fd5b8151611ecd81611ea2565b600181811c9082168061209f57607f821691505b6020821081036120bf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561090f5761090f6120c5565b8082018082111561090f5761090f6120c5565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b600181815b8085111561217e578160001904821115612164576121646120c5565b8085161561217157918102915b93841c9390800290612148565b509250929050565b6000826121955750600161090f565b816121a25750600061090f565b81600181146121b857600281146121c2576121de565b600191505061090f565b60ff8411156121d3576121d36120c5565b50506001821b61090f565b5060208310610133831016604e8410600b8410161715612201575081810a61090f565b61220b8383612143565b806000190482111561221f5761221f6120c5565b029392505050565b6000611ecd60ff841683612186565b808202811582820484141761090f5761090f6120c5565b60008261226a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561229757600080fd5b8151611ecd81611e13565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122f25784516001600160a01b0316835293830193918301916001016122cd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561232857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cc931ae70c278da834ffd29db8e3d05e8cedc54d2af6dce7159fb852813e33cf64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101fc5760003560e01c80637b2087691161010d578063a9059cbb116100a0578063d7d7442f1161006f578063d7d7442f146105c7578063dd62ed3e146105e7578063e0eb9cb31461062d578063f2fde38b14610643578063fc962edb1461066357600080fd5b8063a9059cbb14610537578063aacebbe314610557578063b4337b4e14610577578063c5d32bb21461059757600080fd5b80638c374ac1116100dc5780638c374ac1146104c45780638da5cb5b146104e457806395d89b4114610502578063a457c2d71461051757600080fd5b80637b208769146104595780638036d590146104795780638a54986c1461048f5780638a8c523c146104af57600080fd5b8063395093511161019057806364dfd2031161015f57806364dfd203146103ae57806364f5a5bb146103ce57806370a08231146103ee578063715018a61461042457806375f0a8741461043957600080fd5b8063395093511461031557806349bd5a5e146103355780634ada218b1461036d5780635b4654831461038e57600080fd5b806318160ddd116101cc57806318160ddd146102a557806323b872dd146102c45780632f22f1bf146102e4578063313ce567146102f957600080fd5b8062e9b84d1461020857806306fdde031461022a578063095ea7b3146102555780631340538f1461028557600080fd5b3661020357005b600080fd5b34801561021457600080fd5b50610228610223366004611e28565b610679565b005b34801561023657600080fd5b5061023f61086c565b60405161024c9190611e54565b60405180910390f35b34801561026157600080fd5b50610275610270366004611e28565b6108fe565b604051901515815260200161024c565b34801561029157600080fd5b506102286102a0366004611eb0565b610915565b3480156102b157600080fd5b506002545b60405190815260200161024c565b3480156102d057600080fd5b506102756102df366004611ed4565b61095d565b3480156102f057600080fd5b50610228610a0e565b34801561030557600080fd5b506040516012815260200161024c565b34801561032157600080fd5b50610275610330366004611e28565b610a8b565b34801561034157600080fd5b50600754610355906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561037957600080fd5b5060075461027590600160b01b900460ff1681565b34801561039a57600080fd5b506102286103a9366004611f15565b610ac2565b3480156103ba57600080fd5b506102286103c9366004611f32565b610b9c565b3480156103da57600080fd5b506102286103e9366004611f6b565b610c52565b3480156103fa57600080fd5b506102b6610409366004611f15565b6001600160a01b031660009081526020819052604090205490565b34801561043057600080fd5b50610228610d01565b34801561044557600080fd5b50600a54610355906001600160a01b031681565b34801561046557600080fd5b50600b54610355906001600160a01b031681565b34801561048557600080fd5b506102b660095481565b34801561049b57600080fd5b50600654610355906001600160a01b031681565b3480156104bb57600080fd5b50610228610d37565b3480156104d057600080fd5b506102286104df366004611f84565b610dd2565b3480156104f057600080fd5b506005546001600160a01b0316610355565b34801561050e57600080fd5b5061023f610e88565b34801561052357600080fd5b50610275610532366004611e28565b610e97565b34801561054357600080fd5b50610275610552366004611e28565b610f32565b34801561056357600080fd5b50610228610572366004611f15565b610f3f565b34801561058357600080fd5b50610228610592366004611f84565b611019565b3480156105a357600080fd5b506102756105b2366004611f15565b60156020526000908152604090205460ff1681565b3480156105d357600080fd5b506102286105e2366004611f6b565b611077565b3480156105f357600080fd5b506102b6610602366004611fb0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063957600080fd5b506102b660135481565b34801561064f57600080fd5b5061022861065e366004611f15565b6110bd565b34801561066f57600080fd5b506102b660145481565b6005546001600160a01b031633146106ac5760405162461bcd60e51b81526004016106a390611fde565b60405180910390fd5b306001600160a01b038316036107235760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016106a3565b600081116107435760405162461bcd60e51b81526004016106a390612013565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ab9190612055565b8111156107f05760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a3565b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610843573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610867919061206e565b505050565b60606003805461087b9061208b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a79061208b565b80156108f45780601f106108c9576101008083540402835291602001916108f4565b820191906000526020600020905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b600061090b338484611155565b5060015b92915050565b6005546001600160a01b0316331461093f5760405162461bcd60e51b81526004016106a390611fde565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600061096a848484611279565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109ef5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a3565b610a0385336109fe86856120db565b611155565b506001949350505050565b4780610a2c5760405162461bcd60e51b81526004016106a390612013565b47811115610a725760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a3565b600a54610a88906001600160a01b031682611732565b50565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161090b9185906109fe9086906120ee565b6005546001600160a01b03163314610aec5760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b038116610b125760405162461bcd60e51b81526004016106a390612101565b306001600160a01b03821603610b625760405162461bcd60e51b815260206004820152601560248201527446656520416464792063616e6e6f7420626520434160581b60448201526064016106a3565b600b80546001600160a01b039092166001600160a01b0319909216821790556000908152601560205260409020805460ff19166001179055565b6005546001600160a01b03163314610bc65760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b038216610c275760405162461bcd60e51b815260206004820152602260248201527f416464726573732063616e6e6f7420626520746865207a65726f206164647265604482015261737360f01b60648201526084016106a3565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c7c5760405162461bcd60e51b81526004016106a390611fde565b633b9aca00811015610ce55760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016106a3565b610cf16012600a612227565b610cfb9082612236565b60095550565b6005546001600160a01b03163314610d2b5760405162461bcd60e51b81526004016106a390611fde565b610d35600061184b565b565b6005546001600160a01b03163314610d615760405162461bcd60e51b81526004016106a390611fde565b600754600160b01b900460ff1615610dbb5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016106a3565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610dfc5760405162461bcd60e51b81526004016106a390611fde565b604080516060810182528481526020810184905201819052600d839055600e829055600f819055600a81610e3084866120ee565b610e3a91906120ee565b11156108675760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016106a3565b60606004805461087b9061208b565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a3565b610f2833856109fe86856120db565b5060019392505050565b600061090b338484611279565b6005546001600160a01b03163314610f695760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b038116610f8f5760405162461bcd60e51b81526004016106a390612101565b306001600160a01b03821603610fdf5760405162461bcd60e51b815260206004820152601560248201527446656520416464792063616e6e6f7420626520434160581b60448201526064016106a3565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152601560205260409020805460ff19166001179055565b6005546001600160a01b031633146110435760405162461bcd60e51b81526004016106a390611fde565b604080516060810182528481526020810184905201819052601083905560118290556012819055600a81610e3084866120ee565b6005546001600160a01b031633146110a15760405162461bcd60e51b81526004016106a390611fde565b6110ad6012600a612227565b6110b79082612236565b60085550565b6005546001600160a01b031633146110e75760405162461bcd60e51b81526004016106a390611fde565b6001600160a01b03811661114c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a3565b610a888161184b565b6001600160a01b0383166111b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a3565b6001600160a01b0382166112185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112db5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a3565b6001600160a01b03831660009081526015602052604090205460ff1615801561131d57506001600160a01b03821660009081526015602052604090205460ff16155b1561137157600754600160b01b900460ff166113715760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106a3565b6007546001600160a01b0384811691161480156113a757506001600160a01b03821660009081526015602052604090205460ff16155b1561142757600954816113cf846001600160a01b031660009081526020819052604090205490565b6113d991906120ee565b11156114275760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a3565b6007546001600160a01b0384811691161480159061145e57506001600160a01b03821660009081526015602052604090205460ff16155b801561148357506001600160a01b03831660009081526015602052604090205460ff16155b15611518576007546001600160a01b0383811691161461151857600954816114c0846001600160a01b031660009081526020819052604090205490565b6114ca91906120ee565b11156115185760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a3565b60008061153f60405180606001604052806000815260200160008152602001600081525090565b6001600160a01b03861660009081526015602052604090205460ff168061157e57506001600160a01b03851660009081526015602052604090205460ff165b1561158c576000915061165e565b6007546001600160a01b03908116908616036115ea576012546010546011546115b591906120ee565b6115bf91906120ee565b604080516060810182526010548152601154602082015260125491810191909152909350905061165e565b6007546001600160a01b03878116911614801561161557506006546001600160a01b03868116911614155b1561165e57600f54600d54600e5461162d91906120ee565b61163791906120ee565b60408051606081018252600d548152600e546020820152600f549181019190915290935090505b606461166a8486612236565b611674919061224d565b6007549092506001600160a01b038781169116148015906116a357506007546001600160a01b03868116911614155b156116ad57600091505b600754600160a81b900460ff1680156116d457506007546001600160a01b03878116911614155b156116e3576116e3838261189d565b6116f786866116f285886120db565b611a17565b811561172a57821561172a57600060646117118587612236565b61171b919061224d565b9050611728873083611a17565b505b505050505050565b804710156117825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b50509050806108675760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a3565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611a13576007805460ff60a01b1916600160a01b1790558115611a0557306000908152602081905260409020546008548110611a0357600160085411156118f057506008545b60006118fd846002612236565b90506000818460200151846119129190612236565b61191c919061224d565b9050600061192a82856120db565b90504761193682611bef565b600061194282476120db565b9050600087602001518661195691906120db565b611960908361224d565b905060008860200151826119749190612236565b90508015611986576119868682611d61565b8851600090611996846002612236565b6119a09190612236565b905080156119be57600a546119be906001600160a01b031682611732565b60408a01516000906119d1856002612236565b6119db9190612236565b905080156119f957600b546119f9906001600160a01b031682611732565b5050505050505050505b505b6007805460ff60a01b191690555b5050565b6001600160a01b038316611a7b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a3565b6001600160a01b038216611add5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a3565b6001600160a01b03831660009081526020819052604090205481811015611b555760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a3565b611b5f82826120db565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b959084906120ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611be191815260200190565b60405180910390a350505050565b60008111611c0f5760405162461bcd60e51b81526004016106a390612013565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4457611c4461226f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc19190612285565b81600181518110611cd457611cd461226f565b6001600160a01b039283166020918202929092010152600654611cfa9130911684611155565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d339085906000908690309042906004016122a2565b600060405180830381600087803b158015611d4d57600080fd5b505af115801561172a573d6000803e3d6000fd5b600654611d799030906001600160a01b031684611155565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611de7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0c9190612313565b5050505050565b6001600160a01b0381168114610a8857600080fd5b60008060408385031215611e3b57600080fd5b8235611e4681611e13565b946020939093013593505050565b600060208083528351808285015260005b81811015611e8157858101830151858201604001528201611e65565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114610a8857600080fd5b600060208284031215611ec257600080fd5b8135611ecd81611ea2565b9392505050565b600080600060608486031215611ee957600080fd5b8335611ef481611e13565b92506020840135611f0481611e13565b929592945050506040919091013590565b600060208284031215611f2757600080fd5b8135611ecd81611e13565b60008060408385031215611f4557600080fd5b8235611f5081611e13565b91506020830135611f6081611ea2565b809150509250929050565b600060208284031215611f7d57600080fd5b5035919050565b600080600060608486031215611f9957600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611fc357600080fd5b8235611fce81611e13565b91506020830135611f6081611e13565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b60006020828403121561206757600080fd5b5051919050565b60006020828403121561208057600080fd5b8151611ecd81611ea2565b600181811c9082168061209f57607f821691505b6020821081036120bf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561090f5761090f6120c5565b8082018082111561090f5761090f6120c5565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b600181815b8085111561217e578160001904821115612164576121646120c5565b8085161561217157918102915b93841c9390800290612148565b509250929050565b6000826121955750600161090f565b816121a25750600061090f565b81600181146121b857600281146121c2576121de565b600191505061090f565b60ff8411156121d3576121d36120c5565b50506001821b61090f565b5060208310610133831016604e8410600b8410161715612201575081810a61090f565b61220b8383612143565b806000190482111561221f5761221f6120c5565b029392505050565b6000611ecd60ff841683612186565b808202811582820484141761090f5761090f6120c5565b60008261226a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561229757600080fd5b8151611ecd81611e13565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122f25784516001600160a01b0316835293830193918301916001016122cd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561232857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cc931ae70c278da834ffd29db8e3d05e8cedc54d2af6dce7159fb852813e33cf64736f6c63430008130033
Deployed Bytecode Sourcemap
7717:11212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18446:425;;;;;;;;;;-1:-1:-1;18446:425:0;;;;;:::i;:::-;;:::i;:::-;;1975:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10211:161;;;;;;;;;;-1:-1:-1;10211:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10211:161:0;1023:187:1;16046:102:0;;;;;;;;;;-1:-1:-1;16046:102:0;;;;;:::i;:::-;;:::i;2296:108::-;;;;;;;;;;-1:-1:-1;2384:12:0;;2296:108;;;1730:25:1;;;1718:2;1703:18;2296:108:0;1584:177:1;10380:413:0;;;;;;;;;;-1:-1:-1;10380:413:0;;;;;:::i;:::-;;:::i;18101:337::-;;;;;;;;;;;;;:::i;2195:93::-;;;;;;;;;;-1:-1:-1;2195:93:0;;2278:2;2369:36:1;;2357:2;2342:18;2195:93:0;2227:184:1;10801:248:0;;;;;;;;;;-1:-1:-1;10801:248:0;;;;;:::i;:::-;;:::i;7847:28::-;;;;;;;;;;-1:-1:-1;7847:28:0;;;;-1:-1:-1;;;;;7847:28:0;;;;;;-1:-1:-1;;;;;2580:32:1;;;2562:51;;2550:2;2535:18;7847:28:0;2416:203:1;7955:34:0;;;;;;;;;;-1:-1:-1;7955:34:0;;;;-1:-1:-1;;;7955:34:0;;;;;;17359:305;;;;;;;;;;-1:-1:-1;17359:305:0;;;;;:::i;:::-;;:::i;17672:205::-;;;;;;;;;;-1:-1:-1;17672:205:0;;;;;:::i;:::-;;:::i;17885:204::-;;;;;;;;;;-1:-1:-1;17885:204:0;;;;;:::i;:::-;;:::i;2412:127::-;;;;;;;;;;-1:-1:-1;2412:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2513:18:0;2486:7;2513:18;;;;;;;;;;;;2412:127;6372:94;;;;;;;;;;;;;:::i;8101:77::-;;;;;;;;;;-1:-1:-1;8101:77:0;;;;-1:-1:-1;;;;;8101:77:0;;;8182:75;;;;;;;;;;-1:-1:-1;8182:75:0;;;;-1:-1:-1;;;;;8182:75:0;;;8051:41;;;;;;;;;;;;;;;;7799;;;;;;;;;;-1:-1:-1;7799:41:0;;;;-1:-1:-1;;;;;7799:41:0;;;16860:175;;;;;;;;;;;;;:::i;16310:265::-;;;;;;;;;;-1:-1:-1;16310:265:0;;;;;:::i;:::-;;:::i;6149:87::-;;;;;;;;;;-1:-1:-1;6222:6:0;;-1:-1:-1;;;;;6222:6:0;6149:87;;2083:104;;;;;;;;;;;;;:::i;11057:410::-;;;;;;;;;;-1:-1:-1;11057:410:0;;;;;:::i;:::-;;:::i;11475:165::-;;;;;;;;;;-1:-1:-1;11475:165:0;;;;;:::i;:::-;;:::i;17043:308::-;;;;;;;;;;-1:-1:-1;17043:308:0;;;;;:::i;:::-;;:::i;16584:268::-;;;;;;;;;;-1:-1:-1;16584:268:0;;;;;:::i;:::-;;:::i;8827:41::-;;;;;;;;;;-1:-1:-1;8827:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16156:146;;;;;;;;;;-1:-1:-1;16156:146:0;;;;;:::i;:::-;;:::i;2771:201::-;;;;;;;;;;-1:-1:-1;2771:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;2937:18:0;;;2905:7;2937:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2771:201;8639:84;;;;;;;;;;;;;;;;6474:192;;;;;;;;;;-1:-1:-1;6474:192:0;;;;;:::i;:::-;;:::i;8730:88::-;;;;;;;;;;;;;;;;18446:425;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;;;;;;;;;18569:4:::1;-1:-1:-1::0;;;;;18547:27:0;::::1;::::0;18539:94:::1;;;::::0;-1:-1:-1;;;18539:94:0;;4956:2:1;18539:94:0::1;::::0;::::1;4938:21:1::0;4995:2;4975:18;;;4968:30;5034:34;5014:18;;;5007:62;-1:-1:-1;;;5085:18:1;;;5078:52;5147:19;;18539:94:0::1;4754:418:1::0;18539:94:0::1;18662:1;18652:7;:11;18644:58;;;;-1:-1:-1::0;;;18644:58:0::1;;;;;;;:::i;:::-;18732:43;::::0;-1:-1:-1;;;18732:43:0;;18769:4:::1;18732:43;::::0;::::1;2562:51:1::0;-1:-1:-1;;;;;18732:28:0;::::1;::::0;::::1;::::0;2535:18:1;;18732:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18721:7;:54;;18713:86;;;::::0;-1:-1:-1;;;18713:86:0;;5971:2:1;18713:86:0::1;::::0;::::1;5953:21:1::0;6010:2;5990:18;;;5983:30;-1:-1:-1;;;6029:18:1;;;6022:49;6088:18;;18713:86:0::1;5769:343:1::0;18713:86:0::1;18838:15;::::0;18810:53:::1;::::0;-1:-1:-1;;;18810:53:0;;-1:-1:-1;;;;;18838:15:0;;::::1;18810:53;::::0;::::1;6291:51:1::0;6358:18;;;6351:34;;;18810:27:0;;::::1;::::0;::::1;::::0;6264:18:1;;18810:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18446:425:::0;;:::o;1975:100::-;2029:13;2062:5;2055:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:100;:::o;10211:161::-;10286:4;10303:39;343:10;10326:7;10335:6;10303:8;:39::i;:::-;-1:-1:-1;10360:4:0;10211:161;;;;;:::o;16046:102::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;16121:10:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;16121:19:0::1;-1:-1:-1::0;;;;16121:19:0;;::::1;::::0;;;::::1;::::0;;16046:102::o;10380:413::-;10479:4;10496:36;10506:6;10514:9;10525:6;10496:9;:36::i;:::-;-1:-1:-1;;;;;10570:19:0;;10543:24;10570:19;;;:11;:19;;;;;;;;343:10;10570:33;;;;;;;;10622:26;;;;10614:79;;;;-1:-1:-1;;;10614:79:0;;7233:2:1;10614:79:0;;;7215:21:1;7272:2;7252:18;;;7245:30;7311:34;7291:18;;;7284:62;-1:-1:-1;;;7362:18:1;;;7355:38;7410:19;;10614:79:0;7031:404:1;10614:79:0;10704:57;10713:6;343:10;10735:25;10754:6;10735:16;:25;:::i;:::-;10704:8;:57::i;:::-;-1:-1:-1;10781:4:0;;10380:413;-1:-1:-1;;;;10380:413:0:o;18101:337::-;18178:21;18218:22;18210:69;;;;-1:-1:-1;;;18210:69:0;;;;;;;:::i;:::-;18320:21;18298:18;:43;;18290:75;;;;-1:-1:-1;;;18290:75:0;;5971:2:1;18290:75:0;;;5953:21:1;6010:2;5990:18;;;5983:30;-1:-1:-1;;;6029:18:1;;;6022:49;6088:18;;18290:75:0;5769:343:1;18290:75:0;18384:15;;18376:54;;-1:-1:-1;;;;;18384:15:0;18411:18;18376:34;:54::i;:::-;18137:301;18101:337::o;10801:248::-;343:10;10917:4;10971:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10971:34:0;;;;;;;;;;10917:4;;10939:80;;10962:7;;10971:47;;11008:10;;10971:47;:::i;17359:305::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17447:24:0;::::1;17439:70;;;;-1:-1:-1::0;;;17439:70:0::1;;;;;;;:::i;:::-;17550:4;-1:-1:-1::0;;;;;17528:27:0;::::1;::::0;17520:60:::1;;;::::0;-1:-1:-1;;;17520:60:0;;8440:2:1;17520:60:0::1;::::0;::::1;8422:21:1::0;8479:2;8459:18;;;8452:30;-1:-1:-1;;;8498:18:1;;;8491:51;8559:18;;17520:60:0::1;8238:345:1::0;17520:60:0::1;17591:13;:26:::0;;-1:-1:-1;;;;;17591:26:0;;::::1;-1:-1:-1::0;;;;;;17591:26:0;;::::1;::::0;::::1;::::0;;:13:::1;17628:21:::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;17628:28:0::1;17591:26:::0;17628:28:::1;::::0;;17359:305::o;17672:205::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17770:22:0;::::1;17762:69;;;::::0;-1:-1:-1;;;17762:69:0;;8790:2:1;17762:69:0::1;::::0;::::1;8772:21:1::0;8829:2;8809:18;;;8802:30;8868:34;8848:18;;;8841:62;-1:-1:-1;;;8919:18:1;;;8912:32;8961:19;;17762:69:0::1;8588:398:1::0;17762:69:0::1;-1:-1:-1::0;;;;;17842:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;17842:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17672:205::o;17885:204::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;17978:3:::1;17965:9;:16;;17957:73;;;::::0;-1:-1:-1;;;17957:73:0;;9193:2:1;17957:73:0::1;::::0;::::1;9175:21:1::0;9232:2;9212:18;;;9205:30;9271:34;9251:18;;;9244:62;-1:-1:-1;;;9322:18:1;;;9315:42;9374:19;;17957:73:0::1;8991:408:1::0;17957:73:0::1;18066:14;2278:2:::0;18066::::1;:14;:::i;:::-;18054:26;::::0;:9;:26:::1;:::i;:::-;18041:10;:39:::0;-1:-1:-1;17885:204:0:o;6372:94::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;6437:21:::1;6455:1;6437:9;:21::i;:::-;6372:94::o:0;16860:175::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;16924:14:::1;::::0;-1:-1:-1;;;16924:14:0;::::1;;;16923:15;16915:52;;;::::0;-1:-1:-1;;;16915:52:0;;11162:2:1;16915:52:0::1;::::0;::::1;11144:21:1::0;11201:2;11181:18;;;11174:30;11240:26;11220:18;;;11213:54;11284:18;;16915:52:0::1;10960:348:1::0;16915:52:0::1;16978:14;:21:::0;;-1:-1:-1;;;;17010:17:0;-1:-1:-1;;;17010:17:0;;;16860:175::o;16310:265::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;16435:39:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;16424:8:::1;:50:::0;;;;;;;;;;;16531:2:::1;16465:8:::0;16490:24:::1;16453:10:::0;16441;16490:24:::1;:::i;:::-;:35;;;;:::i;:::-;16489:44;;16481:86;;;::::0;-1:-1:-1;;;16481:86:0;;11515:2:1;16481:86:0::1;::::0;::::1;11497:21:1::0;11554:2;11534:18;;;11527:30;11593:31;11573:18;;;11566:59;11642:18;;16481:86:0::1;11313:353:1::0;2083:104:0;2139:13;2172:7;2165:14;;;;;:::i;11057:410::-;343:10;11178:4;11227:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11227:34:0;;;;;;;;;;11280:35;;;;11272:85;;;;-1:-1:-1;;;11272:85:0;;11873:2:1;11272:85:0;;;11855:21:1;11912:2;11892:18;;;11885:30;11951:34;11931:18;;;11924:62;-1:-1:-1;;;12002:18:1;;;11995:35;12047:19;;11272:85:0;11671:401:1;11272:85:0;11368:67;343:10;11391:7;11400:34;11419:15;11400:16;:34;:::i;11368:67::-;-1:-1:-1;11455:4:0;;11057:410;-1:-1:-1;;;11057:410:0:o;11475:165::-;11553:4;11570:40;11580:10;11592:9;11603:6;11570:9;:40::i;17043:308::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17132:24:0;::::1;17124:70;;;;-1:-1:-1::0;;;17124:70:0::1;;;;;;;:::i;:::-;17235:4;-1:-1:-1::0;;;;;17213:27:0;::::1;::::0;17205:60:::1;;;::::0;-1:-1:-1;;;17205:60:0;;8440:2:1;17205:60:0::1;::::0;::::1;8422:21:1::0;8479:2;8459:18;;;8452:30;-1:-1:-1;;;8498:18:1;;;8491:51;8559:18;;17205:60:0::1;8238:345:1::0;17205:60:0::1;17276:15;:28:::0;;-1:-1:-1;;;;;17276:28:0;;::::1;-1:-1:-1::0;;;;;;17276:28:0;;::::1;::::0;::::1;::::0;;:15:::1;17315:21:::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;17315:28:0::1;17276::::0;17315::::1;::::0;;17043:308::o;16584:268::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;16711:39:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;16699:9:::1;:51:::0;;;;;;;;;;;16808:2:::1;16741:8:::0;16767:24:::1;16729:10:::0;16717;16767:24:::1;:::i;16156:146::-:0;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;16280:14:::1;2278:2:::0;16280::::1;:14;:::i;:::-;16258:36;::::0;:19;:36:::1;:::i;:::-;16240:15;:54:::0;-1:-1:-1;16156:146:0:o;6474:192::-;6222:6;;-1:-1:-1;;;;;6222:6:0;343:10;6284:23;6276:68;;;;-1:-1:-1;;;6276:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6563:22:0;::::1;6555:73;;;::::0;-1:-1:-1;;;6555:73:0;;12279:2:1;6555:73:0::1;::::0;::::1;12261:21:1::0;12318:2;12298:18;;;12291:30;12357:34;12337:18;;;12330:62;-1:-1:-1;;;12408:18:1;;;12401:36;12454:19;;6555:73:0::1;12077:402:1::0;6555:73:0::1;6639:19;6649:8;6639:9;:19::i;5182:380::-:0;-1:-1:-1;;;;;5318:19:0;;5310:68;;;;-1:-1:-1;;;5310:68:0;;12686:2:1;5310:68:0;;;12668:21:1;12725:2;12705:18;;;12698:30;12764:34;12744:18;;;12737:62;-1:-1:-1;;;12815:18:1;;;12808:34;12859:19;;5310:68:0;12484:400:1;5310:68:0;-1:-1:-1;;;;;5397:21:0;;5389:68;;;;-1:-1:-1;;;5389:68:0;;13091:2:1;5389:68:0;;;13073:21:1;13130:2;13110:18;;;13103:30;13169:34;13149:18;;;13142:62;-1:-1:-1;;;13220:18:1;;;13213:32;13262:19;;5389:68:0;12889:398:1;5389:68:0;-1:-1:-1;;;;;5470:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5522:32;;1730:25:1;;;5522:32:0;;1703:18:1;5522:32:0;;;;;;;5182:380;;;:::o;11648:1933::-;11764:1;11755:6;:10;11747:64;;;;-1:-1:-1;;;11747:64:0;;13494:2:1;11747:64:0;;;13476:21:1;13533:2;13513:18;;;13506:30;13572:34;13552:18;;;13545:62;-1:-1:-1;;;13623:18:1;;;13616:39;13672:19;;11747:64:0;13292:405:1;11747:64:0;-1:-1:-1;;;;;11829:17:0;;;;;;:9;:17;;;;;;;;11828:18;:43;;;;-1:-1:-1;;;;;;11851:20:0;;;;;;:9;:20;;;;;;;;11850:21;11828:43;11824:122;;;11896:14;;-1:-1:-1;;;11896:14:0;;;;11888:46;;;;-1:-1:-1;;;11888:46:0;;13904:2:1;11888:46:0;;;13886:21:1;13943:2;13923:18;;;13916:30;-1:-1:-1;;;13962:18:1;;;13955:49;14021:18;;11888:46:0;13702:343:1;11888:46:0;11970:13;;-1:-1:-1;;;;;11960:23:0;;;11970:13;;11960:23;:48;;;;-1:-1:-1;;;;;;11988:20:0;;;;;;:9;:20;;;;;;;;11987:21;11960:48;11956:200;;;12066:10;;12056:6;12033:20;12043:9;-1:-1:-1;;;;;2513:18:0;2486:7;2513:18;;;;;;;;;;;;2412:127;12033:20;:29;;;;:::i;:::-;:43;;12025:119;;;;-1:-1:-1;;;12025:119:0;;14252:2:1;12025:119:0;;;14234:21:1;;;14271:18;;;14264:30;14330:34;14310:18;;;14303:62;14382:18;;12025:119:0;14050:356:1;12025:119:0;12180:13;;-1:-1:-1;;;;;12170:23:0;;;12180:13;;12170:23;;;;:48;;-1:-1:-1;;;;;;12198:20:0;;;;;;:9;:20;;;;;;;;12197:21;12170:48;:70;;;;-1:-1:-1;;;;;;12223:17:0;;;;;;:9;:17;;;;;;;;12222:18;12170:70;12166:296;;;12274:13;;-1:-1:-1;;;;;12261:26:0;;;12274:13;;12261:26;12257:194;;12349:10;;12339:6;12316:20;12326:9;-1:-1:-1;;;;;2513:18:0;2486:7;2513:18;;;;;;;;;;;;2412:127;12316:20;:29;;;;:::i;:::-;:43;;12308:127;;;;-1:-1:-1;;;12308:127:0;;14252:2:1;12308:127:0;;;14234:21:1;;;14271:18;;;14264:30;14330:34;14310:18;;;14303:62;14382:18;;12308:127:0;14050:356:1;12308:127:0;12481:15;12507:11;12529:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;12529:25:0;-1:-1:-1;;;;;12571:17:0;;;;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;12592:20:0;;;;;;:9;:20;;;;;;;;12571:41;12567:488;;;12633:1;12627:7;;12567:488;;;12669:13;;-1:-1:-1;;;;;12669:13:0;;;12656:26;;;;12652:403;;12754:17;;:9;12732:19;12710;;:41;;12732:19;12710:41;:::i;:::-;:61;;;;:::i;:::-;12786:24;;;;;;;;12801:9;12786:24;;;;;;;;;;;;;;;;;;12700:71;;-1:-1:-1;12786:24:0;-1:-1:-1;12652:403:0;;;12852:13;;-1:-1:-1;;;;;12842:23:0;;;12852:13;;12842:23;:67;;;;-1:-1:-1;12890:18:0;;-1:-1:-1;;;;;12869:40:0;;;12890:18;;12869:40;;12842:67;12838:217;;;12979:16;;:8;12958:18;12937;;:39;;12958:18;12937:39;:::i;:::-;:58;;;;:::i;:::-;13010:23;;;;;;;;13025:8;13010:23;;;;;;;;;;;;;;;;;;12927:68;;-1:-1:-1;13010:23:0;-1:-1:-1;12838:217:0;13093:3;13073:16;13082:7;13073:6;:16;:::i;:::-;13072:24;;;;:::i;:::-;13121:13;;13066:30;;-1:-1:-1;;;;;;13111:23:0;;;13121:13;;13111:23;;;;:53;;-1:-1:-1;13151:13:0;;-1:-1:-1;;;;;13138:26:0;;;13151:13;;13138:26;;13111:53;13108:90;;;13186:1;13180:7;;13108:90;13222:10;;-1:-1:-1;;;13222:10:0;;;;:37;;;;-1:-1:-1;13246:13:0;;-1:-1:-1;;;;;13236:23:0;;;13246:13;;13236:23;;13222:37;13218:73;;;13261:30;13269:7;13278:12;13261:7;:30::i;:::-;13304:48;13320:6;13328:9;13339:12;13348:3;13339:6;:12;:::i;:::-;13304:15;:48::i;:::-;13367:7;;13363:211;;13401:11;;13397:164;;13433:17;13474:3;13454:16;13463:7;13454:6;:16;:::i;:::-;13453:24;;;;:::i;:::-;13433:44;;13496:49;13512:6;13528:4;13535:9;13496:15;:49::i;:::-;13414:147;13397:164;11736:1845;;;11648:1933;;;:::o;5592:319::-;5707:6;5682:21;:31;;5674:73;;;;-1:-1:-1;;;5674:73:0;;14835:2:1;5674:73:0;;;14817:21:1;14874:2;14854:18;;;14847:30;14913:31;14893:18;;;14886:59;14962:18;;5674:73:0;14633:353:1;5674:73:0;5761:12;5779:9;-1:-1:-1;;;;;5779:14:0;5802:6;5779:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5760:54;;;5833:7;5825:78;;;;-1:-1:-1;;;5825:78:0;;15403:2:1;5825:78:0;;;15385:21:1;15442:2;15422:18;;;15415:30;15481:34;15461:18;;;15454:62;15552:28;15532:18;;;15525:56;15598:19;;5825:78:0;15201:422:1;6674:173:0;6749:6;;;-1:-1:-1;;;;;6766:17:0;;;-1:-1:-1;;;;;;6766:17:0;;;;;;;6799:40;;6749:6;;;6766:17;6749:6;;6799:40;;6730:16;;6799:40;6719:128;6674:173;:::o;13589:1457::-;8914:7;;-1:-1:-1;;;8914:7:0;;;;8909:101;;8938:7;:14;;-1:-1:-1;;;;8938:14:0;-1:-1:-1;;;8938:14:0;;;13678:49;;13709:7:::1;13678:49;13781:4;13737:23;2513:18:::0;;;;;;;;;;;13821:15:::1;::::0;13802:34;::::1;13798:1241;;13875:1;13857:15;;:19;13853:93;;;-1:-1:-1::0;13915:15:0::1;::::0;13853:93:::1;13960:19;13982:11;:7:::0;13992:1:::1;13982:11;:::i;:::-;13960:33;;14008:23;14076:11;14053:9;:19;;;14035:15;:37;;;;:::i;:::-;14034:53;;;;:::i;:::-;14008:79:::0;-1:-1:-1;14102:20:0::1;14125:33;14008:79:::0;14125:15;:33:::1;:::i;:::-;14102:56:::0;-1:-1:-1;14198:21:0::1;14248:30;14102:56:::0;14248:16:::1;:30::i;:::-;14307:20;14330:38;14354:14:::0;14330:21:::1;:38;:::i;:::-;14307:61;;14383:19;14435:9;:19;;;14421:11;:33;;;;:::i;:::-;14405:50;::::0;:12;:50:::1;:::i;:::-;14383:72;;14470:20;14507:9;:19;;;14493:11;:33;;;;:::i;:::-;14470:56:::0;-1:-1:-1;14545:17:0;;14541:101:::1;;14583:43;14596:15;14613:12;14583;:43::i;:::-;14697:19:::0;;14656:20:::1;::::0;14679:15:::1;:11:::0;14693:1:::1;14679:15;:::i;:::-;:37;;;;:::i;:::-;14656:60:::0;-1:-1:-1;14735:16:0;;14731:105:::1;;14780:15;::::0;14772:48:::1;::::0;-1:-1:-1;;;;;14780:15:0::1;14807:12:::0;14772:34:::1;:48::i;:::-;14887:17;::::0;::::1;::::0;14848:18:::1;::::0;14869:15:::1;:11:::0;14883:1:::1;14869:15;:::i;:::-;:35;;;;:::i;:::-;14848:56:::0;-1:-1:-1;14923:14:0;;14919:99:::1;;14966:13;::::0;14958:44:::1;::::0;-1:-1:-1;;;;;14966:13:0::1;14991:10:::0;14958:32:::1;:44::i;:::-;13838:1201;;;;;;;;;13798:1241;13667:1379;8967:1;8983:7:::0;:15;;-1:-1:-1;;;;8983:15:0;;;8909:101;13589:1457;;:::o;4301:578::-;-1:-1:-1;;;;;4441:20:0;;4433:70;;;;-1:-1:-1;;;4433:70:0;;15830:2:1;4433:70:0;;;15812:21:1;15869:2;15849:18;;;15842:30;15908:34;15888:18;;;15881:62;-1:-1:-1;;;15959:18:1;;;15952:35;16004:19;;4433:70:0;15628:401:1;4433:70:0;-1:-1:-1;;;;;4522:23:0;;4514:71;;;;-1:-1:-1;;;4514:71:0;;16236:2:1;4514:71:0;;;16218:21:1;16275:2;16255:18;;;16248:30;16314:34;16294:18;;;16287:62;-1:-1:-1;;;16365:18:1;;;16358:33;16408:19;;4514:71:0;16034:399:1;4514:71:0;-1:-1:-1;;;;;4622:17:0;;4598:21;4622:17;;;;;;;;;;;4658:23;;;;4650:74;;;;-1:-1:-1;;;4650:74:0;;16640:2:1;4650:74:0;;;16622:21:1;16679:2;16659:18;;;16652:30;16718:34;16698:18;;;16691:62;-1:-1:-1;;;16769:18:1;;;16762:36;16815:19;;4650:74:0;16438:402:1;4650:74:0;4755:22;4771:6;4755:13;:22;:::i;:::-;-1:-1:-1;;;;;4735:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4788:20;;;;;;;;:30;;4812:6;;4735:9;4788:30;;4812:6;;4788:30;:::i;:::-;;;;;;;;4853:9;-1:-1:-1;;;;;4836:35:0;4845:6;-1:-1:-1;;;;;4836:35:0;;4864:6;4836:35;;;;1730:25:1;;1718:2;1703:18;;1584:177;4836:35:0;;;;;;;;4422:457;4301:578;;;:::o;15054:553::-;15142:1;15128:11;:15;15120:62;;;;-1:-1:-1;;;15120:62:0;;;;;;;:::i;:::-;15217:16;;;15231:1;15217:16;;;;;;;;15193:21;;15217:16;;;;;;;;;;-1:-1:-1;15217:16:0;15193:40;;15262:4;15244;15249:1;15244:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15244:23:0;;;:7;;;;;;;;;;:23;;;;15288:18;;:25;;;-1:-1:-1;;;15288:25:0;;;;:18;;;;;:23;;:25;;;;;15244:7;;15288:25;;;;;:18;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15278:4;15283:1;15278:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15278:35:0;;;:7;;;;;;;;;:35;15356:18;;15324:65;;15341:4;;15356:18;15377:11;15324:8;:65::i;:::-;15400:18;;:199;;-1:-1:-1;;;15400:199:0;;-1:-1:-1;;;;;15400:18:0;;;;:69;;:199;;15484:11;;15400:18;;15526:4;;15553;;15573:15;;15400:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15615:423;15728:18;;15696:65;;15713:4;;-1:-1:-1;;;;;15728:18:0;15749:11;15696:8;:65::i;:::-;15772:18;;:258;;-1:-1:-1;;;15772:258:0;;15849:4;15772:258;;;18691:34:1;18741:18;;;18734:34;;;15772:18:0;18784::1;;;18777:34;;;18827:18;;;18820:34;8384:42:0;18870:19:1;;;18863:44;16004:15:0;18923:19:1;;;18916:35;-1:-1:-1;;;;;15772:18:0;;;;:34;;15815:9;;18625:19:1;;15772:258:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15615:423;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:1:o;470:548::-;582:4;611:2;640;629:9;622:21;672:6;666:13;715:6;710:2;699:9;695:18;688:34;740:1;750:140;764:6;761:1;758:13;750:140;;;859:14;;;855:23;;849:30;825:17;;;844:2;821:26;814:66;779:10;;750:140;;;754:3;939:1;934:2;925:6;914:9;910:22;906:31;899:42;1009:2;1002;998:7;993:2;985:6;981:15;977:29;966:9;962:45;958:54;950:62;;;;470:548;;;;:::o;1215:118::-;1301:5;1294:13;1287:21;1280:5;1277:32;1267:60;;1323:1;1320;1313:12;1338:241;1394:6;1447:2;1435:9;1426:7;1422:23;1418:32;1415:52;;;1463:1;1460;1453:12;1415:52;1502:9;1489:23;1521:28;1543:5;1521:28;:::i;:::-;1568:5;1338:241;-1:-1:-1;;;1338:241:1:o;1766:456::-;1843:6;1851;1859;1912:2;1900:9;1891:7;1887:23;1883:32;1880:52;;;1928:1;1925;1918:12;1880:52;1967:9;1954:23;1986:31;2011:5;1986:31;:::i;:::-;2036:5;-1:-1:-1;2093:2:1;2078:18;;2065:32;2106:33;2065:32;2106:33;:::i;:::-;1766:456;;2158:7;;-1:-1:-1;;;2212:2:1;2197:18;;;;2184:32;;1766:456::o;2624:247::-;2683:6;2736:2;2724:9;2715:7;2711:23;2707:32;2704:52;;;2752:1;2749;2742:12;2704:52;2791:9;2778:23;2810:31;2835:5;2810:31;:::i;2876:382::-;2941:6;2949;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3057:9;3044:23;3076:31;3101:5;3076:31;:::i;:::-;3126:5;-1:-1:-1;3183:2:1;3168:18;;3155:32;3196:30;3155:32;3196:30;:::i;:::-;3245:7;3235:17;;;2876:382;;;;;:::o;3263:180::-;3322:6;3375:2;3363:9;3354:7;3350:23;3346:32;3343:52;;;3391:1;3388;3381:12;3343:52;-1:-1:-1;3414:23:1;;3263:180;-1:-1:-1;3263:180:1:o;3679:316::-;3756:6;3764;3772;3825:2;3813:9;3804:7;3800:23;3796:32;3793:52;;;3841:1;3838;3831:12;3793:52;-1:-1:-1;;3864:23:1;;;3934:2;3919:18;;3906:32;;-1:-1:-1;3985:2:1;3970:18;;;3957:32;;3679:316;-1:-1:-1;3679:316:1:o;4000:388::-;4068:6;4076;4129:2;4117:9;4108:7;4104:23;4100:32;4097:52;;;4145:1;4142;4135:12;4097:52;4184:9;4171:23;4203:31;4228:5;4203:31;:::i;:::-;4253:5;-1:-1:-1;4310:2:1;4295:18;;4282:32;4323:33;4282:32;4323:33;:::i;4393:356::-;4595:2;4577:21;;;4614:18;;;4607:30;4673:34;4668:2;4653:18;;4646:62;4740:2;4725:18;;4393:356::o;5177:398::-;5379:2;5361:21;;;5418:2;5398:18;;;5391:30;5457:34;5452:2;5437:18;;5430:62;-1:-1:-1;;;5523:2:1;5508:18;;5501:32;5565:3;5550:19;;5177:398::o;5580:184::-;5650:6;5703:2;5691:9;5682:7;5678:23;5674:32;5671:52;;;5719:1;5716;5709:12;5671:52;-1:-1:-1;5742:16:1;;5580:184;-1:-1:-1;5580:184:1:o;6396:245::-;6463:6;6516:2;6504:9;6495:7;6491:23;6487:32;6484:52;;;6532:1;6529;6522:12;6484:52;6564:9;6558:16;6583:28;6605:5;6583:28;:::i;6646:380::-;6725:1;6721:12;;;;6768;;;6789:61;;6843:4;6835:6;6831:17;6821:27;;6789:61;6896:2;6888:6;6885:14;6865:18;6862:38;6859:161;;6942:10;6937:3;6933:20;6930:1;6923:31;6977:4;6974:1;6967:15;7005:4;7002:1;6995:15;6859:161;;6646:380;;;:::o;7440:127::-;7501:10;7496:3;7492:20;7489:1;7482:31;7532:4;7529:1;7522:15;7556:4;7553:1;7546:15;7572:128;7639:9;;;7660:11;;;7657:37;;;7674:18;;:::i;7705:125::-;7770:9;;;7791:10;;;7788:36;;;7804:18;;:::i;7835:398::-;8037:2;8019:21;;;8076:2;8056:18;;;8049:30;8115:34;8110:2;8095:18;;8088:62;-1:-1:-1;;;8181:2:1;8166:18;;8159:32;8223:3;8208:19;;7835:398::o;9404:422::-;9493:1;9536:5;9493:1;9550:270;9571:7;9561:8;9558:21;9550:270;;;9630:4;9626:1;9622:6;9618:17;9612:4;9609:27;9606:53;;;9639:18;;:::i;:::-;9689:7;9679:8;9675:22;9672:55;;;9709:16;;;;9672:55;9788:22;;;;9748:15;;;;9550:270;;;9554:3;9404:422;;;;;:::o;9831:806::-;9880:5;9910:8;9900:80;;-1:-1:-1;9951:1:1;9965:5;;9900:80;9999:4;9989:76;;-1:-1:-1;10036:1:1;10050:5;;9989:76;10081:4;10099:1;10094:59;;;;10167:1;10162:130;;;;10074:218;;10094:59;10124:1;10115:10;;10138:5;;;10162:130;10199:3;10189:8;10186:17;10183:43;;;10206:18;;:::i;:::-;-1:-1:-1;;10262:1:1;10248:16;;10277:5;;10074:218;;10376:2;10366:8;10363:16;10357:3;10351:4;10348:13;10344:36;10338:2;10328:8;10325:16;10320:2;10314:4;10311:12;10307:35;10304:77;10301:159;;;-1:-1:-1;10413:19:1;;;10445:5;;10301:159;10492:34;10517:8;10511:4;10492:34;:::i;:::-;10562:6;10558:1;10554:6;10550:19;10541:7;10538:32;10535:58;;;10573:18;;:::i;:::-;10611:20;;9831:806;-1:-1:-1;;;9831:806:1:o;10642:140::-;10700:5;10729:47;10770:4;10760:8;10756:19;10750:4;10729:47;:::i;10787:168::-;10860:9;;;10891;;10908:15;;;10902:22;;10888:37;10878:71;;10929:18;;:::i;14411:217::-;14451:1;14477;14467:132;;14521:10;14516:3;14512:20;14509:1;14502:31;14556:4;14553:1;14546:15;14584:4;14581:1;14574:15;14467:132;-1:-1:-1;14613:9:1;;14411:217::o;16977:127::-;17038:10;17033:3;17029:20;17026:1;17019:31;17069:4;17066:1;17059:15;17093:4;17090:1;17083:15;17109:251;17179:6;17232:2;17220:9;17211:7;17207:23;17203:32;17200:52;;;17248:1;17245;17238:12;17200:52;17280:9;17274:16;17299:31;17324:5;17299:31;:::i;17365:980::-;17627:4;17675:3;17664:9;17660:19;17706:6;17695:9;17688:25;17732:2;17770:6;17765:2;17754:9;17750:18;17743:34;17813:3;17808:2;17797:9;17793:18;17786:31;17837:6;17872;17866:13;17903:6;17895;17888:22;17941:3;17930:9;17926:19;17919:26;;17980:2;17972:6;17968:15;17954:29;;18001:1;18011:195;18025:6;18022:1;18019:13;18011:195;;;18090:13;;-1:-1:-1;;;;;18086:39:1;18074:52;;18181:15;;;;18146:12;;;;18122:1;18040:9;18011:195;;;-1:-1:-1;;;;;;;18262:32:1;;;;18257:2;18242:18;;18235:60;-1:-1:-1;;;18326:3:1;18311:19;18304:35;18223:3;17365:980;-1:-1:-1;;;17365:980:1:o;18962:306::-;19050:6;19058;19066;19119:2;19107:9;19098:7;19094:23;19090:32;19087:52;;;19135:1;19132;19125:12;19087:52;19164:9;19158:16;19148:26;;19214:2;19203:9;19199:18;19193:25;19183:35;;19258:2;19247:9;19243:18;19237:25;19227:35;;18962:306;;;;;:::o
Swarm Source
ipfs://cc931ae70c278da834ffd29db8e3d05e8cedc54d2af6dce7159fb852813e33cf
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.