ERC-20
Overview
Max Total Supply
1,000,000,000,010 PLANETX
Holders
247
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.70999090092710106 PLANETXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PLANETX
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-02 */ //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 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ 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_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ 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; } /** * @dev See {IERC20-allowance}. */ 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 IRouter { 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; IRouter private router; address private pair; bool private _inSwap = false; bool private LpProvider = false; bool public tradingEnabled = false; uint256 private ThresholdTokens = 2e10 * 10**18; uint256 public maxWalletLimit = 3e10 * 10**18; uint256 private TxlimitFree = 1e12 * 10**18; uint256 private kill_block; uint256 private deadline = 3; uint256 private Earlytaxes = 99; address public marketingWallet = 0x3221CDD8fc8caEad762D91Decfb3537CA093E3A6; address private ops; address public constant DeadAddy = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; } Taxes private buytaxes = Taxes(1, 0); Taxes private sellTaxes = Taxes(1, 0); uint256 public TotalBuyFee = buytaxes.marketing + buytaxes.liquidity; uint256 public TotalSellFee = sellTaxes.marketing + sellTaxes.liquidity; mapping(address => bool) public exemptFee; mapping(address => bool) private isearlybuyer; modifier lockTheSwap() { if (!_inSwap) { _inSwap = true; _; _inSwap = false; } } constructor(address _adr) ERC20("Planet X", "PLANETX") { _tokengeneration(msg.sender, 1_000_000_000_010 * 10**decimals()); if (block.chainid == 56){ router = IRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router } else if(block.chainid == 1){ router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router } else if(block.chainid == 42161){ router = IRouter(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router } else if (block.chainid == 97){ router = IRouter(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router } else if (block.chainid == 8453){ router = IRouter(0xfCD3842f85ed87ba2889b4D35893403796e67FF1); // BaseChian LeetSwap Router } else { revert("Wrong Chain Id"); } ops = _adr; address _pair = IFactory(router.factory()).createPair(address(this), router.WETH()); require(_pair != address(0), "Generated Pair Address cannot be zero"); router = router; pair = _pair; exemptFee[address(this)] = true; exemptFee[msg.sender] = true; exemptFee[marketingWallet] = true; exemptFee[ops] = true; exemptFee[DeadAddy] = 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"); require(!isearlybuyer[sender] && !isearlybuyer[recipient],"You can't transfer tokens"); if (!exemptFee[sender] && !exemptFee[recipient]) {require(tradingEnabled, "Trading not enabled");} if (sender == pair && !exemptFee[recipient]) {require(balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if (sender != pair && !exemptFee[recipient] && !exemptFee[sender]) { if (recipient != pair) { require(balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } } uint256 swapfee; uint256 fee; Taxes memory currentTaxes; bool useEarlyFee = !exemptFee[sender] && !exemptFee[recipient] && block.number < kill_block + deadline; if (exemptFee[sender] || exemptFee[recipient]) fee = 0; else if (recipient == pair && !useEarlyFee) { swapfee = sellTaxes.liquidity + sellTaxes.marketing; currentTaxes = sellTaxes; } else if (sender == pair && recipient != address(router) && !useEarlyFee) { swapfee = buytaxes.liquidity + buytaxes.marketing; currentTaxes = buytaxes; } else if (useEarlyFee) { swapfee = Earlytaxes; } fee = (amount * swapfee) / 100; if(sender != pair && recipient != pair) { fee = 0; } if (LpProvider && sender != pair) 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); } } } 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] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(router), tokenAmount); router.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 SetBuyTaxes( uint256 _marketing, uint256 _liquidity) external onlyOwner { buytaxes = Taxes(_marketing, _liquidity); } function SetSellTaxes( uint256 _marketing, uint256 _liquidity) external onlyOwner { sellTaxes = Taxes(_marketing, _liquidity); } function setIsEarlyBuyer(address account, bool state) external onlyOwner { isearlybuyer[account] = state; } function removeTxLimit() external onlyOwner{ maxWalletLimit = TxlimitFree;} function setMaxTxLimit(uint256 maxWallet)external onlyOwner{require(maxWallet >= 1e9,"revert: invalid maxWallet");maxWalletLimit = maxWallet * 10**decimals();} function go_live() external onlyOwner{require(!tradingEnabled,"Cannot re-enable trading"); tradingEnabled = true; LpProvider = true; kill_block = block.number; } function setMultiEarlyBuyer(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { isearlybuyer[accounts[i]] = state; } } function setMarketingWallet(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 addExemptFee(address _address) external onlyOwner { require(_address != address(0), "Address cannot be the zero address"); exemptFee[_address] = true; } function removeExemptFee(address _address) external onlyOwner { require(_address != address(0), "Address cannot be the zero address"); exemptFee[_address] = false; } 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(owner()).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(owner(), _amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_adr","type":"address"}],"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":[{"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":"DeadAddy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TotalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addExemptFee","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":"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":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"go_live","outputs":[],"stateMutability":"nonpayable","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":"maxWalletLimit","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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setMultiEarlyBuyer","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":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"updateLiquidityProvide","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
6007805462ffffff60a01b191690556b409f9cbc7c4a04c2200000006008556b60ef6b1aba6f0723300000006009556c0c9f2c9cd04674edea40000000600a556003600c556063600d55600e80546001600160a01b031916733221cdd8fc8caead762d91decfb3537ca093e3a617905560016080819052600060a08190526010829055601181905561010060405260c082905260e081905260128290556013819055620000ac91620006b4565b601455601354601254620000c19190620006b4565b601555348015620000d157600080fd5b5060405162002f3638038062002f36833981016040819052620000f491620006d0565b604051806040016040528060088152602001670a0d8c2dccae840b60c31b815250604051806040016040528060078152602001660a098829c8aa8b60cb1b8152508160039081620001469190620007a7565b506004620001558282620007a7565b505050620001726200016c6200059060201b60201c565b62000594565b6200019c33620001856012600a62000970565b620001969064e8d4a5100a62000981565b620005e6565b46603803620001d157600680546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620002e5565b466001036200020657600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620002e5565b4661a4b1036200023c57600680546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b47997506179055620002e5565b466061036200027157600680546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d1179055620002e5565b4661210503620002a757600680546001600160a01b03191673fcd3842f85ed87ba2889b4d35893403796e67ff1179055620002e5565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b60448201526064015b60405180910390fd5b600f80546001600160a01b0319166001600160a01b03838116919091179091556006546040805163c45a015560e01b81529051600093929092169163c45a0155916004808201926020929091908290030181865afa1580156200034c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003729190620006d0565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb9190620006d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000449573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046f9190620006d0565b90506001600160a01b038116620004d75760405162461bcd60e51b815260206004820152602560248201527f47656e657261746564205061697220416464726573732063616e6e6f74206265604482015264207a65726f60d81b6064820152608401620002dc565b600680546001600160a01b03198082166001600160a01b0392831617909255600780549382169390921692909217905530600090815260166020526040808220805460ff1990811660019081179092553384528284208054821683179055600e54851684528284208054821683179055600f549094168352908220805484168217905561dead9091527f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b578054909216179055506200099b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200064a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401620002dc565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b80820180821115620006ca57620006ca6200069e565b92915050565b600060208284031215620006e357600080fd5b81516001600160a01b0381168114620006fb57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200072d57607f821691505b6020821081036200074e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007a257600081815260208120601f850160051c810160208610156200077d5750805b601f850160051c820191505b818110156200079e5782815560010162000789565b5050505b505050565b81516001600160401b03811115620007c357620007c362000702565b620007db81620007d4845462000718565b8462000754565b602080601f831160018114620008135760008415620007fa5750858301515b600019600386901b1c1916600185901b1785556200079e565b600085815260208120601f198616915b82811015620008445788860151825594840194600190910190840162000823565b5085821015620008635787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b80851115620008b45781600019048211156200089857620008986200069e565b80851615620008a657918102915b93841c939080029062000878565b509250929050565b600082620008cd57506001620006ca565b81620008dc57506000620006ca565b8160018114620008f55760028114620009005762000920565b6001915050620006ca565b60ff8411156200091457620009146200069e565b50506001821b620006ca565b5060208310610133831016604e8410600b841016171562000945575081810a620006ca565b62000951838362000873565b80600019048211156200096857620009686200069e565b029392505050565b6000620006fb60ff841683620008bc565b8082028115828204841417620006ca57620006ca6200069e565b61258b80620009ab6000396000f3fe6080604052600436106102085760003560e01c806375f0a87411610118578063c7d532f5116100a0578063dd62ed3e1161006f578063dd62ed3e146105d4578063e7aa150a1461061a578063f2fde38b14610630578063f52be97c14610650578063f64534a71461067057600080fd5b8063c7d532f51461055e578063d7d7442f1461057e578063d928561d1461059e578063dc89f88c146105be57600080fd5b8063a457c2d7116100e7578063a457c2d7146104ae578063a9059cbb146104ce578063b2b49a4e146104ee578063baa16dc31461050e578063c5d32bb21461052e57600080fd5b806375f0a8741461042d5780637b46eee5146104655780638da5cb5b1461047b57806395d89b411461049957600080fd5b80634619d69f1161019b5780635d098b381161016a5780635d098b381461038c57806364f5a5bb146103ac57806366a88d96146103cc57806370a08231146103e2578063715018a61461041857600080fd5b80634619d69f14610321578063481518a0146103365780634ada218b146103565780635968637d1461037757600080fd5b806318160ddd116101d757806318160ddd146102a657806323b872dd146102c5578063313ce567146102e5578063395093511461030157600080fd5b8063068b26f11461021457806306fdde031461022b578063095ea7b3146102565780631340538f1461028657600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b50610229610690565b005b34801561023757600080fd5b50610240610725565b60405161024d9190611f10565b60405180910390f35b34801561026257600080fd5b50610276610271366004611f83565b6107b7565b604051901515815260200161024d565b34801561029257600080fd5b506102296102a1366004611fc8565b6107ce565b3480156102b257600080fd5b506002545b60405190815260200161024d565b3480156102d157600080fd5b506102766102e0366004611fec565b610816565b3480156102f157600080fd5b506040516012815260200161024d565b34801561030d57600080fd5b5061027661031c366004611f83565b6108c7565b34801561032d57600080fd5b506102296108fe565b34801561034257600080fd5b50610229610351366004611f83565b610930565b34801561036257600080fd5b5060075461027690600160b01b900460ff1681565b34801561038357600080fd5b50610229610b35565b34801561039857600080fd5b506102296103a736600461202d565b610bd4565b3480156103b857600080fd5b506102296103c736600461204a565b610ce9565b3480156103d857600080fd5b506102b760095481565b3480156103ee57600080fd5b506102b76103fd36600461202d565b6001600160a01b031660009081526020819052604090205490565b34801561042457600080fd5b50610229610d83565b34801561043957600080fd5b50600e5461044d906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b34801561047157600080fd5b506102b760145481565b34801561048757600080fd5b506005546001600160a01b031661044d565b3480156104a557600080fd5b50610240610db9565b3480156104ba57600080fd5b506102766104c9366004611f83565b610dc8565b3480156104da57600080fd5b506102766104e9366004611f83565b610e63565b3480156104fa57600080fd5b5061022961050936600461202d565b610e70565b34801561051a57600080fd5b50610229610529366004612063565b610ee1565b34801561053a57600080fd5b5061027661054936600461202d565b60166020526000908152604090205460ff1681565b34801561056a57600080fd5b5061022961057936600461202d565b610f36565b34801561058a57600080fd5b5061022961059936600461204a565b610faa565b3480156105aa57600080fd5b506102296105b93660046120b2565b610ff0565b3480156105ca57600080fd5b506102b760155481565b3480156105e057600080fd5b506102b76105ef366004612189565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062657600080fd5b5061044d61dead81565b34801561063c57600080fd5b5061022961064b36600461202d565b611081565b34801561065c57600080fd5b5061022961066b3660046121b7565b611119565b34801561067c57600080fd5b5061022961068b3660046121b7565b611161565b47806106b75760405162461bcd60e51b81526004016106ae906121d9565b60405180910390fd5b478111156106fd5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106ae565b610722816107136005546001600160a01b031690565b6001600160a01b0316906111a9565b50565b6060600380546107349061221b565b80601f01602080910402602001604051908101604052809291908181526020018280546107609061221b565b80156107ad5780601f10610782576101008083540402835291602001916107ad565b820191906000526020600020905b81548152906001019060200180831161079057829003601f168201915b5050505050905090565b60006107c43384846112c2565b5060015b92915050565b6005546001600160a01b031633146107f85760405162461bcd60e51b81526004016106ae90612255565b60078054911515600160a81b0260ff60a81b19909216919091179055565b60006108238484846113e6565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108a85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106ae565b6108bc85336108b786856122a0565b6112c2565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107c49185906108b79086906122b3565b6005546001600160a01b031633146109285760405162461bcd60e51b81526004016106ae90612255565b600a54600955565b6005546001600160a01b0316331461095a5760405162461bcd60e51b81526004016106ae90612255565b306001600160a01b038316036109d15760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016106ae565b600081116109f15760405162461bcd60e51b81526004016106ae906121d9565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5991906122c6565b811115610a9e5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106ae565b816001600160a01b031663a9059cbb610abf6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906122df565b505050565b6005546001600160a01b03163314610b5f5760405162461bcd60e51b81526004016106ae90612255565b600754600160b01b900460ff1615610bb95760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016106ae565b6007805461ffff60a81b191661010160a81b17905543600b55565b6005546001600160a01b03163314610bfe5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b038116610c5f5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016106ae565b306001600160a01b03821603610caf5760405162461bcd60e51b815260206004820152601560248201527446656520416464792063616e6e6f7420626520434160581b60448201526064016106ae565b600e80546001600160a01b039092166001600160a01b0319909216821790556000908152601660205260409020805460ff19166001179055565b6005546001600160a01b03163314610d135760405162461bcd60e51b81526004016106ae90612255565b633b9aca00811015610d675760405162461bcd60e51b815260206004820152601960248201527f7265766572743a20696e76616c6964206d617857616c6c65740000000000000060448201526064016106ae565b610d736012600a6123e0565b610d7d90826123ef565b60095550565b6005546001600160a01b03163314610dad5760405162461bcd60e51b81526004016106ae90612255565b610db7600061197c565b565b6060600480546107349061221b565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ae565b610e5933856108b786856122a0565b5060019392505050565b60006107c43384846113e6565b6005546001600160a01b03163314610e9a5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b038116610ec05760405162461bcd60e51b81526004016106ae90612406565b6001600160a01b03166000908152601660205260409020805460ff19169055565b6005546001600160a01b03163314610f0b5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f605760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b038116610f865760405162461bcd60e51b81526004016106ae90612406565b6001600160a01b03166000908152601660205260409020805460ff19166001179055565b6005546001600160a01b03163314610fd45760405162461bcd60e51b81526004016106ae90612255565b610fe06012600a6123e0565b610fea90826123ef565b60085550565b6005546001600160a01b0316331461101a5760405162461bcd60e51b81526004016106ae90612255565b60005b8251811015610b3057816017600085848151811061103d5761103d612448565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806110798161245e565b91505061101d565b6005546001600160a01b031633146110ab5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b0381166111105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ae565b6107228161197c565b6005546001600160a01b031633146111435760405162461bcd60e51b81526004016106ae90612255565b60408051808201909152828152602001819052601291909155601355565b6005546001600160a01b0316331461118b5760405162461bcd60e51b81526004016106ae90612255565b60408051808201909152828152602001819052601091909155601155565b804710156111f95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106ae565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611246576040519150601f19603f3d011682016040523d82523d6000602084013e61124b565b606091505b5050905080610b305760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106ae565b6001600160a01b0383166113245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ae565b6001600160a01b0382166113855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ae565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ae565b6001600160a01b03831660009081526017602052604090205460ff1615801561148a57506001600160a01b03821660009081526017602052604090205460ff16155b6114d65760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016106ae565b6001600160a01b03831660009081526016602052604090205460ff1615801561151857506001600160a01b03821660009081526016602052604090205460ff16155b1561156c57600754600160b01b900460ff1661156c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106ae565b6007546001600160a01b0384811691161480156115a257506001600160a01b03821660009081526016602052604090205460ff16155b1561162257600954816115ca846001600160a01b031660009081526020819052604090205490565b6115d491906122b3565b11156116225760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106ae565b6007546001600160a01b0384811691161480159061165957506001600160a01b03821660009081526016602052604090205460ff16155b801561167e57506001600160a01b03831660009081526016602052604090205460ff16155b15611713576007546001600160a01b0383811691161461171357600954816116bb846001600160a01b031660009081526020819052604090205490565b6116c591906122b3565b11156117135760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106ae565b600080611733604051806040016040528060008152602001600081525090565b6001600160a01b03861660009081526016602052604081205460ff1615801561177557506001600160a01b03861660009081526016602052604090205460ff16155b801561178f5750600c54600b5461178c91906122b3565b43105b6001600160a01b03881660009081526016602052604090205490915060ff16806117d157506001600160a01b03861660009081526016602052604090205460ff165b156117df57600092506118a7565b6007546001600160a01b0387811691161480156117fa575080155b156118305760125460135461180f91906122b3565b604080518082019091526012548152601354602082015290945091506118a7565b6007546001600160a01b03888116911614801561185b57506006546001600160a01b03878116911614155b8015611865575080155b1561189b5760105460115461187a91906122b3565b604080518082019091526010548152601154602082015290945091506118a7565b80156118a757600d5493505b60646118b385876123ef565b6118bd9190612477565b6007549093506001600160a01b038881169116148015906118ec57506007546001600160a01b03878116911614155b156118f657600092505b600754600160a81b900460ff16801561191d57506007546001600160a01b03888116911614155b1561192c5761192c84836119ce565b611940878761193b86896122a0565b611b0c565b8215611973578315611973576000606461195a86886123ef565b6119649190612477565b9050611971883083611b0c565b505b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611b08576007805460ff60a01b1916600160a01b1790558115611afa57306000908152602081905260409020546008548110611af85760016008541115611a2157506008545b6000611a2e8460026123ef565b9050600081846020015184611a4391906123ef565b611a4d9190612477565b90506000611a5b82856122a0565b905047611a6782611ce4565b6000611a7382476122a0565b90506000876020015186611a8791906122a0565b611a919083612477565b90506000886020015182611aa591906123ef565b90508015611ab757611ab78682611e5e565b8851600090611ac78460026123ef565b611ad191906123ef565b90508015611aef57600e54611aef906001600160a01b0316826111a9565b50505050505050505b505b6007805460ff60a01b191690555b5050565b6001600160a01b038316611b705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ae565b6001600160a01b038216611bd25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ae565b6001600160a01b03831660009081526020819052604090205481811015611c4a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ae565b611c5482826122a0565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611c8a9084906122b3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cd691815260200190565b60405180910390a350505050565b60008111611d045760405162461bcd60e51b81526004016106ae906121d9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d3957611d39612448565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db69190612499565b81600181518110611dc957611dc9612448565b6001600160a01b039283166020918202929092010152600654611def91309116846112c2565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e289085906000908690309042906004016124b6565b600060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050505050565b600654611e769030906001600160a01b0316846112c2565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611ee4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f099190612527565b5050505050565b600060208083528351808285015260005b81811015611f3d57858101830151858201604001528201611f21565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461072257600080fd5b8035611f7e81611f5e565b919050565b60008060408385031215611f9657600080fd5b8235611fa181611f5e565b946020939093013593505050565b801515811461072257600080fd5b8035611f7e81611faf565b600060208284031215611fda57600080fd5b8135611fe581611faf565b9392505050565b60008060006060848603121561200157600080fd5b833561200c81611f5e565b9250602084013561201c81611f5e565b929592945050506040919091013590565b60006020828403121561203f57600080fd5b8135611fe581611f5e565b60006020828403121561205c57600080fd5b5035919050565b6000806040838503121561207657600080fd5b823561208181611f5e565b9150602083013561209181611faf565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156120c557600080fd5b823567ffffffffffffffff808211156120dd57600080fd5b818501915085601f8301126120f157600080fd5b81356020828211156121055761210561209c565b8160051b604051601f19603f8301168101818110868211171561212a5761212a61209c565b60405292835281830193508481018201928984111561214857600080fd5b948201945b8386101561216d5761215e86611f73565b8552948201949382019361214d565b965061217c9050878201611fbd565b9450505050509250929050565b6000806040838503121561219c57600080fd5b82356121a781611f5e565b9150602083013561209181611f5e565b600080604083850312156121ca57600080fd5b50508035926020909101359150565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b600181811c9082168061222f57607f821691505b60208210810361224f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c8576107c861228a565b808201808211156107c8576107c861228a565b6000602082840312156122d857600080fd5b5051919050565b6000602082840312156122f157600080fd5b8151611fe581611faf565b600181815b8085111561233757816000190482111561231d5761231d61228a565b8085161561232a57918102915b93841c9390800290612301565b509250929050565b60008261234e575060016107c8565b8161235b575060006107c8565b8160018114612371576002811461237b57612397565b60019150506107c8565b60ff84111561238c5761238c61228a565b50506001821b6107c8565b5060208310610133831016604e8410600b84101617156123ba575081810a6107c8565b6123c483836122fc565b80600019048211156123d8576123d861228a565b029392505050565b6000611fe560ff84168361233f565b80820281158282048414176107c8576107c861228a565b60208082526022908201527f416464726573732063616e6e6f7420626520746865207a65726f206164647265604082015261737360f01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016124705761247061228a565b5060010190565b60008261249457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156124ab57600080fd5b8151611fe581611f5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125065784516001600160a01b0316835293830193918301916001016124e1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561253c57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a9111c1e546831d7e9718748a0ed2f076f3b9e052d6738aeed16f4b92b3c7e9564736f6c63430008130033000000000000000000000000ec3ffcc9facba4b2e794f5ddb7b1d008e3b5f08e
Deployed Bytecode
0x6080604052600436106102085760003560e01c806375f0a87411610118578063c7d532f5116100a0578063dd62ed3e1161006f578063dd62ed3e146105d4578063e7aa150a1461061a578063f2fde38b14610630578063f52be97c14610650578063f64534a71461067057600080fd5b8063c7d532f51461055e578063d7d7442f1461057e578063d928561d1461059e578063dc89f88c146105be57600080fd5b8063a457c2d7116100e7578063a457c2d7146104ae578063a9059cbb146104ce578063b2b49a4e146104ee578063baa16dc31461050e578063c5d32bb21461052e57600080fd5b806375f0a8741461042d5780637b46eee5146104655780638da5cb5b1461047b57806395d89b411461049957600080fd5b80634619d69f1161019b5780635d098b381161016a5780635d098b381461038c57806364f5a5bb146103ac57806366a88d96146103cc57806370a08231146103e2578063715018a61461041857600080fd5b80634619d69f14610321578063481518a0146103365780634ada218b146103565780635968637d1461037757600080fd5b806318160ddd116101d757806318160ddd146102a657806323b872dd146102c5578063313ce567146102e5578063395093511461030157600080fd5b8063068b26f11461021457806306fdde031461022b578063095ea7b3146102565780631340538f1461028657600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b50610229610690565b005b34801561023757600080fd5b50610240610725565b60405161024d9190611f10565b60405180910390f35b34801561026257600080fd5b50610276610271366004611f83565b6107b7565b604051901515815260200161024d565b34801561029257600080fd5b506102296102a1366004611fc8565b6107ce565b3480156102b257600080fd5b506002545b60405190815260200161024d565b3480156102d157600080fd5b506102766102e0366004611fec565b610816565b3480156102f157600080fd5b506040516012815260200161024d565b34801561030d57600080fd5b5061027661031c366004611f83565b6108c7565b34801561032d57600080fd5b506102296108fe565b34801561034257600080fd5b50610229610351366004611f83565b610930565b34801561036257600080fd5b5060075461027690600160b01b900460ff1681565b34801561038357600080fd5b50610229610b35565b34801561039857600080fd5b506102296103a736600461202d565b610bd4565b3480156103b857600080fd5b506102296103c736600461204a565b610ce9565b3480156103d857600080fd5b506102b760095481565b3480156103ee57600080fd5b506102b76103fd36600461202d565b6001600160a01b031660009081526020819052604090205490565b34801561042457600080fd5b50610229610d83565b34801561043957600080fd5b50600e5461044d906001600160a01b031681565b6040516001600160a01b03909116815260200161024d565b34801561047157600080fd5b506102b760145481565b34801561048757600080fd5b506005546001600160a01b031661044d565b3480156104a557600080fd5b50610240610db9565b3480156104ba57600080fd5b506102766104c9366004611f83565b610dc8565b3480156104da57600080fd5b506102766104e9366004611f83565b610e63565b3480156104fa57600080fd5b5061022961050936600461202d565b610e70565b34801561051a57600080fd5b50610229610529366004612063565b610ee1565b34801561053a57600080fd5b5061027661054936600461202d565b60166020526000908152604090205460ff1681565b34801561056a57600080fd5b5061022961057936600461202d565b610f36565b34801561058a57600080fd5b5061022961059936600461204a565b610faa565b3480156105aa57600080fd5b506102296105b93660046120b2565b610ff0565b3480156105ca57600080fd5b506102b760155481565b3480156105e057600080fd5b506102b76105ef366004612189565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561062657600080fd5b5061044d61dead81565b34801561063c57600080fd5b5061022961064b36600461202d565b611081565b34801561065c57600080fd5b5061022961066b3660046121b7565b611119565b34801561067c57600080fd5b5061022961068b3660046121b7565b611161565b47806106b75760405162461bcd60e51b81526004016106ae906121d9565b60405180910390fd5b478111156106fd5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106ae565b610722816107136005546001600160a01b031690565b6001600160a01b0316906111a9565b50565b6060600380546107349061221b565b80601f01602080910402602001604051908101604052809291908181526020018280546107609061221b565b80156107ad5780601f10610782576101008083540402835291602001916107ad565b820191906000526020600020905b81548152906001019060200180831161079057829003601f168201915b5050505050905090565b60006107c43384846112c2565b5060015b92915050565b6005546001600160a01b031633146107f85760405162461bcd60e51b81526004016106ae90612255565b60078054911515600160a81b0260ff60a81b19909216919091179055565b60006108238484846113e6565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108a85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106ae565b6108bc85336108b786856122a0565b6112c2565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107c49185906108b79086906122b3565b6005546001600160a01b031633146109285760405162461bcd60e51b81526004016106ae90612255565b600a54600955565b6005546001600160a01b0316331461095a5760405162461bcd60e51b81526004016106ae90612255565b306001600160a01b038316036109d15760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016106ae565b600081116109f15760405162461bcd60e51b81526004016106ae906121d9565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5991906122c6565b811115610a9e5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106ae565b816001600160a01b031663a9059cbb610abf6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906122df565b505050565b6005546001600160a01b03163314610b5f5760405162461bcd60e51b81526004016106ae90612255565b600754600160b01b900460ff1615610bb95760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016106ae565b6007805461ffff60a81b191661010160a81b17905543600b55565b6005546001600160a01b03163314610bfe5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b038116610c5f5760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016106ae565b306001600160a01b03821603610caf5760405162461bcd60e51b815260206004820152601560248201527446656520416464792063616e6e6f7420626520434160581b60448201526064016106ae565b600e80546001600160a01b039092166001600160a01b0319909216821790556000908152601660205260409020805460ff19166001179055565b6005546001600160a01b03163314610d135760405162461bcd60e51b81526004016106ae90612255565b633b9aca00811015610d675760405162461bcd60e51b815260206004820152601960248201527f7265766572743a20696e76616c6964206d617857616c6c65740000000000000060448201526064016106ae565b610d736012600a6123e0565b610d7d90826123ef565b60095550565b6005546001600160a01b03163314610dad5760405162461bcd60e51b81526004016106ae90612255565b610db7600061197c565b565b6060600480546107349061221b565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ae565b610e5933856108b786856122a0565b5060019392505050565b60006107c43384846113e6565b6005546001600160a01b03163314610e9a5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b038116610ec05760405162461bcd60e51b81526004016106ae90612406565b6001600160a01b03166000908152601660205260409020805460ff19169055565b6005546001600160a01b03163314610f0b5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f605760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b038116610f865760405162461bcd60e51b81526004016106ae90612406565b6001600160a01b03166000908152601660205260409020805460ff19166001179055565b6005546001600160a01b03163314610fd45760405162461bcd60e51b81526004016106ae90612255565b610fe06012600a6123e0565b610fea90826123ef565b60085550565b6005546001600160a01b0316331461101a5760405162461bcd60e51b81526004016106ae90612255565b60005b8251811015610b3057816017600085848151811061103d5761103d612448565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806110798161245e565b91505061101d565b6005546001600160a01b031633146110ab5760405162461bcd60e51b81526004016106ae90612255565b6001600160a01b0381166111105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ae565b6107228161197c565b6005546001600160a01b031633146111435760405162461bcd60e51b81526004016106ae90612255565b60408051808201909152828152602001819052601291909155601355565b6005546001600160a01b0316331461118b5760405162461bcd60e51b81526004016106ae90612255565b60408051808201909152828152602001819052601091909155601155565b804710156111f95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106ae565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611246576040519150601f19603f3d011682016040523d82523d6000602084013e61124b565b606091505b5050905080610b305760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106ae565b6001600160a01b0383166113245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ae565b6001600160a01b0382166113855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ae565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ae565b6001600160a01b03831660009081526017602052604090205460ff1615801561148a57506001600160a01b03821660009081526017602052604090205460ff16155b6114d65760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016106ae565b6001600160a01b03831660009081526016602052604090205460ff1615801561151857506001600160a01b03821660009081526016602052604090205460ff16155b1561156c57600754600160b01b900460ff1661156c5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106ae565b6007546001600160a01b0384811691161480156115a257506001600160a01b03821660009081526016602052604090205460ff16155b1561162257600954816115ca846001600160a01b031660009081526020819052604090205490565b6115d491906122b3565b11156116225760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106ae565b6007546001600160a01b0384811691161480159061165957506001600160a01b03821660009081526016602052604090205460ff16155b801561167e57506001600160a01b03831660009081526016602052604090205460ff16155b15611713576007546001600160a01b0383811691161461171357600954816116bb846001600160a01b031660009081526020819052604090205490565b6116c591906122b3565b11156117135760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106ae565b600080611733604051806040016040528060008152602001600081525090565b6001600160a01b03861660009081526016602052604081205460ff1615801561177557506001600160a01b03861660009081526016602052604090205460ff16155b801561178f5750600c54600b5461178c91906122b3565b43105b6001600160a01b03881660009081526016602052604090205490915060ff16806117d157506001600160a01b03861660009081526016602052604090205460ff165b156117df57600092506118a7565b6007546001600160a01b0387811691161480156117fa575080155b156118305760125460135461180f91906122b3565b604080518082019091526012548152601354602082015290945091506118a7565b6007546001600160a01b03888116911614801561185b57506006546001600160a01b03878116911614155b8015611865575080155b1561189b5760105460115461187a91906122b3565b604080518082019091526010548152601154602082015290945091506118a7565b80156118a757600d5493505b60646118b385876123ef565b6118bd9190612477565b6007549093506001600160a01b038881169116148015906118ec57506007546001600160a01b03878116911614155b156118f657600092505b600754600160a81b900460ff16801561191d57506007546001600160a01b03888116911614155b1561192c5761192c84836119ce565b611940878761193b86896122a0565b611b0c565b8215611973578315611973576000606461195a86886123ef565b6119649190612477565b9050611971883083611b0c565b505b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611b08576007805460ff60a01b1916600160a01b1790558115611afa57306000908152602081905260409020546008548110611af85760016008541115611a2157506008545b6000611a2e8460026123ef565b9050600081846020015184611a4391906123ef565b611a4d9190612477565b90506000611a5b82856122a0565b905047611a6782611ce4565b6000611a7382476122a0565b90506000876020015186611a8791906122a0565b611a919083612477565b90506000886020015182611aa591906123ef565b90508015611ab757611ab78682611e5e565b8851600090611ac78460026123ef565b611ad191906123ef565b90508015611aef57600e54611aef906001600160a01b0316826111a9565b50505050505050505b505b6007805460ff60a01b191690555b5050565b6001600160a01b038316611b705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ae565b6001600160a01b038216611bd25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ae565b6001600160a01b03831660009081526020819052604090205481811015611c4a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ae565b611c5482826122a0565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611c8a9084906122b3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cd691815260200190565b60405180910390a350505050565b60008111611d045760405162461bcd60e51b81526004016106ae906121d9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d3957611d39612448565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db69190612499565b81600181518110611dc957611dc9612448565b6001600160a01b039283166020918202929092010152600654611def91309116846112c2565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e289085906000908690309042906004016124b6565b600060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050505050565b600654611e769030906001600160a01b0316846112c2565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611ee4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f099190612527565b5050505050565b600060208083528351808285015260005b81811015611f3d57858101830151858201604001528201611f21565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461072257600080fd5b8035611f7e81611f5e565b919050565b60008060408385031215611f9657600080fd5b8235611fa181611f5e565b946020939093013593505050565b801515811461072257600080fd5b8035611f7e81611faf565b600060208284031215611fda57600080fd5b8135611fe581611faf565b9392505050565b60008060006060848603121561200157600080fd5b833561200c81611f5e565b9250602084013561201c81611f5e565b929592945050506040919091013590565b60006020828403121561203f57600080fd5b8135611fe581611f5e565b60006020828403121561205c57600080fd5b5035919050565b6000806040838503121561207657600080fd5b823561208181611f5e565b9150602083013561209181611faf565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156120c557600080fd5b823567ffffffffffffffff808211156120dd57600080fd5b818501915085601f8301126120f157600080fd5b81356020828211156121055761210561209c565b8160051b604051601f19603f8301168101818110868211171561212a5761212a61209c565b60405292835281830193508481018201928984111561214857600080fd5b948201945b8386101561216d5761215e86611f73565b8552948201949382019361214d565b965061217c9050878201611fbd565b9450505050509250929050565b6000806040838503121561219c57600080fd5b82356121a781611f5e565b9150602083013561209181611f5e565b600080604083850312156121ca57600080fd5b50508035926020909101359150565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b600181811c9082168061222f57607f821691505b60208210810361224f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c8576107c861228a565b808201808211156107c8576107c861228a565b6000602082840312156122d857600080fd5b5051919050565b6000602082840312156122f157600080fd5b8151611fe581611faf565b600181815b8085111561233757816000190482111561231d5761231d61228a565b8085161561232a57918102915b93841c9390800290612301565b509250929050565b60008261234e575060016107c8565b8161235b575060006107c8565b8160018114612371576002811461237b57612397565b60019150506107c8565b60ff84111561238c5761238c61228a565b50506001821b6107c8565b5060208310610133831016604e8410600b84101617156123ba575081810a6107c8565b6123c483836122fc565b80600019048211156123d8576123d861228a565b029392505050565b6000611fe560ff84168361233f565b80820281158282048414176107c8576107c861228a565b60208082526022908201527f416464726573732063616e6e6f7420626520746865207a65726f206164647265604082015261737360f01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016124705761247061228a565b5060010190565b60008261249457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156124ab57600080fd5b8151611fe581611f5e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125065784516001600160a01b0316835293830193918301916001016124e1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561253c57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a9111c1e546831d7e9718748a0ed2f076f3b9e052d6738aeed16f4b92b3c7e9564736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ec3ffcc9facba4b2e794f5ddb7b1d008e3b5f08e
-----Decoded View---------------
Arg [0] : _adr (address): 0xEc3fFcC9FaCBa4B2E794F5dDb7B1D008E3b5F08E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ec3ffcc9facba4b2e794f5ddb7b1d008e3b5f08e
Deployed Bytecode Sourcemap
8064:11189:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18444:328;;;;;;;;;;;;;:::i;:::-;;2058:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10714:161;;;;;;;;;;-1:-1:-1;10714:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;10714:161:0;1162:187:1;16490:86:0;;;;;;;;;;-1:-1:-1;16490:86:0;;;;;:::i;:::-;;:::i;2547:108::-;;;;;;;;;;-1:-1:-1;2635:12:0;;2547:108;;;2002:25:1;;;1990:2;1975:18;2547:108:0;1856:177:1;10881:448:0;;;;;;;;;;-1:-1:-1;10881:448:0;;;;;:::i;:::-;;:::i;2389:93::-;;;;;;;;;;-1:-1:-1;2389:93:0;;2472:2;2641:36:1;;2629:2;2614:18;2389:93:0;2499:184:1;11335:248:0;;;;;;;;;;-1:-1:-1;11335:248:0;;;;;:::i;:::-;;:::i;17098:75::-;;;;;;;;;;;;;:::i;18778:417::-;;;;;;;;;;-1:-1:-1;18778:417:0;;;;;:::i;:::-;;:::i;8275:34::-;;;;;;;;;;-1:-1:-1;8275:34:0;;;;-1:-1:-1;;;8275:34:0;;;;;;17344:182;;;;;;;;;;;;;:::i;17748:305::-;;;;;;;;;;-1:-1:-1;17748:305:0;;;;;:::i;:::-;;:::i;17179:159::-;;;;;;;;;;-1:-1:-1;17179:159:0;;;;;:::i;:::-;;:::i;8370:45::-;;;;;;;;;;;;;;;;2718:127;;;;;;;;;;-1:-1:-1;2718:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2819:18:0;2792:7;2819:18;;;;;;;;;;;;2718:127;6733:94;;;;;;;;;;;;;:::i;8580:75::-;;;;;;;;;;-1:-1:-1;8580:75:0;;;;-1:-1:-1;;;;;8580:75:0;;;;;;-1:-1:-1;;;;;3289:32:1;;;3271:51;;3259:2;3244:18;8580:75:0;3125:203:1;8943:68:0;;;;;;;;;;;;;;;;6510:87;;;;;;;;;;-1:-1:-1;6583:6:0;;-1:-1:-1;;;;;6583:6:0;6510:87;;2277:104;;;;;;;;;;;;;:::i;11589:410::-;;;;;;;;;;-1:-1:-1;11589:410:0;;;;;:::i;:::-;;:::i;12005:165::-;;;;;;;;;;-1:-1:-1;12005:165:0;;;;;:::i;:::-;;:::i;18250:188::-;;;;;;;;;;-1:-1:-1;18250:188:0;;;;;:::i;:::-;;:::i;16985:107::-;;;;;;;;;;-1:-1:-1;16985:107:0;;;;;:::i;:::-;;:::i;9096:41::-;;;;;;;;;;-1:-1:-1;9096:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18059:184;;;;;;;;;;-1:-1:-1;18059:184:0;;;;;:::i;:::-;;:::i;16582:131::-;;;;;;;;;;-1:-1:-1;16582:131:0;;;;;:::i;:::-;;:::i;17532:210::-;;;;;;;;;;-1:-1:-1;17532:210:0;;;;;:::i;:::-;;:::i;9018:71::-;;;;;;;;;;;;;;;;3132:201;;;;;;;;;;-1:-1:-1;3132:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;3298:18:0;;;3266:7;3298:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3132:201;8685:77;;;;;;;;;;;;8720:42;8685:77;;6835:192;;;;;;;;;;-1:-1:-1;6835:192:0;;;;;:::i;:::-;;:::i;16851:128::-;;;;;;;;;;-1:-1:-1;16851:128:0;;;;;:::i;:::-;;:::i;16719:126::-;;;;;;;;;;-1:-1:-1;16719:126:0;;;;;:::i;:::-;;:::i;18444:328::-;18520:21;18560:22;18552:69;;;;-1:-1:-1;;;18552:69:0;;;;;;;:::i;:::-;;;;;;;;;18662:21;18640:18;:43;;18632:75;;;;-1:-1:-1;;;18632:75:0;;6299:2:1;18632:75:0;;;6281:21:1;6338:2;6318:18;;;6311:30;-1:-1:-1;;;6357:18:1;;;6350:49;6416:18;;18632:75:0;6097:343:1;18632:75:0;18718:46;18745:18;18726:7;6583:6;;-1:-1:-1;;;;;6583:6:0;;6510:87;18726:7;-1:-1:-1;;;;;18718:26:0;;;:46::i;:::-;18480:292;18444:328::o;2058:100::-;2112:13;2145:5;2138:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2058:100;:::o;10714:161::-;10789:4;10806:39;171:10;10829:7;10838:6;10806:8;:39::i;:::-;-1:-1:-1;10863:4:0;10714:161;;;;;:::o;16490:86::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;16555:10:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;16555:19:0::1;-1:-1:-1::0;;;;16555:19:0;;::::1;::::0;;;::::1;::::0;;16490:86::o;10881:448::-;11013:4;11030:36;11040:6;11048:9;11059:6;11030:9;:36::i;:::-;-1:-1:-1;;;;;11106:19:0;;11079:24;11106:19;;;:11;:19;;;;;;;;171:10;11106:33;;;;;;;;11158:26;;;;11150:79;;;;-1:-1:-1;;;11150:79:0;;7393:2:1;11150:79:0;;;7375:21:1;7432:2;7412:18;;;7405:30;7471:34;7451:18;;;7444:62;-1:-1:-1;;;7522:18:1;;;7515:38;7570:19;;11150:79:0;7191:404:1;11150:79:0;11240:57;11249:6;171:10;11271:25;11290:6;11271:16;:25;:::i;:::-;11240:8;:57::i;:::-;-1:-1:-1;11317:4:0;;10881:448;-1:-1:-1;;;;10881:448:0:o;11335:248::-;171:10;11451:4;11505:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11505:34:0;;;;;;;;;;11451:4;;11473:80;;11496:7;;11505:47;;11542:10;;11505:47;:::i;17098:75::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;17160:11:::1;::::0;17143:14:::1;:28:::0;17098:75::o;18778:417::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;18901:4:::1;-1:-1:-1::0;;;;;18879:27:0;::::1;::::0;18871:94:::1;;;::::0;-1:-1:-1;;;18871:94:0;;8197:2:1;18871:94:0::1;::::0;::::1;8179:21:1::0;8236:2;8216:18;;;8209:30;8275:34;8255:18;;;8248:62;-1:-1:-1;;;8326:18:1;;;8319:52;8388:19;;18871:94:0::1;7995:418:1::0;18871:94:0::1;18994:1;18984:7;:11;18976:58;;;;-1:-1:-1::0;;;18976:58:0::1;;;;;;;:::i;:::-;19064:43;::::0;-1:-1:-1;;;19064:43:0;;19101:4:::1;19064:43;::::0;::::1;3271:51:1::0;-1:-1:-1;;;;;19064:28:0;::::1;::::0;::::1;::::0;3244:18:1;;19064:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19053:7;:54;;19045:86;;;::::0;-1:-1:-1;;;19045:86:0;;6299:2:1;19045:86:0::1;::::0;::::1;6281:21:1::0;6338:2;6318:18;;;6311:30;-1:-1:-1;;;6357:18:1;;;6350:49;6416:18;;19045:86:0::1;6097:343:1::0;19045:86:0::1;19149:10;-1:-1:-1::0;;;;;19142:27:0::1;;19170:7;6583:6:::0;;-1:-1:-1;;;;;6583:6:0;;6510:87;19170:7:::1;19142:45;::::0;-1:-1:-1;;;;;;19142:45:0::1;::::0;;;;;;-1:-1:-1;;;;;8799:32:1;;;19142:45:0::1;::::0;::::1;8781:51:1::0;8848:18;;;8841:34;;;8754:18;;19142:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18778:417:::0;;:::o;17344:182::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;17391:14:::1;::::0;-1:-1:-1;;;17391:14:0;::::1;;;17390:15;17382:51;;;::::0;-1:-1:-1;;;17382:51:0;;9338:2:1;17382:51:0::1;::::0;::::1;9320:21:1::0;9377:2;9357:18;;;9350:30;9416:26;9396:18;;;9389:54;9460:18;;17382:51:0::1;9136:348:1::0;17382:51:0::1;17440:14;:21:::0;;-1:-1:-1;;;;17469:17:0;-1:-1:-1;;;17469:17:0;;;17506:12:::1;17493:10;:25:::0;17344:182::o;17748:305::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17834:24:0;::::1;17826:70;;;::::0;-1:-1:-1;;;17826:70:0;;9691:2:1;17826:70:0::1;::::0;::::1;9673:21:1::0;9730:2;9710:18;;;9703:30;9769:34;9749:18;;;9742:62;-1:-1:-1;;;9820:18:1;;;9813:32;9862:19;;17826:70:0::1;9489:398:1::0;17826:70:0::1;17937:4;-1:-1:-1::0;;;;;17915:27:0;::::1;::::0;17907:60:::1;;;::::0;-1:-1:-1;;;17907:60:0;;10094:2:1;17907:60:0::1;::::0;::::1;10076:21:1::0;10133:2;10113:18;;;10106:30;-1:-1:-1;;;10152:18:1;;;10145:51;10213:18;;17907:60:0::1;9892:345:1::0;17907:60:0::1;17978:15;:28:::0;;-1:-1:-1;;;;;17978:28:0;;::::1;-1:-1:-1::0;;;;;;17978:28:0;;::::1;::::0;::::1;::::0;;:15:::1;18017:21:::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;18017:28:0::1;17978::::0;18017::::1;::::0;;17748:305::o;17179:159::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;17260:3:::1;17247:9;:16;;17239:53;;;::::0;-1:-1:-1;;;17239:53:0;;10444:2:1;17239:53:0::1;::::0;::::1;10426:21:1::0;10483:2;10463:18;;;10456:30;10522:27;10502:18;;;10495:55;10567:18;;17239:53:0::1;10242:349:1::0;17239:53:0::1;17322:14;2472:2:::0;17322::::1;:14;:::i;:::-;17310:26;::::0;:9;:26:::1;:::i;:::-;17293:14;:43:::0;-1:-1:-1;17179:159:0:o;6733:94::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;6798:21:::1;6816:1;6798:9;:21::i;:::-;6733:94::o:0;2277:104::-;2333:13;2366:7;2359:14;;;;;:::i;11589:410::-;171:10;11710:4;11759:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11759:34:0;;;;;;;;;;11812:35;;;;11804:85;;;;-1:-1:-1;;;11804:85:0;;12354:2:1;11804:85:0;;;12336:21:1;12393:2;12373:18;;;12366:30;12432:34;12412:18;;;12405:62;-1:-1:-1;;;12483:18:1;;;12476:35;12528:19;;11804:85:0;12152:401:1;11804:85:0;11900:67;171:10;11923:7;11932:34;11951:15;11932:16;:34;:::i;11900:67::-;-1:-1:-1;11987:4:0;;11589:410;-1:-1:-1;;;11589:410:0:o;12005:165::-;12083:4;12100:40;12110:10;12122:9;12133:6;12100:9;:40::i;18250:188::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18331:22:0;::::1;18323:69;;;;-1:-1:-1::0;;;18323:69:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18403:19:0::1;18425:5;18403:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;18403:27:0::1;::::0;;18250:188::o;16985:107::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17060:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;17060:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16985:107::o;18059:184::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18137:22:0;::::1;18129:69;;;;-1:-1:-1::0;;;18129:69:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18209:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;18209:26:0::1;18231:4;18209:26;::::0;;18059:184::o;16582:131::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;16697:14:::1;2472:2:::0;16697::::1;:14;:::i;:::-;16675:36;::::0;:19;:36:::1;:::i;:::-;16657:15;:54:::0;-1:-1:-1;16582:131:0:o;17532:210::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;17634:9:::1;17629:106;17653:8;:15;17649:1;:19;17629:106;;;17718:5;17690:12;:25;17703:8;17712:1;17703:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17690:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17690:25:0;:33;;-1:-1:-1;;17690:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17670:3;::::1;::::0;::::1;:::i;:::-;;;;17629:106;;6835:192:::0;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6924:22:0;::::1;6916:73;;;::::0;-1:-1:-1;;;6916:73:0;;13435:2:1;6916:73:0::1;::::0;::::1;13417:21:1::0;13474:2;13454:18;;;13447:30;13513:34;13493:18;;;13486:62;-1:-1:-1;;;13564:18:1;;;13557:36;13610:19;;6916:73:0::1;13233:402:1::0;6916:73:0::1;7000:19;7010:8;7000:9;:19::i;16851:128::-:0;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;16947:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;16935:9:::1;:41:::0;;;;;;16851:128::o;16719:126::-;6583:6;;-1:-1:-1;;;;;6583:6:0;171:10;6645:23;6637:68;;;;-1:-1:-1;;;6637:68:0;;;;;;;:::i;:::-;16813:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;16802:8:::1;:40:::0;;;;;;16719:126::o;5953:319::-;6068:6;6043:21;:31;;6035:73;;;;-1:-1:-1;;;6035:73:0;;13842:2:1;6035:73:0;;;13824:21:1;13881:2;13861:18;;;13854:30;13920:31;13900:18;;;13893:59;13969:18;;6035:73:0;13640:353:1;6035:73:0;6122:12;6140:9;-1:-1:-1;;;;;6140:14:0;6163:6;6140:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6121:54;;;6194:7;6186:78;;;;-1:-1:-1;;;6186:78:0;;14410:2:1;6186:78:0;;;14392:21:1;14449:2;14429:18;;;14422:30;14488:34;14468:18;;;14461:62;14559:28;14539:18;;;14532:56;14605:19;;6186:78:0;14208:422:1;5543:380:0;-1:-1:-1;;;;;5679:19:0;;5671:68;;;;-1:-1:-1;;;5671:68:0;;14837:2:1;5671:68:0;;;14819:21:1;14876:2;14856:18;;;14849:30;14915:34;14895:18;;;14888:62;-1:-1:-1;;;14966:18:1;;;14959:34;15010:19;;5671:68:0;14635:400:1;5671:68:0;-1:-1:-1;;;;;5758:21:0;;5750:68;;;;-1:-1:-1;;;5750:68:0;;15242:2:1;5750:68:0;;;15224:21:1;15281:2;15261:18;;;15254:30;15320:34;15300:18;;;15293:62;-1:-1:-1;;;15371:18:1;;;15364:32;15413:19;;5750:68:0;15040:398:1;5750:68:0;-1:-1:-1;;;;;5831:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5883:32;;2002:25:1;;;5883:32:0;;1975:18:1;5883:32:0;;;;;;;5543:380;;;:::o;12176:2137::-;12326:1;12317:6;:10;12309:64;;;;-1:-1:-1;;;12309:64:0;;15645:2:1;12309:64:0;;;15627:21:1;15684:2;15664:18;;;15657:30;15723:34;15703:18;;;15696:62;-1:-1:-1;;;15774:18:1;;;15767:39;15823:19;;12309:64:0;15443:405:1;12309:64:0;-1:-1:-1;;;;;12393:20:0;;;;;;:12;:20;;;;;;;;12392:21;:49;;;;-1:-1:-1;;;;;;12418:23:0;;;;;;:12;:23;;;;;;;;12417:24;12392:49;12384:86;;;;-1:-1:-1;;;12384:86:0;;16055:2:1;12384:86:0;;;16037:21:1;16094:2;16074:18;;;16067:30;16133:27;16113:18;;;16106:55;16178:18;;12384:86:0;15853:349:1;12384:86:0;-1:-1:-1;;;;;12486:17:0;;;;;;:9;:17;;;;;;;;12485:18;:43;;;;-1:-1:-1;;;;;;12508:20:0;;;;;;:9;:20;;;;;;;;12507:21;12485:43;12481:98;;;12539:14;;-1:-1:-1;;;12539:14:0;;;;12531:46;;;;-1:-1:-1;;;12531:46:0;;16409:2:1;12531:46:0;;;16391:21:1;16448:2;16428:18;;;16421:30;-1:-1:-1;;;16467:18:1;;;16460:49;16526:18;;12531:46:0;16207:343:1;12531:46:0;12603:4;;-1:-1:-1;;;;;12593:14:0;;;12603:4;;12593:14;:39;;;;-1:-1:-1;;;;;;12612:20:0;;;;;;:9;:20;;;;;;;;12611:21;12593:39;12589:181;;;12676:14;;12666:6;12643:20;12653:9;-1:-1:-1;;;;;2819:18:0;2792:7;2819:18;;;;;;;;;;;;2718:127;12643:20;:29;;;;:::i;:::-;:47;;12635:123;;;;-1:-1:-1;;;12635:123:0;;16757:2:1;12635:123:0;;;16739:21:1;;;16776:18;;;16769:30;16835:34;16815:18;;;16808:62;16887:18;;12635:123:0;16555:356:1;12635:123:0;12794:4;;-1:-1:-1;;;;;12784:14:0;;;12794:4;;12784:14;;;;:39;;-1:-1:-1;;;;;;12803:20:0;;;;;;:9;:20;;;;;;;;12802:21;12784:39;:61;;;;-1:-1:-1;;;;;;12828:17:0;;;;;;:9;:17;;;;;;;;12827:18;12784:61;12780:295;;;12892:4;;-1:-1:-1;;;;;12879:17:0;;;12892:4;;12879:17;12875:189;;12958:14;;12948:6;12925:20;12935:9;-1:-1:-1;;;;;2819:18:0;2792:7;2819:18;;;;;;;;;;;;2718:127;12925:20;:29;;;;:::i;:::-;:47;;12917:131;;;;-1:-1:-1;;;12917:131:0;;16757:2:1;12917:131:0;;;16739:21:1;;;16776:18;;;16769:30;16835:34;16815:18;;;16808:62;16887:18;;12917:131:0;16555:356:1;12917:131:0;13094:15;13120:11;13142:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;13142:25:0;-1:-1:-1;;;;;13198:17:0;;13178:16;13198:17;;;:9;:17;;;;;;;;13197:18;:56;;;;-1:-1:-1;;;;;;13233:20:0;;;;;;:9;:20;;;;;;;;13232:21;13197:56;:109;;;;;13298:8;;13285:10;;:21;;;;:::i;:::-;13270:12;:36;13197:109;-1:-1:-1;;;;;13321:17:0;;;;;;:9;:17;;;;;;13178:128;;-1:-1:-1;13321:17:0;;;:41;;-1:-1:-1;;;;;;13342:20:0;;;;;;:9;:20;;;;;;;;13321:41;13317:501;;;13383:1;13377:7;;13317:501;;;13419:4;;-1:-1:-1;;;;;13406:17:0;;;13419:4;;13406:17;:33;;;;;13428:11;13427:12;13406:33;13402:416;;;13489:9;:19;13467;;:41;;13489:19;13467:41;:::i;:::-;13523:24;;;;;;;;;13538:9;13523:24;;;;;;;;;13457:51;;-1:-1:-1;13523:24:0;-1:-1:-1;13402:416:0;;;13579:4;;-1:-1:-1;;;;;13569:14:0;;;13579:4;;13569:14;:46;;;;-1:-1:-1;13608:6:0;;-1:-1:-1;;;;;13587:28:0;;;13608:6;;13587:28;;13569:46;:62;;;;;13620:11;13619:12;13569:62;13565:253;;;13680:8;:18;13659;;:39;;13680:18;13659:39;:::i;:::-;13713:23;;;;;;;;;13728:8;13713:23;;;;;;;;;13649:49;;-1:-1:-1;13713:23:0;-1:-1:-1;13565:253:0;;;13758:11;13754:64;;;13796:10;;13786:20;;13754:64;13855:3;13835:16;13844:7;13835:6;:16;:::i;:::-;13834:24;;;;:::i;:::-;13890:4;;13828:30;;-1:-1:-1;;;;;;13880:14:0;;;13890:4;;13880:14;;;;:35;;-1:-1:-1;13911:4:0;;-1:-1:-1;;;;;13898:17:0;;;13911:4;;13898:17;;13880:35;13877:72;;;13937:1;13931:7;;13877:72;13963:10;;-1:-1:-1;;;13963:10:0;;;;:28;;;;-1:-1:-1;13987:4:0;;-1:-1:-1;;;;;13977:14:0;;;13987:4;;13977:14;;13963:28;13959:64;;;13993:30;14001:7;14010:12;13993:7;:30::i;:::-;14036:48;14052:6;14060:9;14071:12;14080:3;14071:6;:12;:::i;:::-;14036:15;:48::i;:::-;14099:7;;14095:211;;14133:11;;14129:164;;14165:17;14206:3;14186:16;14195:7;14186:6;:16;:::i;:::-;14185:24;;;;:::i;:::-;14165:44;;14228:49;14244:6;14260:4;14267:9;14228:15;:49::i;:::-;14146:147;14129:164;12298:2015;;;;12176:2137;;;:::o;7035:173::-;7110:6;;;-1:-1:-1;;;;;7127:17:0;;;-1:-1:-1;;;;;;7127:17:0;;;;;;;7160:40;;7110:6;;;7127:17;7110:6;;7160:40;;7091:16;;7160:40;7080:128;7035:173;:::o;14319:1237::-;9235:7;;-1:-1:-1;;;9235:7:0;;;;9230:101;;9259:7;:14;;-1:-1:-1;;;;9259:14:0;-1:-1:-1;;;9259:14:0;;;14408:49;;14439:7:::1;14408:49;14511:4;14467:23;2819:18:::0;;;;;;;;;;;14551:15:::1;::::0;14532:34;::::1;14528:1021;;14605:1;14587:15;;:19;14583:93;;;-1:-1:-1::0;14645:15:0::1;::::0;14583:93:::1;14690:19;14712:11;:7:::0;14722:1:::1;14712:11;:::i;:::-;14690:33;;14738:23;14806:11;14783:9;:19;;;14765:15;:37;;;;:::i;:::-;14764:53;;;;:::i;:::-;14738:79:::0;-1:-1:-1;14832:20:0::1;14855:33;14738:79:::0;14855:15;:33:::1;:::i;:::-;14832:56:::0;-1:-1:-1;14928:21:0::1;14964:30;14832:56:::0;14964:16:::1;:30::i;:::-;15009:20;15032:38;15056:14:::0;15032:21:::1;:38;:::i;:::-;15009:61;;15085:19;15137:9;:19;;;15123:11;:33;;;;:::i;:::-;15107:50;::::0;:12;:50:::1;:::i;:::-;15085:72;;15172:20;15209:9;:19;;;15195:11;:33;;;;:::i;:::-;15172:56:::0;-1:-1:-1;15247:17:0;;15243:101:::1;;15285:43;15298:15;15315:12;15285;:43::i;:::-;15399:19:::0;;15358:20:::1;::::0;15381:15:::1;:11:::0;15395:1:::1;15381:15;:::i;:::-;:37;;;;:::i;:::-;15358:60:::0;-1:-1:-1;15437:16:0;;15433:105:::1;;15482:15;::::0;15474:48:::1;::::0;-1:-1:-1;;;;;15482:15:0::1;15509:12:::0;15474:34:::1;:48::i;:::-;14568:981;;;;;;;;14528:1021;14397:1159;9288:1;9304:7:::0;:15;;-1:-1:-1;;;;9304:15:0;;;9230:101;14319:1237;;:::o;4662:578::-;-1:-1:-1;;;;;4802:20:0;;4794:70;;;;-1:-1:-1;;;4794:70:0;;17340:2:1;4794:70:0;;;17322:21:1;17379:2;17359:18;;;17352:30;17418:34;17398:18;;;17391:62;-1:-1:-1;;;17469:18:1;;;17462:35;17514:19;;4794:70:0;17138:401:1;4794:70:0;-1:-1:-1;;;;;4883:23:0;;4875:71;;;;-1:-1:-1;;;4875:71:0;;17746:2:1;4875:71:0;;;17728:21:1;17785:2;17765:18;;;17758:30;17824:34;17804:18;;;17797:62;-1:-1:-1;;;17875:18:1;;;17868:33;17918:19;;4875:71:0;17544:399:1;4875:71:0;-1:-1:-1;;;;;4983:17:0;;4959:21;4983:17;;;;;;;;;;;5019:23;;;;5011:74;;;;-1:-1:-1;;;5011:74:0;;18150:2:1;5011:74:0;;;18132:21:1;18189:2;18169:18;;;18162:30;18228:34;18208:18;;;18201:62;-1:-1:-1;;;18279:18:1;;;18272:36;18325:19;;5011:74:0;17948:402:1;5011:74:0;5116:22;5132:6;5116:13;:22;:::i;:::-;-1:-1:-1;;;;;5096:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5149:20;;;;;;;;:30;;5173:6;;5096:9;5149:30;;5173:6;;5149:30;:::i;:::-;;;;;;;;5214:9;-1:-1:-1;;;;;5197:35:0;5206:6;-1:-1:-1;;;;;5197:35:0;;5225:6;5197:35;;;;2002:25:1;;1990:2;1975:18;;1856:177;5197:35:0;;;;;;;;4783:457;4662:578;;;:::o;15562:517::-;15650:1;15636:11;:15;15628:62;;;;-1:-1:-1;;;15628:62:0;;;;;;;:::i;:::-;15725:16;;;15739:1;15725:16;;;;;;;;15701:21;;15725:16;;;;;;;;;;-1:-1:-1;15725:16:0;15701:40;;15770:4;15752;15757:1;15752:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15752:23:0;;;:7;;;;;;;;;;:23;;;;15796:6;;:13;;;-1:-1:-1;;;15796:13:0;;;;:6;;;;;:11;;:13;;;;;15752:7;;15796:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15786:4;15791:1;15786:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15786:23:0;;;:7;;;;;;;;;:23;15852:6;;15820:53;;15837:4;;15852:6;15861:11;15820:8;:53::i;:::-;15884:6;;:187;;-1:-1:-1;;;15884:187:0;;-1:-1:-1;;;;;15884:6:0;;;;:57;;:187;;15956:11;;15884:6;;15998:4;;16025;;16045:15;;15884:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15617:462;15562:517;:::o;16085:399::-;16198:6;;16166:53;;16183:4;;-1:-1:-1;;;;;16198:6:0;16207:11;16166:8;:53::i;:::-;16230:6;;:246;;-1:-1:-1;;;16230:246:0;;16295:4;16230:246;;;19937:34:1;19987:18;;;19980:34;;;16230:6:0;20030:18:1;;;20023:34;;;20073:18;;;20066:34;8720:42:0;20116:19:1;;;20109:44;16450:15:0;20169:19:1;;;20162:35;-1:-1:-1;;;;;16230:6:0;;;;:22;;16261:9;;19871:19:1;;16230:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16085:399;;:::o;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;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:118::-;1440:5;1433:13;1426:21;1419:5;1416:32;1406:60;;1462:1;1459;1452:12;1477:128;1542:20;;1571:28;1542:20;1571:28;:::i;1610:241::-;1666:6;1719:2;1707:9;1698:7;1694:23;1690:32;1687:52;;;1735:1;1732;1725:12;1687:52;1774:9;1761:23;1793:28;1815:5;1793:28;:::i;:::-;1840:5;1610:241;-1:-1:-1;;;1610:241:1:o;2038:456::-;2115:6;2123;2131;2184:2;2172:9;2163:7;2159:23;2155:32;2152:52;;;2200:1;2197;2190:12;2152:52;2239:9;2226:23;2258:31;2283:5;2258:31;:::i;:::-;2308:5;-1:-1:-1;2365:2:1;2350:18;;2337:32;2378:33;2337:32;2378:33;:::i;:::-;2038:456;;2430:7;;-1:-1:-1;;;2484:2:1;2469:18;;;;2456:32;;2038:456::o;2688:247::-;2747:6;2800:2;2788:9;2779:7;2775:23;2771:32;2768:52;;;2816:1;2813;2806:12;2768:52;2855:9;2842:23;2874:31;2899:5;2874:31;:::i;2940:180::-;2999:6;3052:2;3040:9;3031:7;3027:23;3023:32;3020:52;;;3068:1;3065;3058:12;3020:52;-1:-1:-1;3091:23:1;;2940:180;-1:-1:-1;2940:180:1:o;3333:382::-;3398:6;3406;3459:2;3447:9;3438:7;3434:23;3430:32;3427:52;;;3475:1;3472;3465:12;3427:52;3514:9;3501:23;3533:31;3558:5;3533:31;:::i;:::-;3583:5;-1:-1:-1;3640:2:1;3625:18;;3612:32;3653:30;3612:32;3653:30;:::i;:::-;3702:7;3692:17;;;3333:382;;;;;:::o;3720:127::-;3781:10;3776:3;3772:20;3769:1;3762:31;3812:4;3809:1;3802:15;3836:4;3833:1;3826:15;3852:1191;3942:6;3950;4003:2;3991:9;3982:7;3978:23;3974:32;3971:52;;;4019:1;4016;4009:12;3971:52;4059:9;4046:23;4088:18;4129:2;4121:6;4118:14;4115:34;;;4145:1;4142;4135:12;4115:34;4183:6;4172:9;4168:22;4158:32;;4228:7;4221:4;4217:2;4213:13;4209:27;4199:55;;4250:1;4247;4240:12;4199:55;4286:2;4273:16;4308:4;4331:2;4327;4324:10;4321:36;;;4337:18;;:::i;:::-;4383:2;4380:1;4376:10;4415:2;4409:9;4478:2;4474:7;4469:2;4465;4461:11;4457:25;4449:6;4445:38;4533:6;4521:10;4518:22;4513:2;4501:10;4498:18;4495:46;4492:72;;;4544:18;;:::i;:::-;4580:2;4573:22;4630:18;;;4664:15;;;;-1:-1:-1;4706:11:1;;;4702:20;;;4734:19;;;4731:39;;;4766:1;4763;4756:12;4731:39;4790:11;;;;4810:148;4826:6;4821:3;4818:15;4810:148;;;4892:23;4911:3;4892:23;:::i;:::-;4880:36;;4843:12;;;;4936;;;;4810:148;;;4977:6;-1:-1:-1;5002:35:1;;-1:-1:-1;5018:18:1;;;5002:35;:::i;:::-;4992:45;;;;;;3852:1191;;;;;:::o;5048:388::-;5116:6;5124;5177:2;5165:9;5156:7;5152:23;5148:32;5145:52;;;5193:1;5190;5183:12;5145:52;5232:9;5219:23;5251:31;5276:5;5251:31;:::i;:::-;5301:5;-1:-1:-1;5358:2:1;5343:18;;5330:32;5371:33;5330:32;5371:33;:::i;5441:248::-;5509:6;5517;5570:2;5558:9;5549:7;5545:23;5541:32;5538:52;;;5586:1;5583;5576:12;5538:52;-1:-1:-1;;5609:23:1;;;5679:2;5664:18;;;5651:32;;-1:-1:-1;5441:248:1:o;5694:398::-;5896:2;5878:21;;;5935:2;5915:18;;;5908:30;5974:34;5969:2;5954:18;;5947:62;-1:-1:-1;;;6040:2:1;6025:18;;6018:32;6082:3;6067:19;;5694:398::o;6445:380::-;6524:1;6520:12;;;;6567;;;6588:61;;6642:4;6634:6;6630:17;6620:27;;6588:61;6695:2;6687:6;6684:14;6664:18;6661:38;6658:161;;6741:10;6736:3;6732:20;6729:1;6722:31;6776:4;6773:1;6766:15;6804:4;6801:1;6794:15;6658:161;;6445:380;;;:::o;6830:356::-;7032:2;7014:21;;;7051:18;;;7044:30;7110:34;7105:2;7090:18;;7083:62;7177:2;7162:18;;6830:356::o;7600:127::-;7661:10;7656:3;7652:20;7649:1;7642:31;7692:4;7689:1;7682:15;7716:4;7713:1;7706:15;7732:128;7799:9;;;7820:11;;;7817:37;;;7834:18;;:::i;7865:125::-;7930:9;;;7951:10;;;7948:36;;;7964:18;;:::i;8418:184::-;8488:6;8541:2;8529:9;8520:7;8516:23;8512:32;8509:52;;;8557:1;8554;8547:12;8509:52;-1:-1:-1;8580:16:1;;8418:184;-1:-1:-1;8418:184:1:o;8886:245::-;8953:6;9006:2;8994:9;8985:7;8981:23;8977:32;8974:52;;;9022:1;9019;9012:12;8974:52;9054:9;9048:16;9073:28;9095:5;9073:28;:::i;10596:422::-;10685:1;10728:5;10685:1;10742:270;10763:7;10753:8;10750:21;10742:270;;;10822:4;10818:1;10814:6;10810:17;10804:4;10801:27;10798:53;;;10831:18;;:::i;:::-;10881:7;10871:8;10867:22;10864:55;;;10901:16;;;;10864:55;10980:22;;;;10940:15;;;;10742:270;;;10746:3;10596:422;;;;;:::o;11023:806::-;11072:5;11102:8;11092:80;;-1:-1:-1;11143:1:1;11157:5;;11092:80;11191:4;11181:76;;-1:-1:-1;11228:1:1;11242:5;;11181:76;11273:4;11291:1;11286:59;;;;11359:1;11354:130;;;;11266:218;;11286:59;11316:1;11307:10;;11330:5;;;11354:130;11391:3;11381:8;11378:17;11375:43;;;11398:18;;:::i;:::-;-1:-1:-1;;11454:1:1;11440:16;;11469:5;;11266:218;;11568:2;11558:8;11555:16;11549:3;11543:4;11540:13;11536:36;11530:2;11520:8;11517:16;11512:2;11506:4;11503:12;11499:35;11496:77;11493:159;;;-1:-1:-1;11605:19:1;;;11637:5;;11493:159;11684:34;11709:8;11703:4;11684:34;:::i;:::-;11754:6;11750:1;11746:6;11742:19;11733:7;11730:32;11727:58;;;11765:18;;:::i;:::-;11803:20;;11023:806;-1:-1:-1;;;11023:806:1:o;11834:140::-;11892:5;11921:47;11962:4;11952:8;11948:19;11942:4;11921:47;:::i;11979:168::-;12052:9;;;12083;;12100:15;;;12094:22;;12080:37;12070:71;;12121:18;;:::i;12558:398::-;12760:2;12742:21;;;12799:2;12779:18;;;12772:30;12838:34;12833:2;12818:18;;12811:62;-1:-1:-1;;;12904:2:1;12889:18;;12882:32;12946:3;12931:19;;12558:398::o;12961:127::-;13022:10;13017:3;13013:20;13010:1;13003:31;13053:4;13050:1;13043:15;13077:4;13074:1;13067:15;13093:135;13132:3;13153:17;;;13150:43;;13173:18;;:::i;:::-;-1:-1:-1;13220:1:1;13209:13;;13093:135::o;16916:217::-;16956:1;16982;16972:132;;17026:10;17021:3;17017:20;17014:1;17007:31;17061:4;17058:1;17051:15;17089:4;17086:1;17079:15;16972:132;-1:-1:-1;17118:9:1;;16916:217::o;18355:251::-;18425:6;18478:2;18466:9;18457:7;18453:23;18449:32;18446:52;;;18494:1;18491;18484:12;18446:52;18526:9;18520:16;18545:31;18570:5;18545:31;:::i;18611:980::-;18873:4;18921:3;18910:9;18906:19;18952:6;18941:9;18934:25;18978:2;19016:6;19011:2;19000:9;18996:18;18989:34;19059:3;19054:2;19043:9;19039:18;19032:31;19083:6;19118;19112:13;19149:6;19141;19134:22;19187:3;19176:9;19172:19;19165:26;;19226:2;19218:6;19214:15;19200:29;;19247:1;19257:195;19271:6;19268:1;19265:13;19257:195;;;19336:13;;-1:-1:-1;;;;;19332:39:1;19320:52;;19427:15;;;;19392:12;;;;19368:1;19286:9;19257:195;;;-1:-1:-1;;;;;;;19508:32:1;;;;19503:2;19488:18;;19481:60;-1:-1:-1;;;19572:3:1;19557:19;19550:35;19469:3;18611:980;-1:-1:-1;;;18611:980:1:o;20208:306::-;20296:6;20304;20312;20365:2;20353:9;20344:7;20340:23;20336:32;20333:52;;;20381:1;20378;20371:12;20333:52;20410:9;20404:16;20394:26;;20460:2;20449:9;20445:18;20439:25;20429:35;;20504:2;20493:9;20489:18;20483:25;20473:35;;20208:306;;;;;:::o
Swarm Source
ipfs://a9111c1e546831d7e9718748a0ed2f076f3b9e052d6738aeed16f4b92b3c7e95
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.