More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 49 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20714161 | 104 days ago | IN | 0 ETH | 0.00078777 | ||||
Provider Drops T... | 20714159 | 104 days ago | IN | 0 ETH | 0.02032484 | ||||
Approve | 20714158 | 104 days ago | IN | 0 ETH | 0.00076224 | ||||
Approve | 20714149 | 104 days ago | IN | 0 ETH | 0.00058149 | ||||
Transfer | 20714148 | 104 days ago | IN | 0 ETH | 0.00382428 | ||||
Disable Max Wall... | 20714143 | 104 days ago | IN | 0 ETH | 0.00057742 | ||||
Transfer | 20714140 | 104 days ago | IN | 0 ETH | 0.00051559 | ||||
Approve | 20714138 | 104 days ago | IN | 0 ETH | 0.00054616 | ||||
Approve | 20714138 | 104 days ago | IN | 0 ETH | 0.00061944 | ||||
Approve | 20714137 | 104 days ago | IN | 0 ETH | 0.00054012 | ||||
Approve | 20714137 | 104 days ago | IN | 0 ETH | 0.00061335 | ||||
Provider Drops T... | 20714137 | 104 days ago | IN | 0 ETH | 0.01910172 | ||||
Approve | 20714136 | 104 days ago | IN | 0 ETH | 0.00055784 | ||||
Approve | 20714136 | 104 days ago | IN | 0 ETH | 0.00070483 | ||||
Approve | 20714134 | 104 days ago | IN | 0 ETH | 0.00053062 | ||||
Approve | 20714134 | 104 days ago | IN | 0 ETH | 0.00060008 | ||||
Provider Drops T... | 20714132 | 104 days ago | IN | 0 ETH | 0.01387104 | ||||
Approve | 20714131 | 104 days ago | IN | 0 ETH | 0.00056452 | ||||
Approve | 20714130 | 104 days ago | IN | 0 ETH | 0.00063442 | ||||
Approve | 20714130 | 104 days ago | IN | 0 ETH | 0.00179904 | ||||
Approve | 20714129 | 104 days ago | IN | 0 ETH | 0.00050075 | ||||
Approve | 20714129 | 104 days ago | IN | 0 ETH | 0.00050075 | ||||
Approve | 20714129 | 104 days ago | IN | 0 ETH | 0.00057374 | ||||
Provider Drops T... | 20714128 | 104 days ago | IN | 0 ETH | 0.01390438 | ||||
Approve | 20714128 | 104 days ago | IN | 0 ETH | 0.00136078 |
Latest 10 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20714166 | 104 days ago | 0.02589995 ETH | ||||
20714166 | 104 days ago | 0.02589995 ETH | ||||
20714128 | 104 days ago | 0.00515459 ETH | ||||
20714128 | 104 days ago | 0.00515459 ETH | ||||
20714128 | 104 days ago | 0.0060559 ETH | ||||
20714128 | 104 days ago | 0.0060559 ETH | ||||
20714127 | 104 days ago | 0.00482194 ETH | ||||
20714127 | 104 days ago | 0.00482194 ETH | ||||
20714127 | 104 days ago | 0.07833917 ETH | ||||
20714127 | 104 days ago | 0.07833917 ETH |
Loading...
Loading
Contract Name:
Netova
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-09 */ // SPDX-License-Identifier: MIT /* - [Netova.xyz](https://netova.xyz/) - [Telegram](https://t.me/netova_xyz) - [Twitter](https://x.com/netova_xyz) */ // Developed by @crypt0xa pragma solidity ^0.8.20; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } } interface IUniswapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function getAmountsOut( uint256 amountIn, address[] calldata path ) external view returns (uint256[] memory amounts); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20Errors { error ERC20InvalidReceiver(address receiver); error ERC20InsufficientAllowance( address spender, uint256 allowance, uint256 needed ); error ERC20InvalidApprover(address approver); error ERC20InvalidSpender(address spender); } abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address to, uint256 value ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 value ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } function transferFrom( address from, address to, uint256 value ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); 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 _mint(address account, uint256 value) internal virtual { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _totalSupply += value; unchecked { _balances[account] += value; } emit Transfer(address(0), account, value); } function _approve( address owner, address spender, uint256 value ) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; emit Approval(owner, spender, value); } function _spendAllowance( address owner, address spender, uint256 value ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance( spender, currentAllowance, value ); } unchecked { _approve(owner, spender, currentAllowance - value); } } } } contract Netova is ERC20 { using SafeMath for uint256; address private dev; address[] private _holders; uint256 private _totalSupply = 100_000_000 * 10 ** decimals(); address private _owner; mapping(address => uint256) private _ProviderDropsTimestamps; // Track ProviderDrops timestamps mapping(address => bool) private _excludedFromFees; // Track excluded accounts mapping(address => bool) private _excludedFromMaxWallet; // Track excluded accounts bool public tradingActive; bool public maxWalletHoldingEnabled = true; address private immutable uniswapPair; IUniswapRouter private immutable uniswapRouter; IUniswapRouter private _uniswapV2Router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uint256 private minThresholdToHolder = 5; uint256 private tradingTax = 200; // 2% uint256 private maxWalletHolding = 155; // 1.55% uint256 private minEthThreshold = 0.01 ether; bool private _inSwap; uint256 public _feesCollected; constructor( ) ERC20("Netova", "Netova") { _owner = msg.sender; dev = msg.sender; uniswapRouter = _uniswapV2Router; uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), uniswapRouter.WETH() ); _excludedFromMaxWallet[address(uniswapRouter)] = true; _excludedFromMaxWallet[address(uniswapPair)] = true; _excludedFromMaxWallet[address(this)] = true; _excludedFromMaxWallet[_owner] = true; _excludedFromFees[address(uniswapRouter)] = true; _excludedFromFees[address(this)] = true; _excludedFromFees[_owner] = true; // Provider's Drop 6.6% uint256 ProviderDropAmount = _totalSupply.mul(660).div(10000); _mint(address(this), ProviderDropAmount); // Uniswap liquidity 78.4% uint256 liquidityAmount = _totalSupply.mul(7840).div(10000); _mint(_owner, liquidityAmount); // RewardPool 15% uint256 RewardPoolAmount = _totalSupply.mul(1500).div(10000); _mint(_owner, RewardPoolAmount); } modifier onlyOwner() { require(msg.sender == owner(), "Caller is not the owner"); _; } function owner() public view returns (address) { return _owner; } function _addToHolders(address account, uint256 amount) private { if (_excludedFromMaxWallet[account]) { return; } bool accountExists = false; for (uint256 i = 0; i < _holders.length; i++) { if (_holders[i] == account) { accountExists = true; break; } } if ( !accountExists && balanceOf(account).add(amount) > _totalSupply.mul(minThresholdToHolder).div(10000) ) { _holders.push(account); } } function openTrading() external onlyOwner { tradingActive = true; } function _transfer( address from, address to, uint256 value ) internal virtual override { if (!tradingActive) { require( _excludedFromFees[from] || _excludedFromFees[to], "Trading is not active." ); } if (maxWalletHoldingEnabled) { require( _excludedFromMaxWallet[to] || balanceOf(to).add(value) <= _totalSupply.mul(maxWalletHolding).div(10000), "Exceeds max wallet holding" ); } if ( !_inSwap && from != uniswapPair && !_excludedFromFees[from] && !_excludedFromFees[to] ) { _inSwap = true; swapAndSendToDev(); _inSwap = false; } bool takeFee = !_inSwap; bool walletToWallet = to != uniswapPair && from != uniswapPair; if ( _excludedFromFees[from] || _excludedFromFees[to] || walletToWallet ) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (from == uniswapPair || to == uniswapPair) { uint256 taxAmount = value.mul(tradingTax).div(10000); fees = taxAmount; _feesCollected = _feesCollected.add(taxAmount); // Accumulate the fee } if (fees > 0) { super._transfer(from, address(this), fees); } value = value.sub(fees); } if (walletToWallet || to == uniswapPair) { require( block.timestamp >= _ProviderDropsTimestamps[from] + 10 minutes, "Transfer locked for 10 minutes after ProviderDrops" ); } _removeFromHolders(from, value); _addToHolders(to, value); super._transfer(from, to, value); } function _removeFromHolders(address account, uint256 amount) private { if (_excludedFromMaxWallet[account]) { return; } bool accountExists = false; for (uint256 i = 0; i < _holders.length; i++) { if (_holders[i] == account) { accountExists = true; break; } } if (accountExists) { uint256 tval = balanceOf(account).sub(amount); if (tval < _totalSupply.mul(minThresholdToHolder).div(10000)) { for (uint256 i = 0; i < _holders.length; i++) { if (_holders[i] == account) { _holders[i] = _holders[_holders.length - 1]; _holders.pop(); break; } } } } } function ProviderDropsTokens(uint256 totalProviderDropsAmount) external onlyOwner { uint256 totalHeldTokens = 0; for (uint256 i = 0; i < _holders.length; i++) { totalHeldTokens = totalHeldTokens.add(balanceOf(_holders[i])); } for (uint256 i = 0; i < _holders.length; i++) { address holder = _holders[i]; if (_excludedFromMaxWallet[holder]) { continue; } uint256 holderBalance = balanceOf(holder); uint256 ProviderDropsAmount = totalProviderDropsAmount.mul(holderBalance).div( totalHeldTokens ); _ProviderDropsTimestamps[holder] = block.timestamp; _transfer(address(this), holder, ProviderDropsAmount); } } // Check if the current collected fees in tokens is above the ETH threshold function isAboveMinEthThreshold() private view returns (bool) { uint256 tokenBalance = _feesCollected; // Use collected fees balance if (tokenBalance <= 0) return false; uint256 ethValue = getTokenEthValue(tokenBalance); return ethValue >= minEthThreshold; } // Function to get the current value of tokens in ETH function getTokenEthValue( uint256 tokenAmount ) private view returns (uint256) { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); uint256[] memory amounts = uniswapRouter.getAmountsOut( tokenAmount, path ); return amounts[1]; } function swapAndSendToDev() private { uint256 feeAmount = _feesCollected; // Use the collected fees _feesCollected = 0; // Reset the collected fees _approve(address(this), address(uniswapRouter), feeAmount); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); // Swap tokens for ETH uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( feeAmount, 0, // Accept any amount of ETH path, address(this), block.timestamp ); // Transfer ETH to dev address using call uint256 ethBalance = address(this).balance; (bool success, ) = dev.call{value: ethBalance}(""); require(success, "ETH transfer failed"); } // Set minimum ETH threshold for token swapping function setMinEthThreshold(uint256 _minEthThreshold) external onlyOwner { minEthThreshold = _minEthThreshold; } // Set minimum Token threshold for token holding function setMinTokenThresholdToHold(uint256 _minTokenThresholdToHold) external onlyOwner { minThresholdToHolder = _minTokenThresholdToHold; } function renounceOwnership() external onlyOwner { _owner = address(0); } function transferOwnership(address newOwner) external onlyOwner { require(newOwner != address(0), "New owner is the zero address"); _owner = newOwner; } function disableMaxWalletHolding() external onlyOwner { maxWalletHoldingEnabled = false; } function uniswapV2Pair() external view returns (address) { return uniswapPair; } function uniswapV2Router() external view returns (address) { return address(uniswapRouter); } function removeHolder(address account) external onlyOwner { for (uint256 i = 0; i < _holders.length; i++) { if (_holders[i] == account) { _holders[i] = _holders[_holders.length - 1]; _holders.pop(); break; } } } receive() external payable { // Empty implementation } fallback() external payable { // Empty implementation } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"totalProviderDropsAmount","type":"uint256"}],"name":"ProviderDropsTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_feesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":[],"name":"disableMaxWalletHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletHoldingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minEthThreshold","type":"uint256"}],"name":"setMinEthThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minTokenThresholdToHold","type":"uint256"}],"name":"setMinTokenThresholdToHold","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":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052620000126012600a6200054a565b62000022906305f5e1006200055a565b600755600c8054610100600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d01001790556005600d5560c8600e55609b600f55662386f26fc1000060105534801562000074575f80fd5b506040805180820182526006808252654e65746f766160d01b6020808401829052845180860190955291845290830152906003620000b3838262000614565b506004620000c2828262000614565b5050600880546001600160a01b03199081163390811790925560058054909116909117905550600c546201000090046001600160a01b031660a08190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000139573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015f9190620006dc565b6001600160a01b031663c9c653963060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d39190620006dc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200021e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002449190620006dc565b6001600160a01b03908116608081905260a05182165f818152600b602090815260408083208054600160ff199182168117909255958452818420805487168217905530808552828520805488168317905560088054891686528386208054891684179055958552600a909352818420805487168217905591835280832080548616831790559254909416815290812080549092169092179055600754620002fe9061271090620002f79061029462000383565b9062000399565b90506200030c3082620003a6565b6007545f90620003289061271090620002f790611ea062000383565b60085490915062000343906001600160a01b031682620003a6565b6007545f906200035f9061271090620002f7906105dc62000383565b6008549091506200037a906001600160a01b031682620003a6565b50505062000741565b5f6200039082846200055a565b90505b92915050565b5f6200039082846200070b565b6001600160a01b038216620003d45760405163ec442f0560e01b81525f600482015260240160405180910390fd5b8060025f828254620003e791906200072b565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200049157815f19048211156200047557620004756200043d565b808516156200048357918102915b93841c939080029062000456565b509250929050565b5f82620004a95750600162000393565b81620004b757505f62000393565b8160018114620004d05760028114620004db57620004fb565b600191505062000393565b60ff841115620004ef57620004ef6200043d565b50506001821b62000393565b5060208310610133831016604e8410600b841016171562000520575081810a62000393565b6200052c838362000451565b805f19048211156200054257620005426200043d565b029392505050565b5f6200039060ff84168362000499565b80820281158282048414176200039357620003936200043d565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200059d57607f821691505b602082108103620005bc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200060f575f81815260208120601f850160051c81016020861015620005ea5750805b601f850160051c820191505b818110156200060b57828155600101620005f6565b5050505b505050565b81516001600160401b0381111562000630576200063062000574565b620006488162000641845462000588565b84620005c2565b602080601f8311600181146200067e575f8415620006665750858301515b5f19600386901b1c1916600185901b1785556200060b565b5f85815260208120601f198616915b82811015620006ae578886015182559484019460019091019084016200068d565b5085821015620006cc57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620006ed575f80fd5b81516001600160a01b038116811462000704575f80fd5b9392505050565b5f826200072657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200039357620003936200043d565b60805160a051611993620007a25f395f81816101ca01528181610f6801528181610fe2015261109801525f818161025e01528181610c0201528181610cae01528181610ce601528181610d7501528181610db00152610e4401526119935ff3fe608060405260043610610137575f3560e01c80638da5cb5b116100af578063bbc0c7421161006b578063bbc0c7421461038a578063c9567bf9146103a3578063ca1aca34146103b7578063dd62ed3e146103d6578063ddfeddd11461041a578063f2fde38b1461043957005b80638da5cb5b146102de5780638dd42808146102fb57806395d89b411461031a578063a9059cbb1461032e578063ba70baf61461034d578063bb9492271461036b57005b806323b872dd116100fe57806323b872dd14610216578063313ce5671461023557806349bd5a5e1461025057806368e7a4191461028257806370a0823114610296578063715018a6146102ca57005b806306fdde0314610140578063095ea7b31461016a57806312a35e40146101995780631694505e146101bc57806318160ddd1461020257005b3661013e57005b005b34801561014b575f80fd5b50610154610458565b6040516101619190611681565b60405180910390f35b348015610175575f80fd5b506101896101843660046116e3565b6104e8565b6040519015158152602001610161565b3480156101a4575f80fd5b506101ae60125481565b604051908152602001610161565b3480156101c7575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610161565b34801561020d575f80fd5b506002546101ae565b348015610221575f80fd5b5061018961023036600461170d565b610501565b348015610240575f80fd5b5060405160128152602001610161565b34801561025b575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006101ea565b34801561028d575f80fd5b5061013e610524565b3480156102a1575f80fd5b506101ae6102b036600461174b565b6001600160a01b03165f9081526020819052604090205490565b3480156102d5575f80fd5b5061013e610564565b3480156102e9575f80fd5b506008546001600160a01b03166101ea565b348015610306575f80fd5b5061013e61031536600461174b565b6105a0565b348015610325575f80fd5b506101546106cd565b348015610339575f80fd5b506101896103483660046116e3565b6106dc565b348015610358575f80fd5b50600c5461018990610100900460ff1681565b348015610376575f80fd5b5061013e610385366004611766565b6106e9565b348015610395575f80fd5b50600c546101899060ff1681565b3480156103ae575f80fd5b5061013e610718565b3480156103c2575f80fd5b5061013e6103d1366004611766565b610751565b3480156103e1575f80fd5b506101ae6103f036600461177d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610425575f80fd5b5061013e610434366004611766565b6108a4565b348015610444575f80fd5b5061013e61045336600461174b565b6108d3565b606060038054610467906117b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610493906117b4565b80156104de5780601f106104b5576101008083540402835291602001916104de565b820191905f5260205f20905b8154815290600101906020018083116104c157829003601f168201915b5050505050905090565b5f336104f5818585610975565b60019150505b92915050565b5f3361050e858285610a27565b610519858585610aa1565b506001949350505050565b6008546001600160a01b031633146105575760405162461bcd60e51b815260040161054e906117ec565b60405180910390fd5b600c805461ff0019169055565b6008546001600160a01b0316331461058e5760405162461bcd60e51b815260040161054e906117ec565b600880546001600160a01b0319169055565b6008546001600160a01b031633146105ca5760405162461bcd60e51b815260040161054e906117ec565b5f5b6006548110156106c957816001600160a01b0316600682815481106105f3576105f3611823565b5f918252602090912001546001600160a01b0316036106b7576006805461061c9060019061184b565b8154811061062c5761062c611823565b5f91825260209091200154600680546001600160a01b03909216918390811061065757610657611823565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806106935761069361185e565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b806106c181611872565b9150506105cc565b5050565b606060048054610467906117b4565b5f336104f5818585610aa1565b6008546001600160a01b031633146107135760405162461bcd60e51b815260040161054e906117ec565b600d55565b6008546001600160a01b031633146107425760405162461bcd60e51b815260040161054e906117ec565b600c805460ff19166001179055565b6008546001600160a01b0316331461077b5760405162461bcd60e51b815260040161054e906117ec565b5f805b6006548110156107df576107cb6107c4600683815481106107a1576107a1611823565b5f9182526020808320909101546001600160a01b03168252819052604090205490565b8390610f32565b9150806107d781611872565b91505061077e565b505f5b60065481101561089f575f6006828154811061080057610800611823565b5f9182526020808320909101546001600160a01b0316808352600b90915260409091205490915060ff1615610835575061088d565b6001600160a01b0381165f90815260208190526040812054906108628561085c8885610f44565b90610f4f565b6001600160a01b0384165f9081526009602052604090204290559050610889308483610aa1565b5050505b8061089781611872565b9150506107e2565b505050565b6008546001600160a01b031633146108ce5760405162461bcd60e51b815260040161054e906117ec565b601055565b6008546001600160a01b031633146108fd5760405162461bcd60e51b815260040161054e906117ec565b6001600160a01b0381166109535760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161054e565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661099e5760405163e602df0560e01b81525f600482015260240161054e565b6001600160a01b0382166109c757604051634a1406b160e11b81525f600482015260240161054e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a9b5781811015610a8e57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161054e565b610a9b8484848403610975565b50505050565b600c5460ff16610b2d576001600160a01b0383165f908152600a602052604090205460ff1680610ae857506001600160a01b0382165f908152600a602052604090205460ff165b610b2d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161054e565b600c54610100900460ff1615610bf2576001600160a01b0382165f908152600b602052604090205460ff1680610ba65750610b7b61271061085c600f54600754610f4490919063ffffffff16565b610ba382610b9d856001600160a01b03165f9081526020819052604090205490565b90610f32565b11155b610bf25760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c657420686f6c64696e67000000000000604482015260640161054e565b60115460ff16158015610c3757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015610c5b57506001600160a01b0383165f908152600a602052604090205460ff16155b8015610c7f57506001600160a01b0382165f908152600a602052604090205460ff16155b15610ca4576011805460ff19166001179055610c99610f5a565b6011805460ff191690555b60115460ff16155f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690851614801590610d1b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b6001600160a01b0386165f908152600a602052604090205490915060ff1680610d5b57506001600160a01b0384165f908152600a602052604090205460ff165b80610d635750805b15610d6c575f91505b5f8215610e3b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480610de457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b15610e1d575f610e0561271061085c600e5488610f4490919063ffffffff16565b601254909250829150610e189082610f32565b601255505b8015610e2e57610e2e86308361119e565b610e388482611374565b93505b8180610e7857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b15610f0b576001600160a01b0386165f90815260096020526040902054610ea19061025861188a565b421015610f0b5760405162461bcd60e51b815260206004820152603260248201527f5472616e73666572206c6f636b656420666f72203130206d696e757465732061604482015271667465722050726f766964657244726f707360701b606482015260840161054e565b610f15868561137f565b610f1f858561155e565b610f2a86868661119e565b505050505050565b5f610f3d828461188a565b9392505050565b5f610f3d828461189d565b5f610f3d82846118b4565b601280545f909155610f8d307f000000000000000000000000000000000000000000000000000000000000000083610975565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610fc057610fc0611823565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106091906118d3565b8160018151811061107357611073611823565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac947906110d79085905f908690309042906004016118ee565b5f604051808303815f87803b1580156110ee575f80fd5b505af1158015611100573d5f803e3d5ffd5b50506005546040514793505f92506001600160a01b039091169083908381818185875af1925050503d805f8114611152576040519150601f19603f3d011682016040523d82523d5f602084013e611157565b606091505b5050905080610a9b5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161054e565b6001600160a01b0383166112025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054e565b6001600160a01b0382166112645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054e565b6001600160a01b0383165f90815260208190526040902054818110156112db5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161054e565b6112e5828261184b565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061131a90849061188a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161136691815260200190565b60405180910390a350505050565b5f610f3d828461184b565b6001600160a01b0382165f908152600b602052604090205460ff16156113a3575050565b5f805b60065481101561140157836001600160a01b0316600682815481106113cd576113cd611823565b5f918252602090912001546001600160a01b0316036113ef5760019150611401565b806113f981611872565b9150506113a6565b50801561089f575f6114318361142b866001600160a01b03165f9081526020819052604090205490565b90611374565b905061145061271061085c600d54600754610f4490919063ffffffff16565b811015610a9b575f5b60065481101561155757846001600160a01b03166006828154811061148057611480611823565b5f918252602090912001546001600160a01b03160361154557600680546114a99060019061184b565b815481106114b9576114b9611823565b5f91825260209091200154600680546001600160a01b0390921691839081106114e4576114e4611823565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806115205761152061185e565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611557565b8061154f81611872565b915050611459565b5050505050565b6001600160a01b0382165f908152600b602052604090205460ff1615611582575050565b5f805b6006548110156115e057836001600160a01b0316600682815481106115ac576115ac611823565b5f918252602090912001546001600160a01b0316036115ce57600191506115e0565b806115d881611872565b915050611585565b508015801561162b575061160761271061085c600d54600754610f4490919063ffffffff16565b61162983610b9d866001600160a01b03165f9081526020819052604090205490565b115b1561089f57600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0385166001600160a01b0319909116179055505050565b5f6020808352835180828501525f5b818110156116ac57858101830151858201604001528201611690565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116e0575f80fd5b50565b5f80604083850312156116f4575f80fd5b82356116ff816116cc565b946020939093013593505050565b5f805f6060848603121561171f575f80fd5b833561172a816116cc565b9250602084013561173a816116cc565b929592945050506040919091013590565b5f6020828403121561175b575f80fd5b8135610f3d816116cc565b5f60208284031215611776575f80fd5b5035919050565b5f806040838503121561178e575f80fd5b8235611799816116cc565b915060208301356117a9816116cc565b809150509250929050565b600181811c908216806117c857607f821691505b6020821081036117e657634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156104fb576104fb611837565b634e487b7160e01b5f52603160045260245ffd5b5f6001820161188357611883611837565b5060010190565b808201808211156104fb576104fb611837565b80820281158282048414176104fb576104fb611837565b5f826118ce57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156118e3575f80fd5b8151610f3d816116cc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561193c5784516001600160a01b031683529383019391830191600101611917565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d530034d6296427853d3861a713066a6e192653b65fb0873c0d8ee26b466ca0364736f6c63430008140033
Deployed Bytecode
0x608060405260043610610137575f3560e01c80638da5cb5b116100af578063bbc0c7421161006b578063bbc0c7421461038a578063c9567bf9146103a3578063ca1aca34146103b7578063dd62ed3e146103d6578063ddfeddd11461041a578063f2fde38b1461043957005b80638da5cb5b146102de5780638dd42808146102fb57806395d89b411461031a578063a9059cbb1461032e578063ba70baf61461034d578063bb9492271461036b57005b806323b872dd116100fe57806323b872dd14610216578063313ce5671461023557806349bd5a5e1461025057806368e7a4191461028257806370a0823114610296578063715018a6146102ca57005b806306fdde0314610140578063095ea7b31461016a57806312a35e40146101995780631694505e146101bc57806318160ddd1461020257005b3661013e57005b005b34801561014b575f80fd5b50610154610458565b6040516101619190611681565b60405180910390f35b348015610175575f80fd5b506101896101843660046116e3565b6104e8565b6040519015158152602001610161565b3480156101a4575f80fd5b506101ae60125481565b604051908152602001610161565b3480156101c7575f80fd5b507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d5b6040516001600160a01b039091168152602001610161565b34801561020d575f80fd5b506002546101ae565b348015610221575f80fd5b5061018961023036600461170d565b610501565b348015610240575f80fd5b5060405160128152602001610161565b34801561025b575f80fd5b507f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6101ea565b34801561028d575f80fd5b5061013e610524565b3480156102a1575f80fd5b506101ae6102b036600461174b565b6001600160a01b03165f9081526020819052604090205490565b3480156102d5575f80fd5b5061013e610564565b3480156102e9575f80fd5b506008546001600160a01b03166101ea565b348015610306575f80fd5b5061013e61031536600461174b565b6105a0565b348015610325575f80fd5b506101546106cd565b348015610339575f80fd5b506101896103483660046116e3565b6106dc565b348015610358575f80fd5b50600c5461018990610100900460ff1681565b348015610376575f80fd5b5061013e610385366004611766565b6106e9565b348015610395575f80fd5b50600c546101899060ff1681565b3480156103ae575f80fd5b5061013e610718565b3480156103c2575f80fd5b5061013e6103d1366004611766565b610751565b3480156103e1575f80fd5b506101ae6103f036600461177d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610425575f80fd5b5061013e610434366004611766565b6108a4565b348015610444575f80fd5b5061013e61045336600461174b565b6108d3565b606060038054610467906117b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610493906117b4565b80156104de5780601f106104b5576101008083540402835291602001916104de565b820191905f5260205f20905b8154815290600101906020018083116104c157829003601f168201915b5050505050905090565b5f336104f5818585610975565b60019150505b92915050565b5f3361050e858285610a27565b610519858585610aa1565b506001949350505050565b6008546001600160a01b031633146105575760405162461bcd60e51b815260040161054e906117ec565b60405180910390fd5b600c805461ff0019169055565b6008546001600160a01b0316331461058e5760405162461bcd60e51b815260040161054e906117ec565b600880546001600160a01b0319169055565b6008546001600160a01b031633146105ca5760405162461bcd60e51b815260040161054e906117ec565b5f5b6006548110156106c957816001600160a01b0316600682815481106105f3576105f3611823565b5f918252602090912001546001600160a01b0316036106b7576006805461061c9060019061184b565b8154811061062c5761062c611823565b5f91825260209091200154600680546001600160a01b03909216918390811061065757610657611823565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806106935761069361185e565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b806106c181611872565b9150506105cc565b5050565b606060048054610467906117b4565b5f336104f5818585610aa1565b6008546001600160a01b031633146107135760405162461bcd60e51b815260040161054e906117ec565b600d55565b6008546001600160a01b031633146107425760405162461bcd60e51b815260040161054e906117ec565b600c805460ff19166001179055565b6008546001600160a01b0316331461077b5760405162461bcd60e51b815260040161054e906117ec565b5f805b6006548110156107df576107cb6107c4600683815481106107a1576107a1611823565b5f9182526020808320909101546001600160a01b03168252819052604090205490565b8390610f32565b9150806107d781611872565b91505061077e565b505f5b60065481101561089f575f6006828154811061080057610800611823565b5f9182526020808320909101546001600160a01b0316808352600b90915260409091205490915060ff1615610835575061088d565b6001600160a01b0381165f90815260208190526040812054906108628561085c8885610f44565b90610f4f565b6001600160a01b0384165f9081526009602052604090204290559050610889308483610aa1565b5050505b8061089781611872565b9150506107e2565b505050565b6008546001600160a01b031633146108ce5760405162461bcd60e51b815260040161054e906117ec565b601055565b6008546001600160a01b031633146108fd5760405162461bcd60e51b815260040161054e906117ec565b6001600160a01b0381166109535760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161054e565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661099e5760405163e602df0560e01b81525f600482015260240161054e565b6001600160a01b0382166109c757604051634a1406b160e11b81525f600482015260240161054e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a9b5781811015610a8e57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161054e565b610a9b8484848403610975565b50505050565b600c5460ff16610b2d576001600160a01b0383165f908152600a602052604090205460ff1680610ae857506001600160a01b0382165f908152600a602052604090205460ff165b610b2d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161054e565b600c54610100900460ff1615610bf2576001600160a01b0382165f908152600b602052604090205460ff1680610ba65750610b7b61271061085c600f54600754610f4490919063ffffffff16565b610ba382610b9d856001600160a01b03165f9081526020819052604090205490565b90610f32565b11155b610bf25760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c657420686f6c64696e67000000000000604482015260640161054e565b60115460ff16158015610c3757507f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6001600160a01b0316836001600160a01b031614155b8015610c5b57506001600160a01b0383165f908152600a602052604090205460ff16155b8015610c7f57506001600160a01b0382165f908152600a602052604090205460ff16155b15610ca4576011805460ff19166001179055610c99610f5a565b6011805460ff191690555b60115460ff16155f7f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6001600160a01b0390811690851614801590610d1b57507f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6001600160a01b0316856001600160a01b031614155b6001600160a01b0386165f908152600a602052604090205490915060ff1680610d5b57506001600160a01b0384165f908152600a602052604090205460ff165b80610d635750805b15610d6c575f91505b5f8215610e3b577f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6001600160a01b0316866001600160a01b03161480610de457507f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6001600160a01b0316856001600160a01b0316145b15610e1d575f610e0561271061085c600e5488610f4490919063ffffffff16565b601254909250829150610e189082610f32565b601255505b8015610e2e57610e2e86308361119e565b610e388482611374565b93505b8180610e7857507f000000000000000000000000e579099fbcce000ea99900904b999c116b5fbfbe6001600160a01b0316856001600160a01b0316145b15610f0b576001600160a01b0386165f90815260096020526040902054610ea19061025861188a565b421015610f0b5760405162461bcd60e51b815260206004820152603260248201527f5472616e73666572206c6f636b656420666f72203130206d696e757465732061604482015271667465722050726f766964657244726f707360701b606482015260840161054e565b610f15868561137f565b610f1f858561155e565b610f2a86868661119e565b505050505050565b5f610f3d828461188a565b9392505050565b5f610f3d828461189d565b5f610f3d82846118b4565b601280545f909155610f8d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83610975565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610fc057610fc0611823565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106091906118d3565b8160018151811061107357611073611823565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac947906110d79085905f908690309042906004016118ee565b5f604051808303815f87803b1580156110ee575f80fd5b505af1158015611100573d5f803e3d5ffd5b50506005546040514793505f92506001600160a01b039091169083908381818185875af1925050503d805f8114611152576040519150601f19603f3d011682016040523d82523d5f602084013e611157565b606091505b5050905080610a9b5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161054e565b6001600160a01b0383166112025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054e565b6001600160a01b0382166112645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054e565b6001600160a01b0383165f90815260208190526040902054818110156112db5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161054e565b6112e5828261184b565b6001600160a01b038086165f90815260208190526040808220939093559085168152908120805484929061131a90849061188a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161136691815260200190565b60405180910390a350505050565b5f610f3d828461184b565b6001600160a01b0382165f908152600b602052604090205460ff16156113a3575050565b5f805b60065481101561140157836001600160a01b0316600682815481106113cd576113cd611823565b5f918252602090912001546001600160a01b0316036113ef5760019150611401565b806113f981611872565b9150506113a6565b50801561089f575f6114318361142b866001600160a01b03165f9081526020819052604090205490565b90611374565b905061145061271061085c600d54600754610f4490919063ffffffff16565b811015610a9b575f5b60065481101561155757846001600160a01b03166006828154811061148057611480611823565b5f918252602090912001546001600160a01b03160361154557600680546114a99060019061184b565b815481106114b9576114b9611823565b5f91825260209091200154600680546001600160a01b0390921691839081106114e4576114e4611823565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806115205761152061185e565b5f8281526020902081015f1990810180546001600160a01b0319169055019055611557565b8061154f81611872565b915050611459565b5050505050565b6001600160a01b0382165f908152600b602052604090205460ff1615611582575050565b5f805b6006548110156115e057836001600160a01b0316600682815481106115ac576115ac611823565b5f918252602090912001546001600160a01b0316036115ce57600191506115e0565b806115d881611872565b915050611585565b508015801561162b575061160761271061085c600d54600754610f4490919063ffffffff16565b61162983610b9d866001600160a01b03165f9081526020819052604090205490565b115b1561089f57600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0385166001600160a01b0319909116179055505050565b5f6020808352835180828501525f5b818110156116ac57858101830151858201604001528201611690565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116e0575f80fd5b50565b5f80604083850312156116f4575f80fd5b82356116ff816116cc565b946020939093013593505050565b5f805f6060848603121561171f575f80fd5b833561172a816116cc565b9250602084013561173a816116cc565b929592945050506040919091013590565b5f6020828403121561175b575f80fd5b8135610f3d816116cc565b5f60208284031215611776575f80fd5b5035919050565b5f806040838503121561178e575f80fd5b8235611799816116cc565b915060208301356117a9816116cc565b809150509250929050565b600181811c908216806117c857607f821691505b6020821081036117e657634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156104fb576104fb611837565b634e487b7160e01b5f52603160045260245ffd5b5f6001820161188357611883611837565b5060010190565b808201808211156104fb576104fb611837565b80820281158282048414176104fb576104fb611837565b5f826118ce57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156118e3575f80fd5b8151610f3d816116cc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561193c5784516001600160a01b031683529383019391830191600101611917565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d530034d6296427853d3861a713066a6e192653b65fb0873c0d8ee26b466ca0364736f6c63430008140033
Deployed Bytecode Sourcemap
6799:9975:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3276:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4272:224;;;;;;;;;;-1:-1:-1;4272:224:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4272:224:0;1023:187:1;7815:29:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;7815:29:0;1215:177:1;16192:107:0;;;;;;;;;;-1:-1:-1;16277:13:0;16192:107;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;16192:107:0;1397:203:1;3597:108:0;;;;;;;;;;-1:-1:-1;3685:12:0;;3597:108;;4504:292;;;;;;;;;;-1:-1:-1;4504:292:0;;;;;:::i;:::-;;:::i;3496:93::-;;;;;;;;;;-1:-1:-1;3496:93:0;;3579:2;2208:36:1;;2196:2;2181:18;3496:93:0;2066:184:1;16090:94:0;;;;;;;;;;-1:-1:-1;16165:11:0;16090:94;;15978:104;;;;;;;;;;;;;:::i;3713:143::-;;;;;;;;;;-1:-1:-1;3713:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;3830:18:0;3803:7;3830:18;;;;;;;;;;;;3713:143;15701:86;;;;;;;;;;;;;:::i;9119:79::-;;;;;;;;;;-1:-1:-1;9184:6:0;;-1:-1:-1;;;;;9184:6:0;9119:79;;16307:311;;;;;;;;;;-1:-1:-1;16307:311:0;;;;;:::i;:::-;;:::i;3384:104::-;;;;;;;;;;;;;:::i;3864:216::-;;;;;;;;;;-1:-1:-1;3864:216:0;;;;;:::i;:::-;;:::i;7326:42::-;;;;;;;;;;-1:-1:-1;7326:42:0;;;;;;;;;;;15538:155;;;;;;;;;;-1:-1:-1;15538:155:0;;;;;:::i;:::-;;:::i;7294:25::-;;;;;;;;;;-1:-1:-1;7294:25:0;;;;;;;;9809:81;;;;;;;;;;;;;:::i;12780:812::-;;;;;;;;;;-1:-1:-1;12780:812:0;;;;;:::i;:::-;;:::i;4088:176::-;;;;;;;;;;-1:-1:-1;4088:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;4229:18:0;;;4202:7;4229:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4088:176;15346:126;;;;;;;;;;-1:-1:-1;15346:126:0;;;;;:::i;:::-;;:::i;15795:175::-;;;;;;;;;;-1:-1:-1;15795:175:0;;;;;:::i;:::-;;:::i;3276:100::-;3330:13;3363:5;3356:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3276:100;:::o;4272:224::-;4379:4;2412:10;4435:31;2412:10;4451:7;4460:5;4435:8;:31::i;:::-;4484:4;4477:11;;;4272:224;;;;;:::o;4504:292::-;4634:4;2412:10;4692:37;4708:4;2412:10;4723:5;4692:15;:37::i;:::-;4740:26;4750:4;4756:2;4760:5;4740:9;:26::i;:::-;-1:-1:-1;4784:4:0;;4504:292;-1:-1:-1;;;;4504:292:0:o;15978:104::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;;;;;;;;;16043:23:::1;:31:::0;;-1:-1:-1;;16043:31:0::1;::::0;;15978:104::o;15701:86::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;15760:6:::1;:19:::0;;-1:-1:-1;;;;;;15760:19:0::1;::::0;;15701:86::o;16307:311::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;16381:9:::1;16376:235;16400:8;:15:::0;16396:19;::::1;16376:235;;;16456:7;-1:-1:-1::0;;;;;16441:22:0::1;:8;16450:1;16441:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;16441:11:0::1;:22:::0;16437:163:::1;;16498:8;16507:15:::0;;:19:::1;::::0;16525:1:::1;::::0;16507:19:::1;:::i;:::-;16498:29;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;16484:8:::1;:11:::0;;-1:-1:-1;;;;;16498:29:0;;::::1;::::0;16493:1;;16484:11;::::1;;;;;:::i;:::-;;;;;;;;;:43;;;;;-1:-1:-1::0;;;;;16484:43:0::1;;;;;-1:-1:-1::0;;;;;16484:43:0::1;;;;;;16546:8;:14;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;16546:14:0;;;;;-1:-1:-1;;;;;;16546:14:0::1;::::0;;;;;16376:235:::1;16307:311:::0;:::o;16437:163::-:1;16417:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16376:235;;;;16307:311:::0;:::o;3384:104::-;3440:13;3473:7;3466:14;;;;;:::i;3864:216::-;3967:4;2412:10;4023:27;2412:10;4040:2;4044:5;4023:9;:27::i;15538:155::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;15638:20:::1;:47:::0;15538:155::o;9809:81::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;9862:13:::1;:20:::0;;-1:-1:-1;;9862:20:0::1;9878:4;9862:20;::::0;;9809:81::o;12780:812::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;12873:23:::1;12916:9:::0;12911:134:::1;12935:8;:15:::0;12931:19;::::1;12911:134;;;12990:43;13010:22;13020:8;13029:1;13020:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;13020:11:0::1;3830:18:::0;;;;;;;;;;3713:143;13010:22:::1;12990:15:::0;;:19:::1;:43::i;:::-;12972:61:::0;-1:-1:-1;12952:3:0;::::1;::::0;::::1;:::i;:::-;;;;12911:134;;;;13062:9;13057:528;13081:8;:15:::0;13077:19;::::1;13057:528;;;13118:14;13135:8;13144:1;13135:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;13135:11:0::1;13165:30:::0;;;:22:::1;:30:::0;;;;;;;;13135:11;;-1:-1:-1;13165:30:0::1;;13161:79;;;13216:8;;;13161:79;-1:-1:-1::0;;;;;3830:18:0;;13256:21:::1;3830:18:::0;;;;;;;;;;;;13342:96:::1;13408:15:::0;13342:43:::1;:24:::0;3830:18;13342:28:::1;:43::i;:::-;:47:::0;::::1;:96::i;:::-;-1:-1:-1::0;;;;;13455:32:0;::::1;;::::0;;;:24:::1;:32;::::0;;;;13490:15:::1;13455:50:::0;;13312:126;-1:-1:-1;13520:53:0::1;13538:4;13480:6:::0;13312:126;13520:9:::1;:53::i;:::-;13103:482;;;13057:528;13098:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13057:528;;;;12862:730;12780:812:::0;:::o;15346:126::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;15430:15:::1;:34:::0;15346:126::o;15795:175::-;9184:6;;-1:-1:-1;;;;;9184:6:0;9042:10;:21;9034:57;;;;-1:-1:-1;;;9034:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15878:22:0;::::1;15870:64;;;::::0;-1:-1:-1;;;15870:64:0;;4693:2:1;15870:64:0::1;::::0;::::1;4675:21:1::0;4732:2;4712:18;;;4705:30;4771:31;4751:18;;;4744:59;4820:18;;15870:64:0::1;4491:353:1::0;15870:64:0::1;15945:6;:17:::0;;-1:-1:-1;;;;;;15945:17:0::1;-1:-1:-1::0;;;;;15945:17:0;;;::::1;::::0;;;::::1;::::0;;15795:175::o;5768:420::-;-1:-1:-1;;;;;5899:19:0;;5895:91;;5942:32;;-1:-1:-1;;;5942:32:0;;5971:1;5942:32;;;1543:51:1;1516:18;;5942:32:0;1397:203:1;5895:91:0;-1:-1:-1;;;;;6000:21:0;;5996:92;;6045:31;;-1:-1:-1;;;6045:31:0;;6073:1;6045:31;;;1543:51:1;1516:18;;6045:31:0;1397:203:1;5996:92:0;-1:-1:-1;;;;;6098:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;6149:31;;1361:25:1;;;6149:31:0;;1334:18:1;6149:31:0;;;;;;;5768:420;;;:::o;6196:596::-;-1:-1:-1;;;;;4229:18:0;;;6330:24;4229:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6397:37:0;;6393:392;;6474:5;6455:16;:24;6451:214;;;6507:142;;-1:-1:-1;;;6507:142:0;;-1:-1:-1;;;;;5069:32:1;;6507:142:0;;;5051:51:1;5118:18;;;5111:34;;;5161:18;;;5154:34;;;5024:18;;6507:142:0;4849:345:1;6451:214:0;6708:50;6717:5;6724:7;6752:5;6733:16;:24;6708:8;:50::i;:::-;6319:473;6196:596;;;:::o;9898:1987::-;10034:13;;;;10029:179;;-1:-1:-1;;;;;10090:23:0;;;;;;:17;:23;;;;;;;;;:48;;-1:-1:-1;;;;;;10117:21:0;;;;;;:17;:21;;;;;;;;10090:48;10064:132;;;;-1:-1:-1;;;10064:132:0;;5401:2:1;10064:132:0;;;5383:21:1;5440:2;5420:18;;;5413:30;-1:-1:-1;;;5459:18:1;;;5452:52;5521:18;;10064:132:0;5199:346:1;10064:132:0;10222:23;;;;;;;10218:289;;;-1:-1:-1;;;;;10288:26:0;;;;;;:22;:26;;;;;;;;;:145;;;10388:45;10427:5;10388:34;10405:16;;10388:12;;:16;;:34;;;;:::i;:45::-;10339:24;10357:5;10339:13;10349:2;-1:-1:-1;;;;;3830:18:0;3803:7;3830:18;;;;;;;;;;;;3713:143;10339:13;:17;;:24::i;:::-;:94;;10288:145;10262:233;;;;-1:-1:-1;;;10262:233:0;;5752:2:1;10262:233:0;;;5734:21:1;5791:2;5771:18;;;5764:30;5830:28;5810:18;;;5803:56;5876:18;;10262:233:0;5550:350:1;10262:233:0;10536:7;;;;10535:8;:44;;;;;10568:11;-1:-1:-1;;;;;10560:19:0;:4;-1:-1:-1;;;;;10560:19:0;;;10535:44;:85;;;;-1:-1:-1;;;;;;10597:23:0;;;;;;:17;:23;;;;;;;;10596:24;10535:85;:124;;;;-1:-1:-1;;;;;;10638:21:0;;;;;;:17;:21;;;;;;;;10637:22;10535:124;10517:258;;;10686:7;:14;;-1:-1:-1;;10686:14:0;10696:4;10686:14;;;10715:18;:16;:18::i;:::-;10748:7;:15;;-1:-1:-1;;10748:15:0;;;10517:258;10801:7;;;;10800:8;10785:12;10847:11;-1:-1:-1;;;;;10841:17:0;;;;;;;;;;:40;;;10870:11;-1:-1:-1;;;;;10862:19:0;:4;-1:-1:-1;;;;;10862:19:0;;;10841:40;-1:-1:-1;;;;;10910:23:0;;;;;;:17;:23;;;;;;10819:62;;-1:-1:-1;10910:23:0;;;:48;;-1:-1:-1;;;;;;10937:21:0;;;;;;:17;:21;;;;;;;;10910:48;:66;;;;10962:14;10910:66;10892:138;;;11013:5;11003:15;;10892:138;11040:12;11073:7;11069:437;;;11109:11;-1:-1:-1;;;;;11101:19:0;:4;-1:-1:-1;;;;;11101:19:0;;:40;;;;11130:11;-1:-1:-1;;;;;11124:17:0;:2;-1:-1:-1;;;;;11124:17:0;;11101:40;11097:255;;;11162:17;11182:32;11208:5;11182:21;11192:10;;11182:5;:9;;:21;;;;:::i;:32::-;11285:14;;11162:52;;-1:-1:-1;11162:52:0;;-1:-1:-1;11285:29:0;;11162:52;11285:18;:29::i;:::-;11268:14;:46;-1:-1:-1;11097:255:0;11370:8;;11366:91;;11399:42;11415:4;11429;11436;11399:15;:42::i;:::-;11479:15;:5;11489:4;11479:9;:15::i;:::-;11471:23;;11069:437;11520:14;:35;;;;11544:11;-1:-1:-1;;;;;11538:17:0;:2;-1:-1:-1;;;;;11538:17:0;;11520:35;11516:242;;;-1:-1:-1;;;;;11617:30:0;;;;;;:24;:30;;;;;;:43;;11650:10;11617:43;:::i;:::-;11598:15;:62;;11572:174;;;;-1:-1:-1;;;11572:174:0;;6237:2:1;11572:174:0;;;6219:21:1;6276:2;6256:18;;;6249:30;6315:34;6295:18;;;6288:62;-1:-1:-1;;;6366:18:1;;;6359:48;6424:19;;11572:174:0;6035:414:1;11572:174:0;11768:31;11787:4;11793:5;11768:18;:31::i;:::-;11810:24;11824:2;11828:5;11810:13;:24::i;:::-;11845:32;11861:4;11867:2;11871:5;11845:15;:32::i;:::-;10018:1867;;;9898:1987;;;:::o;239:98::-;297:7;324:5;328:1;324;:5;:::i;:::-;317:12;239:98;-1:-1:-1;;;239:98:0:o;451:::-;509:7;536:5;540:1;536;:5;:::i;557:98::-;615:7;642:5;646:1;642;:5;:::i;14432:853::-;14499:14;;;14479:17;14550:18;;;14609:58;14626:4;14641:13;14499:14;14609:8;:58::i;:::-;14704:16;;;14718:1;14704:16;;;;;;;;14680:21;;14704:16;;;;;;;;;;-1:-1:-1;14704:16:0;14680:40;;14749:4;14731;14736:1;14731:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14731:23:0;;;-1:-1:-1;;;;;14731:23:0;;;;;14775:13;-1:-1:-1;;;;;14775:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14765:4;14770:1;14765:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14765:30:0;;;:7;;;;;;;;;:30;14840:220;;-1:-1:-1;;;14840:220:0;;:13;:64;;;;;;:220;;14919:9;;14943:1;;14987:4;;15014;;15034:15;;14840:220;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15196:3:0;;:31;;15145:21;;-1:-1:-1;15124:18:0;;-1:-1:-1;;;;;;15196:3:0;;;;15145:21;;15124:18;15196:31;15124:18;15196:31;15145:21;15196:3;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15177:50;;;15246:7;15238:39;;;;-1:-1:-1;;;15238:39:0;;8634:2:1;15238:39:0;;;8616:21:1;8673:2;8653:18;;;8646:30;-1:-1:-1;;;8692:18:1;;;8685:49;8751:18;;15238:39:0;8432:343:1;4804:615:0;-1:-1:-1;;;;;4944:20:0;;4936:70;;;;-1:-1:-1;;;4936:70:0;;8982:2:1;4936:70:0;;;8964:21:1;9021:2;9001:18;;;8994:30;9060:34;9040:18;;;9033:62;-1:-1:-1;;;9111:18:1;;;9104:35;9156:19;;4936:70:0;8780:401:1;4936:70:0;-1:-1:-1;;;;;5025:23:0;;5017:71;;;;-1:-1:-1;;;5017:71:0;;9388:2:1;5017:71:0;;;9370:21:1;9427:2;9407:18;;;9400:30;9466:34;9446:18;;;9439:62;-1:-1:-1;;;9517:18:1;;;9510:33;9560:19;;5017:71:0;9186:399:1;5017:71:0;-1:-1:-1;;;;;5125:17:0;;5101:21;5125:17;;;;;;;;;;;5175:23;;;;5153:111;;;;-1:-1:-1;;;5153:111:0;;9792:2:1;5153:111:0;;;9774:21:1;9831:2;9811:18;;;9804:30;9870:34;9850:18;;;9843:62;-1:-1:-1;;;9921:18:1;;;9914:36;9967:19;;5153:111:0;9590:402:1;5153:111:0;5295:22;5311:6;5295:13;:22;:::i;:::-;-1:-1:-1;;;;;5275:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5328:20;;;;;;;;:30;;5352:6;;5275:9;5328:30;;5352:6;;5328:30;:::i;:::-;;;;;;;;5393:9;-1:-1:-1;;;;;5376:35:0;5385:6;-1:-1:-1;;;;;5376:35:0;;5404:6;5376:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;5376:35:0;;;;;;;;4925:494;4804:615;;;:::o;345:98::-;403:7;430:5;434:1;430;:5;:::i;11893:879::-;-1:-1:-1;;;;;11977:31:0;;;;;;:22;:31;;;;;;;;11973:70;;;11893:879;;:::o;11973:70::-;12053:18;12095:9;12090:179;12114:8;:15;12110:19;;12090:179;;;12170:7;-1:-1:-1;;;;;12155:22:0;:8;12164:1;12155:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12155:11:0;:22;12151:107;;12214:4;12198:20;;12237:5;;12151:107;12131:3;;;;:::i;:::-;;;;12090:179;;;;12285:13;12281:484;;;12315:12;12330:30;12353:6;12330:18;12340:7;-1:-1:-1;;;;;3830:18:0;3803:7;3830:18;;;;;;;;;;;;3713:143;12330:18;:22;;:30::i;:::-;12315:45;;12386:49;12429:5;12386:38;12403:20;;12386:12;;:16;;:38;;;;:::i;:49::-;12379:4;:56;12375:379;;;12461:9;12456:283;12480:8;:15;12476:19;;12456:283;;;12544:7;-1:-1:-1;;;;;12529:22:0;:8;12538:1;12529:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12529:11:0;:22;12525:195;;12594:8;12603:15;;:19;;12621:1;;12603:19;:::i;:::-;12594:29;;;;;;;;:::i;:::-;;;;;;;;;;;12580:8;:11;;-1:-1:-1;;;;;12594:29:0;;;;12589:1;;12580:11;;;;;;:::i;:::-;;;;;;;;;:43;;;;;-1:-1:-1;;;;;12580:43:0;;;;;-1:-1:-1;;;;;12580:43:0;;;;;;12650:8;:14;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;12650:14:0;;;;;-1:-1:-1;;;;;;12650:14:0;;;;;;12691:5;;12525:195;12497:3;;;;:::i;:::-;;;;12456:283;;;;12300:465;11962:810;11893:879;;:::o;9206:595::-;-1:-1:-1;;;;;9285:31:0;;;;;;:22;:31;;;;;;;;9281:70;;;9206:595;;:::o;9281:70::-;9361:18;9403:9;9398:179;9422:8;:15;9418:19;;9398:179;;;9478:7;-1:-1:-1;;;;;9463:22:0;:8;9472:1;9463:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;9463:11:0;:22;9459:107;;9522:4;9506:20;;9545:5;;9459:107;9439:3;;;;:::i;:::-;;;;9398:179;;;;9608:13;9607:14;:126;;;;;9684:49;9727:5;9684:38;9701:20;;9684:12;;:16;;:38;;;;:::i;:49::-;9638:30;9661:6;9638:18;9648:7;-1:-1:-1;;;;;3830:18:0;3803:7;3830:18;;;;;;;;;;;;3713:143;9638:30;:95;9607:126;9589:205;;;9760:8;:22;;;;;;;-1:-1:-1;9760:22:0;;;;;;;;-1:-1:-1;;;;;9760:22:0;;-1:-1:-1;;;;;;9760:22:0;;;;;;9270:531;9206:595;;:::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;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:380::-;3164:1;3160:12;;;;3207;;;3228:61;;3282:4;3274:6;3270:17;3260:27;;3228:61;3335:2;3327:6;3324:14;3304:18;3301:38;3298:161;;3381:10;3376:3;3372:20;3369:1;3362:31;3416:4;3413:1;3406:15;3444:4;3441:1;3434:15;3298:161;;3085:380;;;:::o;3470:347::-;3672:2;3654:21;;;3711:2;3691:18;;;3684:30;3750:25;3745:2;3730:18;;3723:53;3808:2;3793:18;;3470:347::o;3822:127::-;3883:10;3878:3;3874:20;3871:1;3864:31;3914:4;3911:1;3904:15;3938:4;3935:1;3928:15;3954:127;4015:10;4010:3;4006:20;4003:1;3996:31;4046:4;4043:1;4036:15;4070:4;4067:1;4060:15;4086:128;4153:9;;;4174:11;;;4171:37;;;4188:18;;:::i;4219:127::-;4280:10;4275:3;4271:20;4268:1;4261:31;4311:4;4308:1;4301:15;4335:4;4332:1;4325:15;4351:135;4390:3;4411:17;;;4408:43;;4431:18;;:::i;:::-;-1:-1:-1;4478:1:1;4467:13;;4351:135::o;5905:125::-;5970:9;;;5991:10;;;5988:36;;;6004:18;;:::i;6454:168::-;6527:9;;;6558;;6575:15;;;6569:22;;6555:37;6545:71;;6596:18;;:::i;6627:217::-;6667:1;6693;6683:132;;6737:10;6732:3;6728:20;6725:1;6718:31;6772:4;6769:1;6762:15;6800:4;6797:1;6790:15;6683:132;-1:-1:-1;6829:9:1;;6627:217::o;6981:251::-;7051:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:52;;;7120:1;7117;7110:12;7072:52;7152:9;7146:16;7171:31;7196:5;7171:31;:::i;7237:980::-;7499:4;7547:3;7536:9;7532:19;7578:6;7567:9;7560:25;7604:2;7642:6;7637:2;7626:9;7622:18;7615:34;7685:3;7680:2;7669:9;7665:18;7658:31;7709:6;7744;7738:13;7775:6;7767;7760:22;7813:3;7802:9;7798:19;7791:26;;7852:2;7844:6;7840:15;7826:29;;7873:1;7883:195;7897:6;7894:1;7891:13;7883:195;;;7962:13;;-1:-1:-1;;;;;7958:39:1;7946:52;;8053:15;;;;8018:12;;;;7994:1;7912:9;7883:195;;;-1:-1:-1;;;;;;;8134:32:1;;;;8129:2;8114:18;;8107:60;-1:-1:-1;;;8198:3:1;8183:19;8176:35;8095:3;7237:980;-1:-1:-1;;;7237:980:1:o
Swarm Source
ipfs://d530034d6296427853d3861a713066a6e192653b65fb0873c0d8ee26b466ca03
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.