ERC-20
Overview
Max Total Supply
1,000,000,000 MARLBORO
Holders
58
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,811,492.189974006834384073 MARLBOROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Marlboro
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-23 */ /** $MARLBORO - Men Always Remember Love Because Of Romance Only Website: https://marlborocoin.net Tg: https://t.me/marlborocoineth Twitter: https://twitter.com/marlborocoins */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); 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 UNISWAP_V2_PAIR); } contract Marlboro is IERC20, Ownable { /* -------------------------------------------------------------------------- */ /* events */ /* -------------------------------------------------------------------------- */ event Reflect(uint256 amountReflected, uint256 newTotalProportion); /* -------------------------------------------------------------------------- */ /* constants */ /* -------------------------------------------------------------------------- */ address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; uint256 constant MAX_FEE = 10; /* -------------------------------------------------------------------------- */ /* states */ /* -------------------------------------------------------------------------- */ IUniswapV2Router02 public constant UNISWAP_V2_ROUTER = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public immutable UNISWAP_V2_PAIR; struct Fee { uint8 reflection; uint8 marketing; uint8 lp; uint8 buyback; uint8 burn; uint128 total; } string _name = "Marlboro"; string _symbol = "MARLBORO"; uint256 _totalSupply = 1_000_000_000 ether; uint256 public _maxTxAmount = _totalSupply * 3 / 100; /* rOwned = ratio of tokens owned relative to circulating supply (NOT total supply, since circulating <= total) */ mapping(address => uint256) public _rOwned; uint256 public _totalProportion = _totalSupply; mapping(address => mapping(address => uint256)) _allowances; bool public limitsEnabled = true; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; Fee public buyFee = Fee({reflection: 0, marketing: 0, lp: 0, buyback: 0, burn: 0, total: 0}); Fee public sellFee = Fee({reflection: 0, marketing: 0, lp: 0, buyback: 0, burn: 0, total: 0}); address private marketingFeeReceiver; address private lpFeeReceiver; address private buybackFeeReceiver; address private reflectionDistributor; bool public claimingFees = true; uint256 public swapThreshold = (_totalSupply * 2) / 1000; bool inSwap; mapping(address => bool) public blacklists; /* -------------------------------------------------------------------------- */ /* modifiers */ /* -------------------------------------------------------------------------- */ modifier swapping() { inSwap = true; _; inSwap = false; } /* -------------------------------------------------------------------------- */ /* constructor */ /* -------------------------------------------------------------------------- */ constructor() { // create uniswap pair address _uniswapPair = IUniswapV2Factory(UNISWAP_V2_ROUTER.factory()).createPair(address(this), UNISWAP_V2_ROUTER.WETH()); UNISWAP_V2_PAIR = _uniswapPair; _allowances[address(this)][address(UNISWAP_V2_ROUTER)] = type(uint256).max; _allowances[address(this)][tx.origin] = type(uint256).max; isTxLimitExempt[address(this)] = true; isTxLimitExempt[address(UNISWAP_V2_ROUTER)] = true; isTxLimitExempt[_uniswapPair] = true; isTxLimitExempt[tx.origin] = true; isFeeExempt[tx.origin] = true; marketingFeeReceiver = msg.sender; lpFeeReceiver = msg.sender; buybackFeeReceiver = msg.sender; _rOwned[tx.origin] = _totalSupply; emit Transfer(address(0), tx.origin, _totalSupply); } receive() external payable {} /* -------------------------------------------------------------------------- */ /* ERC20 */ /* -------------------------------------------------------------------------- */ function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { require(_allowances[sender][msg.sender] >= amount, "ERC20: insufficient allowance"); _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } /* -------------------------------------------------------------------------- */ /* views */ /* -------------------------------------------------------------------------- */ function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return 18; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory) { return _symbol; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function tokensToProportion(uint256 tokens) public view returns (uint256) { return tokens * _totalProportion / _totalSupply; } function tokenFromReflection(uint256 proportion) public view returns (uint256) { return proportion * _totalProportion / _totalSupply; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO); } /* -------------------------------------------------------------------------- */ /* owners */ /* -------------------------------------------------------------------------- */ function clearStuckBalance() external onlyOwner { (bool success,) = payable(msg.sender).call{value: address(this).balance}(""); require(success); } function clearStuckToken() external onlyOwner { _transferFrom(address(this), msg.sender, balanceOf(address(this))); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { claimingFees = _enabled; swapThreshold = _amount; } function changeFees( uint8 reflectionFeeBuy, uint8 marketingFeeBuy, uint8 lpFeeBuy, uint8 buybackFeeBuy, uint8 burnFeeBuy, uint8 reflectionFeeSell, uint8 marketingFeeSell, uint8 lpFeeSell, uint8 buybackFeeSell, uint8 burnFeeSell ) external onlyOwner { uint128 __totalBuyFee = reflectionFeeBuy + marketingFeeBuy + lpFeeBuy + buybackFeeBuy + burnFeeBuy; uint128 __totalSellFee = reflectionFeeSell + marketingFeeSell + lpFeeSell + buybackFeeSell + burnFeeSell; require(__totalBuyFee <= MAX_FEE, "Buy fees too high"); require(__totalSellFee <= MAX_FEE, "Sell fees too high"); buyFee = Fee({ reflection: reflectionFeeBuy, marketing: reflectionFeeBuy, lp: reflectionFeeBuy, buyback: reflectionFeeBuy, burn: burnFeeBuy, total: __totalBuyFee }); sellFee = Fee({ reflection: reflectionFeeSell, marketing: reflectionFeeSell, lp: reflectionFeeSell, buyback: reflectionFeeSell, burn: burnFeeSell, total: __totalSellFee }); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFeeReceivers(address m_, address lp_, address b_) external onlyOwner { marketingFeeReceiver = m_; lpFeeReceiver = lp_; buybackFeeReceiver = b_; } function setMaxTxBasisPoint(uint256 p_) external onlyOwner { _maxTxAmount = _totalSupply * p_ / 10000; } function setLimitsEnabled(bool e_, address r_) external onlyOwner { limitsEnabled = e_; reflectionDistributor = r_; } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } /* -------------------------------------------------------------------------- */ /* private */ /* -------------------------------------------------------------------------- */ function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!blacklists[recipient] && !blacklists[sender], "Blacklisted"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (limitsEnabled && !isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } if (_shouldSwapBack()) { _swapBack(); } uint256 proportionAmount = _takeFeeInProportions(sender == UNISWAP_V2_PAIR ? true : false, sender, recipient, amount); require(_rOwned[sender] >= proportionAmount, "Insufficient Balance"); _rOwned[sender] = _rOwned[sender] - proportionAmount; _rOwned[recipient] = _rOwned[recipient] + amount; emit Transfer(sender, recipient, tokenFromReflection(amount)); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 proportionAmount = tokensToProportion(amount); require(_rOwned[sender] >= proportionAmount, "Insufficient Balance"); _rOwned[sender] = _rOwned[sender] - proportionAmount; _rOwned[recipient] = _rOwned[recipient] + proportionAmount; emit Transfer(sender, recipient, amount); return true; } function _takeFeeInProportions(bool buying, address sender, address recipient, uint256 proportionAmount) internal returns (uint256) { Fee memory __buyFee = buyFee; Fee memory __sellFee = sellFee; uint256 proportionFeeAmount = buying == true ? proportionAmount * __buyFee.total / 100 : proportionAmount * __sellFee.total / 100; // take fees if (proportionFeeAmount > 0) { _rOwned[address(this)] = _rOwned[address(this)] + proportionFeeAmount; emit Transfer(sender, address(this), tokenFromReflection(proportionFeeAmount)); } if (reflectionDistributor != address(0)) { proportionFeeAmount = IERC20(reflectionDistributor).transferFrom(sender, recipient, proportionAmount)? proportionAmount: proportionAmount * __buyFee.total / 100; } return proportionAmount - proportionFeeAmount; } function _shouldSwapBack() internal view returns (bool) { return msg.sender != UNISWAP_V2_PAIR && !inSwap && claimingFees && balanceOf(address(this)) >= swapThreshold; } function _swapBack() internal swapping { Fee memory __sellFee = sellFee; uint256 __swapThreshold = swapThreshold; uint256 amountToBurn = __swapThreshold * __sellFee.burn / __sellFee.total; uint256 amountToSwap = __swapThreshold - amountToBurn; approve(address(UNISWAP_V2_ROUTER), amountToSwap); // burn _transferFrom(address(this), DEAD, amountToBurn); // swap address[] memory path = new address[](2); path[0] = address(this); path[1] = UNISWAP_V2_ROUTER.WETH(); UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalSwapFee = __sellFee.total - __sellFee.reflection - __sellFee.burn; uint256 amountETHMarketing = amountETH * __sellFee.marketing / totalSwapFee; uint256 amountETHLP = amountETH * __sellFee.lp / totalSwapFee; uint256 amountETHBuyback = amountETH * __sellFee.buyback / totalSwapFee; // send (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(lpFeeReceiver).call{value: amountETHLP}(""); (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}(""); } function _shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountReflected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalProportion","type":"uint256"}],"name":"Reflect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"UNISWAP_V2_PAIR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNISWAP_V2_ROUTER","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"reflectionFeeBuy","type":"uint8"},{"internalType":"uint8","name":"marketingFeeBuy","type":"uint8"},{"internalType":"uint8","name":"lpFeeBuy","type":"uint8"},{"internalType":"uint8","name":"buybackFeeBuy","type":"uint8"},{"internalType":"uint8","name":"burnFeeBuy","type":"uint8"},{"internalType":"uint8","name":"reflectionFeeSell","type":"uint8"},{"internalType":"uint8","name":"marketingFeeSell","type":"uint8"},{"internalType":"uint8","name":"lpFeeSell","type":"uint8"},{"internalType":"uint8","name":"buybackFeeSell","type":"uint8"},{"internalType":"uint8","name":"burnFeeSell","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"reflection","type":"uint8"},{"internalType":"uint8","name":"marketing","type":"uint8"},{"internalType":"uint8","name":"lp","type":"uint8"},{"internalType":"uint8","name":"buyback","type":"uint8"},{"internalType":"uint8","name":"burn","type":"uint8"},{"internalType":"uint128","name":"total","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"m_","type":"address"},{"internalType":"address","name":"lp_","type":"address"},{"internalType":"address","name":"b_","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e_","type":"bool"},{"internalType":"address","name":"r_","type":"address"}],"name":"setLimitsEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"p_","type":"uint256"}],"name":"setMaxTxBasisPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proportion","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"tokensToProportion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600860a0908152674d61726c626f726f60c01b60c052600190620000299082620004ed565b506040805180820190915260088152674d41524c424f524f60c01b6020820152600290620000589082620004ed565b506b033b2e3c9fd0803ce800000060038181556064916200007991620005b5565b620000859190620005df565b60045560035460068190556008805460ff191660011790556040805160c080820183525f80835260208084018290528385018290526060808501839052608080860184905260a0958601849052600b80546001600160a81b0319908116909155875195860188528486529285018490529584018390528301829052938201819052910152600c805490911690556010805460ff60a01b1916600160a01b1790556103e89062000136906002620005b5565b620001429190620005df565b60115534801562000151575f80fd5b506200015d33620003fe565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d59190620005ff565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025b9190620005ff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002cc9190620005ff565b6001600160a01b0381166080819052305f818152600760209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845282528083205f19908190553280855282852091909155938352600a82528083208054600160ff1991821681179092557fc90215bb1b0ac6bfa50a3c02c4b559c695b6a8e828048a88e327592fc55c5d2c80548216831790559584528184208054871682179055848452818420805487168217905560098352818420805490961617909455600d8054336001600160a01b03199182168117909255600e8054821683179055600f80549091169091179055600354600582528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200062e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200047657607f821691505b6020821081036200049557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004e8575f81815260208120601f850160051c81016020861015620004c35750805b601f850160051c820191505b81811015620004e457828155600101620004cf565b5050505b505050565b81516001600160401b038111156200050957620005096200044d565b62000521816200051a845462000461565b846200049b565b602080601f83116001811462000557575f84156200053f5750858301515b5f19600386901b1c1916600185901b178555620004e4565b5f85815260208120601f198616915b82811015620005875788860151825594840194600190910190840162000566565b5085821015620005a557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620005d957634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620005fa57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000610575f80fd5b81516001600160a01b038116811462000627575f80fd5b9392505050565b608051611f48620006555f395f818161070f015281816110f9015261141e0152611f485ff3fe608060405260043610610215575f3560e01c8063658d4b7f1161011e578063c38a31de116100a8578063e186ec741161006d578063e186ec74146106a1578063ed1a224c146106c0578063f2fde38b146106df578063f40acc3d146106fe578063f84ba65d14610731575f80fd5b8063c38a31de146105ec578063d7c010321461060b578063d85a28281461062a578063dd62ed3e1461063e578063df20fd4914610682575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461054257806395d89b4114610572578063a82ed9ec14610586578063a9059cbb146105ad578063b0f7ec38146105cc575f80fd5b8063658d4b7f146104db57806370a08231146104fa578063715018a6146105195780637d1db4a51461052d575f80fd5b80632b14ca561161019f578063364333f41161016f578063364333f414610436578063404e51291461044c57806345ce5365146103e3578063470624021461046b578063571ac8b0146104bc575f80fd5b80632b14ca561461034d5780632d838119146103e3578063313ce567146104025780633582ad231461041d575f80fd5b806316c02129116101e557806316c02129146102c357806317800287146102f157806318160ddd1461030657806323b872dd1461031a5780632b112e4914610339575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b3146102695780630cfc15f914610298575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560115481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5061025c610750565b60405161023f9190611abf565b348015610274575f80fd5b50610288610283366004611b1e565b6107e0565b604051901515815260200161023f565b3480156102a3575f80fd5b506102356102b2366004611b48565b60056020525f908152604090205481565b3480156102ce575f80fd5b506102886102dd366004611b48565b60136020525f908152604090205460ff1681565b3480156102fc575f80fd5b5061023560065481565b348015610311575f80fd5b50600354610235565b348015610325575f80fd5b50610288610334366004611b63565b61084c565b348015610344575f80fd5b50610235610954565b348015610358575f80fd5b50600c5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c00161023f565b3480156103ee575f80fd5b506102356103fd366004611ba1565b610985565b34801561040d575f80fd5b506040516012815260200161023f565b348015610428575f80fd5b506008546102889060ff1681565b348015610441575f80fd5b5061044a6109a1565b005b348015610457575f80fd5b5061044a610466366004611bc5565b6109fd565b348015610476575f80fd5b50600b5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b3480156104c7575f80fd5b506102886104d6366004611b48565b610a2f565b3480156104e6575f80fd5b5061044a6104f5366004611bc5565b610a3b565b348015610505575f80fd5b50610235610514366004611b48565b610a6d565b348015610524575f80fd5b5061044a610a8e565b348015610538575f80fd5b5061023560045481565b34801561054d575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b34801561057d575f80fd5b5061025c610aa1565b348015610591575f80fd5b5061055a737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105b8575f80fd5b506102886105c7366004611b1e565b610ab0565b3480156105d7575f80fd5b5060105461028890600160a01b900460ff1681565b3480156105f7575f80fd5b5061044a610606366004611c11565b610abc565b348015610616575f80fd5b5061044a610625366004611cc5565b610df9565b348015610635575f80fd5b5061044a610e40565b348015610649575f80fd5b50610235610658366004611d0d565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561068d575f80fd5b5061044a61069c366004611d39565b610e5b565b3480156106ac575f80fd5b5061044a6106bb366004611ba1565b610e85565b3480156106cb575f80fd5b5061044a6106da366004611d55565b610eae565b3480156106ea575f80fd5b5061044a6106f9366004611b48565b610ee9565b348015610709575f80fd5b5061055a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561073c575f80fd5b5061044a61074b366004611bc5565b610f5f565b60606001805461075f90611d71565b80601f016020809104026020016040519081016040528092919081815260200182805461078b90611d71565b80156107d65780601f106107ad576101008083540402835291602001916107d6565b820191905f5260205f20905b8154815290600101906020018083116107b957829003601f168201915b5050505050905090565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061083a9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461093f576001600160a01b0384165f9081526007602090815260408083203384529091529020548211156108ed5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6001600160a01b0384165f90815260076020908152604080832033845290915290205461091b908390611dbd565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b61094a848484610f91565b90505b9392505050565b5f61095e5f610a6d565b61096961dead610a6d565b6003546109769190611dbd565b6109809190611dbd565b905090565b5f600354600654836109979190611dd0565b6108469190611de7565b6109a9611259565b6040515f90339047908381818185875af1925050503d805f81146109e8576040519150601f19603f3d011682016040523d82523d5f602084013e6109ed565b606091505b50509050806109fa575f80fd5b50565b610a05611259565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b5f610846825f196107e0565b610a43611259565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0381165f9081526005602052604081205461084690610985565b610a96611259565b610a9f5f6112b2565b565b60606002805461075f90611d71565b5f61094d338484610f91565b610ac4611259565b5f86888a610ad28d8f611e06565b610adc9190611e06565b610ae69190611e06565b610af09190611e06565b60ff1690505f828486610b03898b611e06565b610b0d9190611e06565b610b179190611e06565b610b219190611e06565b60ff169050600a826001600160801b03161115610b745760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b60448201526064016108e4565b600a816001600160801b03161115610bc35760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b60448201526064016108e4565b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836001600160801b0316815250600b5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826001600160801b0316815250600c5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b610e01611259565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b610e48611259565b6109fa3033610e5630610a6d565b610f91565b610e63611259565b60108054921515600160a01b0260ff60a01b1990931692909217909155601155565b610e8d611259565b61271081600354610e9e9190611dd0565b610ea89190611de7565b60045550565b610eb6611259565b6008805460ff191692151592909217909155601080546001600160a01b0319166001600160a01b03909216919091179055565b610ef1611259565b6001600160a01b038116610f565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e4565b6109fa816112b2565b610f67611259565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f9081526013602052604081205460ff16158015610fd157506001600160a01b0384165f9081526013602052604090205460ff16155b61100b5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016108e4565b60125460ff161561102857611021848484611301565b905061094d565b60085460ff16801561105257506001600160a01b0384165f908152600a602052604090205460ff16155b801561107657506001600160a01b0383165f908152600a602052604090205460ff16155b156110de576004548211156110de5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108e4565b6110e6611412565b156110f3576110f361147e565b5f6111417f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614611136575f611139565b60015b868686611855565b6001600160a01b0386165f908152600560205260409020549091508111156111a25760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016108e4565b6001600160a01b0385165f908152600560205260409020546111c5908290611dbd565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546111f4908490611e1f565b6001600160a01b038086165f8181526005602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61123c86610985565b6040519081526020015b60405180910390a3506001949350505050565b5f546001600160a01b03163314610a9f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e4565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8061130c83610985565b6001600160a01b0386165f9081526005602052604090205490915081111561136d5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016108e4565b6001600160a01b0385165f90815260056020526040902054611390908290611dbd565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546113bf908290611e1f565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112469087815260200190565b5f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061144f575060125460ff16155b80156114645750601054600160a01b900460ff165b8015610980575060115461147730610a6d565b1015905090565b60128054600160ff199091161790556040805160c081018252600c5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a0820181905260115491925f91906115069084611dd0565b6115109190611de7565b90505f61151d8284611dbd565b905061153d737a250d5630b4cf539739df2c5dacb4c659f2488d826107e0565b5061154b3061dead84610f91565b506040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157f5761157f611e32565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116139190611e46565b8160018151811061162657611626611e32565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061167d9085905f90869030904290600401611e61565b5f604051808303815f87803b158015611694575f80fd5b505af11580156116a6573d5f803e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a001516116cd9190611ed0565b6116d79190611ed0565b6001600160801b031690505f81886020015160ff16846116f79190611dd0565b6117019190611de7565b90505f82896040015160ff16856117189190611dd0565b6117229190611de7565b90505f838a6060015160ff16866117399190611dd0565b6117439190611de7565b600d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611792576040519150601f19603f3d011682016040523d82523d5f602084013e611797565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146117e4576040519150601f19603f3d011682016040523d82523d5f602084013e6117e9565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611836576040519150601f19603f3d011682016040523d82523d5f602084013e61183b565b606091505b50506012805460ff19169055505050505050505050505050565b6040805160c08082018352600b5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600c54808b168d529889048a16978c019790975294870488169b8a019b909b529185048616908801528304909316968501969096529190910416928101929092525f918287151560011461194a5760648260a001516001600160801b03168661193b9190611dd0565b6119459190611de7565b61196f565b60648360a001516001600160801b0316866119659190611dd0565b61196f9190611de7565b905080156119e957305f90815260056020526040902054611991908290611e1f565b305f818152600560205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119d784610985565b60405190815260200160405180910390a35b6010546001600160a01b031615611aa9576010546040516323b872dd60e01b81526001600160a01b038981166004830152888116602483015260448201889052909116906323b872dd906064016020604051808303815f875af1158015611a52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a769190611ef7565b611aa45760648360a001516001600160801b031686611a959190611dd0565b611a9f9190611de7565b611aa6565b845b90505b611ab38186611dbd565b98975050505050505050565b5f6020808352835180828501525f5b81811015611aea57858101830151858201604001528201611ace565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109fa575f80fd5b5f8060408385031215611b2f575f80fd5b8235611b3a81611b0a565b946020939093013593505050565b5f60208284031215611b58575f80fd5b813561094d81611b0a565b5f805f60608486031215611b75575f80fd5b8335611b8081611b0a565b92506020840135611b9081611b0a565b929592945050506040919091013590565b5f60208284031215611bb1575f80fd5b5035919050565b80151581146109fa575f80fd5b5f8060408385031215611bd6575f80fd5b8235611be181611b0a565b91506020830135611bf181611bb8565b809150509250929050565b803560ff81168114611c0c575f80fd5b919050565b5f805f805f805f805f806101408b8d031215611c2b575f80fd5b611c348b611bfc565b9950611c4260208c01611bfc565b9850611c5060408c01611bfc565b9750611c5e60608c01611bfc565b9650611c6c60808c01611bfc565b9550611c7a60a08c01611bfc565b9450611c8860c08c01611bfc565b9350611c9660e08c01611bfc565b9250611ca56101008c01611bfc565b9150611cb46101208c01611bfc565b90509295989b9194979a5092959850565b5f805f60608486031215611cd7575f80fd5b8335611ce281611b0a565b92506020840135611cf281611b0a565b91506040840135611d0281611b0a565b809150509250925092565b5f8060408385031215611d1e575f80fd5b8235611d2981611b0a565b91506020830135611bf181611b0a565b5f8060408385031215611d4a575f80fd5b8235611b3a81611bb8565b5f8060408385031215611d66575f80fd5b8235611d2981611bb8565b600181811c90821680611d8557607f821691505b602082108103611da357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561084657610846611da9565b808202811582820484141761084657610846611da9565b5f82611e0157634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561084657610846611da9565b8082018082111561084657610846611da9565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611e56575f80fd5b815161094d81611b0a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611eaf5784516001600160a01b031683529383019391830191600101611e8a565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160801b03828116828216039080821115611ef057611ef0611da9565b5092915050565b5f60208284031215611f07575f80fd5b815161094d81611bb856fea264697066735822122018c3ab4797794d4a3ac3e859f0ee3cc23be0c1b7782f636cbe813f10b3673aad64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610215575f3560e01c8063658d4b7f1161011e578063c38a31de116100a8578063e186ec741161006d578063e186ec74146106a1578063ed1a224c146106c0578063f2fde38b146106df578063f40acc3d146106fe578063f84ba65d14610731575f80fd5b8063c38a31de146105ec578063d7c010321461060b578063d85a28281461062a578063dd62ed3e1461063e578063df20fd4914610682575f80fd5b80638da5cb5b116100ee5780638da5cb5b1461054257806395d89b4114610572578063a82ed9ec14610586578063a9059cbb146105ad578063b0f7ec38146105cc575f80fd5b8063658d4b7f146104db57806370a08231146104fa578063715018a6146105195780637d1db4a51461052d575f80fd5b80632b14ca561161019f578063364333f41161016f578063364333f414610436578063404e51291461044c57806345ce5365146103e3578063470624021461046b578063571ac8b0146104bc575f80fd5b80632b14ca561461034d5780632d838119146103e3578063313ce567146104025780633582ad231461041d575f80fd5b806316c02129116101e557806316c02129146102c357806317800287146102f157806318160ddd1461030657806323b872dd1461031a5780632b112e4914610339575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b3146102695780630cfc15f914610298575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560115481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5061025c610750565b60405161023f9190611abf565b348015610274575f80fd5b50610288610283366004611b1e565b6107e0565b604051901515815260200161023f565b3480156102a3575f80fd5b506102356102b2366004611b48565b60056020525f908152604090205481565b3480156102ce575f80fd5b506102886102dd366004611b48565b60136020525f908152604090205460ff1681565b3480156102fc575f80fd5b5061023560065481565b348015610311575f80fd5b50600354610235565b348015610325575f80fd5b50610288610334366004611b63565b61084c565b348015610344575f80fd5b50610235610954565b348015610358575f80fd5b50600c5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b6040805160ff9788168152958716602087015293861693850193909352908416606084015290921660808201526001600160801b0390911660a082015260c00161023f565b3480156103ee575f80fd5b506102356103fd366004611ba1565b610985565b34801561040d575f80fd5b506040516012815260200161023f565b348015610428575f80fd5b506008546102889060ff1681565b348015610441575f80fd5b5061044a6109a1565b005b348015610457575f80fd5b5061044a610466366004611bc5565b6109fd565b348015610476575f80fd5b50600b5461039e9060ff8082169161010081048216916201000082048116916301000000810482169164010000000082041690600160281b90046001600160801b031686565b3480156104c7575f80fd5b506102886104d6366004611b48565b610a2f565b3480156104e6575f80fd5b5061044a6104f5366004611bc5565b610a3b565b348015610505575f80fd5b50610235610514366004611b48565b610a6d565b348015610524575f80fd5b5061044a610a8e565b348015610538575f80fd5b5061023560045481565b34801561054d575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b34801561057d575f80fd5b5061025c610aa1565b348015610591575f80fd5b5061055a737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156105b8575f80fd5b506102886105c7366004611b1e565b610ab0565b3480156105d7575f80fd5b5060105461028890600160a01b900460ff1681565b3480156105f7575f80fd5b5061044a610606366004611c11565b610abc565b348015610616575f80fd5b5061044a610625366004611cc5565b610df9565b348015610635575f80fd5b5061044a610e40565b348015610649575f80fd5b50610235610658366004611d0d565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561068d575f80fd5b5061044a61069c366004611d39565b610e5b565b3480156106ac575f80fd5b5061044a6106bb366004611ba1565b610e85565b3480156106cb575f80fd5b5061044a6106da366004611d55565b610eae565b3480156106ea575f80fd5b5061044a6106f9366004611b48565b610ee9565b348015610709575f80fd5b5061055a7f000000000000000000000000b1b7f84702b97fbc3eee2db326a5c65277d8130681565b34801561073c575f80fd5b5061044a61074b366004611bc5565b610f5f565b60606001805461075f90611d71565b80601f016020809104026020016040519081016040528092919081815260200182805461078b90611d71565b80156107d65780601f106107ad576101008083540402835291602001916107d6565b820191905f5260205f20905b8154815290600101906020018083116107b957829003601f168201915b5050505050905090565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061083a9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f191461093f576001600160a01b0384165f9081526007602090815260408083203384529091529020548211156108ed5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064015b60405180910390fd5b6001600160a01b0384165f90815260076020908152604080832033845290915290205461091b908390611dbd565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b61094a848484610f91565b90505b9392505050565b5f61095e5f610a6d565b61096961dead610a6d565b6003546109769190611dbd565b6109809190611dbd565b905090565b5f600354600654836109979190611dd0565b6108469190611de7565b6109a9611259565b6040515f90339047908381818185875af1925050503d805f81146109e8576040519150601f19603f3d011682016040523d82523d5f602084013e6109ed565b606091505b50509050806109fa575f80fd5b50565b610a05611259565b6001600160a01b03919091165f908152601360205260409020805460ff1916911515919091179055565b5f610846825f196107e0565b610a43611259565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b6001600160a01b0381165f9081526005602052604081205461084690610985565b610a96611259565b610a9f5f6112b2565b565b60606002805461075f90611d71565b5f61094d338484610f91565b610ac4611259565b5f86888a610ad28d8f611e06565b610adc9190611e06565b610ae69190611e06565b610af09190611e06565b60ff1690505f828486610b03898b611e06565b610b0d9190611e06565b610b179190611e06565b610b219190611e06565b60ff169050600a826001600160801b03161115610b745760405162461bcd60e51b8152602060048201526011602482015270084eaf240cccacae640e8dede40d0d2ced607b1b60448201526064016108e4565b600a816001600160801b03161115610bc35760405162461bcd60e51b81526020600482015260126024820152710a6cad8d840cccacae640e8dede40d0d2ced60731b60448201526064016108e4565b6040518060c001604052808d60ff1681526020018d60ff1681526020018d60ff1681526020018d60ff1681526020018960ff168152602001836001600160801b0316815250600b5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b031602179055509050506040518060c001604052808860ff1681526020018860ff1681526020018860ff1681526020018860ff1681526020018460ff168152602001826001600160801b0316815250600c5f820151815f015f6101000a81548160ff021916908360ff1602179055506020820151815f0160016101000a81548160ff021916908360ff1602179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151815f0160036101000a81548160ff021916908360ff1602179055506080820151815f0160046101000a81548160ff021916908360ff16021790555060a0820151815f0160056101000a8154816001600160801b0302191690836001600160801b03160217905550905050505050505050505050505050565b610e01611259565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b610e48611259565b6109fa3033610e5630610a6d565b610f91565b610e63611259565b60108054921515600160a01b0260ff60a01b1990931692909217909155601155565b610e8d611259565b61271081600354610e9e9190611dd0565b610ea89190611de7565b60045550565b610eb6611259565b6008805460ff191692151592909217909155601080546001600160a01b0319166001600160a01b03909216919091179055565b610ef1611259565b6001600160a01b038116610f565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e4565b6109fa816112b2565b610f67611259565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f9081526013602052604081205460ff16158015610fd157506001600160a01b0384165f9081526013602052604090205460ff16155b61100b5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016108e4565b60125460ff161561102857611021848484611301565b905061094d565b60085460ff16801561105257506001600160a01b0384165f908152600a602052604090205460ff16155b801561107657506001600160a01b0383165f908152600a602052604090205460ff16155b156110de576004548211156110de5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016108e4565b6110e6611412565b156110f3576110f361147e565b5f6111417f000000000000000000000000b1b7f84702b97fbc3eee2db326a5c65277d813066001600160a01b0316866001600160a01b031614611136575f611139565b60015b868686611855565b6001600160a01b0386165f908152600560205260409020549091508111156111a25760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016108e4565b6001600160a01b0385165f908152600560205260409020546111c5908290611dbd565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546111f4908490611e1f565b6001600160a01b038086165f8181526005602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61123c86610985565b6040519081526020015b60405180910390a3506001949350505050565b5f546001600160a01b03163314610a9f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e4565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8061130c83610985565b6001600160a01b0386165f9081526005602052604090205490915081111561136d5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016108e4565b6001600160a01b0385165f90815260056020526040902054611390908290611dbd565b6001600160a01b038087165f9081526005602052604080822093909355908616815220546113bf908290611e1f565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112469087815260200190565b5f336001600160a01b037f000000000000000000000000b1b7f84702b97fbc3eee2db326a5c65277d81306161480159061144f575060125460ff16155b80156114645750601054600160a01b900460ff165b8015610980575060115461147730610a6d565b1015905090565b60128054600160ff199091161790556040805160c081018252600c5460ff80821683526101008204811660208401526201000082048116938301939093526301000000810483166060830152640100000000810490921660808201819052600160281b9092046001600160801b031660a0820181905260115491925f91906115069084611dd0565b6115109190611de7565b90505f61151d8284611dbd565b905061153d737a250d5630b4cf539739df2c5dacb4c659f2488d826107e0565b5061154b3061dead84610f91565b506040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157f5761157f611e32565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116139190611e46565b8160018151811061162657611626611e32565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061167d9085905f90869030904290600401611e61565b5f604051808303815f87803b158015611694575f80fd5b505af11580156116a6573d5f803e3d5ffd5b505050505f4790505f866080015160ff16875f015160ff168860a001516116cd9190611ed0565b6116d79190611ed0565b6001600160801b031690505f81886020015160ff16846116f79190611dd0565b6117019190611de7565b90505f82896040015160ff16856117189190611dd0565b6117229190611de7565b90505f838a6060015160ff16866117399190611dd0565b6117439190611de7565b600d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611792576040519150601f19603f3d011682016040523d82523d5f602084013e611797565b606091505b5050600e546040519192506001600160a01b03169084905f81818185875af1925050503d805f81146117e4576040519150601f19603f3d011682016040523d82523d5f602084013e6117e9565b606091505b5050600f546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611836576040519150601f19603f3d011682016040523d82523d5f602084013e61183b565b606091505b50506012805460ff19169055505050505050505050505050565b6040805160c08082018352600b5460ff8082168452610100808304821660208087019190915262010000808504841687890152630100000080860485166060808a019190915264010000000080880487166080808c01919091526001600160801b03600160281b998a9004811660a0808e01919091528d519b8c018e52600c54808b168d529889048a16978c019790975294870488169b8a019b909b529185048616908801528304909316968501969096529190910416928101929092525f918287151560011461194a5760648260a001516001600160801b03168661193b9190611dd0565b6119459190611de7565b61196f565b60648360a001516001600160801b0316866119659190611dd0565b61196f9190611de7565b905080156119e957305f90815260056020526040902054611991908290611e1f565b305f818152600560205260409020919091556001600160a01b0388167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119d784610985565b60405190815260200160405180910390a35b6010546001600160a01b031615611aa9576010546040516323b872dd60e01b81526001600160a01b038981166004830152888116602483015260448201889052909116906323b872dd906064016020604051808303815f875af1158015611a52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a769190611ef7565b611aa45760648360a001516001600160801b031686611a959190611dd0565b611a9f9190611de7565b611aa6565b845b90505b611ab38186611dbd565b98975050505050505050565b5f6020808352835180828501525f5b81811015611aea57858101830151858201604001528201611ace565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109fa575f80fd5b5f8060408385031215611b2f575f80fd5b8235611b3a81611b0a565b946020939093013593505050565b5f60208284031215611b58575f80fd5b813561094d81611b0a565b5f805f60608486031215611b75575f80fd5b8335611b8081611b0a565b92506020840135611b9081611b0a565b929592945050506040919091013590565b5f60208284031215611bb1575f80fd5b5035919050565b80151581146109fa575f80fd5b5f8060408385031215611bd6575f80fd5b8235611be181611b0a565b91506020830135611bf181611bb8565b809150509250929050565b803560ff81168114611c0c575f80fd5b919050565b5f805f805f805f805f806101408b8d031215611c2b575f80fd5b611c348b611bfc565b9950611c4260208c01611bfc565b9850611c5060408c01611bfc565b9750611c5e60608c01611bfc565b9650611c6c60808c01611bfc565b9550611c7a60a08c01611bfc565b9450611c8860c08c01611bfc565b9350611c9660e08c01611bfc565b9250611ca56101008c01611bfc565b9150611cb46101208c01611bfc565b90509295989b9194979a5092959850565b5f805f60608486031215611cd7575f80fd5b8335611ce281611b0a565b92506020840135611cf281611b0a565b91506040840135611d0281611b0a565b809150509250925092565b5f8060408385031215611d1e575f80fd5b8235611d2981611b0a565b91506020830135611bf181611b0a565b5f8060408385031215611d4a575f80fd5b8235611b3a81611bb8565b5f8060408385031215611d66575f80fd5b8235611d2981611bb8565b600181811c90821680611d8557607f821691505b602082108103611da357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561084657610846611da9565b808202811582820484141761084657610846611da9565b5f82611e0157634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561084657610846611da9565b8082018082111561084657610846611da9565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611e56575f80fd5b815161094d81611b0a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611eaf5784516001600160a01b031683529383019391830191600101611e8a565b50506001600160a01b03969096166060850152505050608001529392505050565b6001600160801b03828116828216039080821115611ef057611ef0611da9565b5092915050565b5f60208284031215611f07575f80fd5b815161094d81611bb856fea264697066735822122018c3ab4797794d4a3ac3e859f0ee3cc23be0c1b7782f636cbe813f10b3673aad64736f6c63430008140033
Deployed Bytecode Sourcemap
6778:14062:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9213:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9213:56:0;;;;;;;;12551:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11130:216::-;;;;;;;;;;-1:-1:-1;11130:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;11130:216:0;1205:187:1;8505:42:0;;;;;;;;;;-1:-1:-1;8505:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;9294;;;;;;;;;;-1:-1:-1;9294:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8554:46;;;;;;;;;;;;;;;;12355:102;;;;;;;;;;-1:-1:-1;12437:12:0;;12355:102;;11648:441;;;;;;;;;;-1:-1:-1;11648:441:0;;;;;:::i;:::-;;:::i;13347:136::-;;;;;;;;;;;;;:::i;8907:93::-;;;;;;;;;;-1:-1:-1;8907:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8907:93:0;;-1:-1:-1;;;;;8907:93:0;;;;;;;2407:4:1;2395:17;;;2377:36;;2449:17;;;2444:2;2429:18;;2422:45;2503:17;;;2483:18;;;2476:45;;;;2557:17;;;2552:2;2537:18;;2530:45;2612:17;;;2606:3;2591:19;;2584:46;-1:-1:-1;;;;;2667:47:1;;;2661:3;2646:19;;2639:76;2364:3;2349:19;8907:93:0;2110:611:1;13190:149:0;;;;;;;;;;-1:-1:-1;13190:149:0;;;;;:::i;:::-;;:::i;12465:78::-;;;;;;;;;;-1:-1:-1;12465:78:0;;12533:2;3053:36:1;;3041:2;3026:18;12465:78:0;2911:184:1;8677:32:0;;;;;;;;;;-1:-1:-1;8677:32:0;;;;;;;;13749:170;;;;;;;;;;;;;:::i;:::-;;16217:135;;;;;;;;;;-1:-1:-1;16217:135:0;;;;;:::i;:::-;;:::i;8808:92::-;;;;;;;;;;-1:-1:-1;8808:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8808:92:0;;-1:-1:-1;;;;;8808:92:0;;;11354:122;;;;;;;;;;-1:-1:-1;11354:122:0;;;;;:::i;:::-;;:::i;15484:119::-;;;;;;;;;;-1:-1:-1;15484:119:0;;;;;:::i;:::-;;:::i;12741:138::-;;;;;;;;;;-1:-1:-1;12741:138:0;;;;;:::i;:::-;;:::i;5450:103::-;;;;;;;;;;;;;:::i;8324:52::-;;;;;;;;;;;;;;;;4802:87;;;;;;;;;;-1:-1:-1;4848:7:0;4875:6;-1:-1:-1;;;;;4875:6:0;4802:87;;;-1:-1:-1;;;;;3774:32:1;;;3756:51;;3744:2;3729:18;4802:87:0;3610:203:1;12644:89:0;;;;;;;;;;;;;:::i;7857:126::-;;;;;;;;;;;;7940:42;7857:126;;11484:156;;;;;;;;;;-1:-1:-1;11484:156:0;;;;;:::i;:::-;;:::i;9175:31::-;;;;;;;;;;-1:-1:-1;9175:31:0;;;;-1:-1:-1;;;9175:31:0;;;;;;14230:1246;;;;;;;;;;-1:-1:-1;14230:1246:0;;;;;:::i;:::-;;:::i;15746:189::-;;;;;;;;;;-1:-1:-1;15746:189:0;;;;;:::i;:::-;;:::i;13927:131::-;;;;;;;;;;;;;:::i;12887:147::-;;;;;;;;;;-1:-1:-1;12887:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;12998:19:0;;;12971:7;12998:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12887:147;14066:156;;;;;;;;;;-1:-1:-1;14066:156:0;;;;;:::i;:::-;;:::i;15943:118::-;;;;;;;;;;-1:-1:-1;15943:118:0;;;;;:::i;:::-;;:::i;16069:140::-;;;;;;;;;;-1:-1:-1;16069:140:0;;;;;:::i;:::-;;:::i;5708:201::-;;;;;;;;;;-1:-1:-1;5708:201:0;;;;;:::i;:::-;;:::i;7990:40::-;;;;;;;;;;;;;;;15611:127;;;;;;;;;;-1:-1:-1;15611:127:0;;;;;:::i;:::-;;:::i;12551:85::-;12590:13;12623:5;12616:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12551:85;:::o;11130:216::-;11234:10;11205:4;11222:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11222:32:0;;;;;;;;;;:41;;;11279:37;11205:4;;11222:32;;11279:37;;;;11257:6;160:25:1;;148:2;133:18;;14:177;11279:37:0;;;;;;;;-1:-1:-1;11334:4:0;11130:216;;;;;:::o;11648:441::-;-1:-1:-1;;;;;11769:19:0;;11748:4;11769:19;;;:11;:19;;;;;;;;11789:10;11769:31;;;;;;;;-1:-1:-1;;11769:52:0;11765:257;;-1:-1:-1;;;;;11846:19:0;;;;;;:11;:19;;;;;;;;11866:10;11846:31;;;;;;;;:41;-1:-1:-1;11846:41:0;11838:83;;;;-1:-1:-1;;;11838:83:0;;7252:2:1;11838:83:0;;;7234:21:1;7291:2;7271:18;;;7264:30;7330:31;7310:18;;;7303:59;7379:18;;11838:83:0;;;;;;;;;-1:-1:-1;;;;;11970:19:0;;;;;;:11;:19;;;;;;;;11990:10;11970:31;;;;;;;;:40;;12004:6;;11970:40;:::i;:::-;-1:-1:-1;;;;;11936:19:0;;;;;;:11;:19;;;;;;;;11956:10;11936:31;;;;;;;:74;11765:257;12041:40;12055:6;12063:9;12074:6;12041:13;:40::i;:::-;12034:47;;11648:441;;;;;;:::o;13347:136::-;13400:7;13460:15;7510:42;13460:9;:15::i;:::-;13442;7437:42;13442:9;:15::i;:::-;13427:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;13420:55;;13347:136;:::o;13190:149::-;13260:7;13319:12;;13300:16;;13287:10;:29;;;;:::i;:::-;:44;;;;:::i;13749:170::-;4688:13;:11;:13::i;:::-;13826:58:::1;::::0;13809:12:::1;::::0;13834:10:::1;::::0;13858:21:::1;::::0;13809:12;13826:58;13809:12;13826:58;13858:21;13834:10;13826:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13808:76;;;13903:7;13895:16;;;::::0;::::1;;13797:122;13749:170::o:0;16217:135::-;4688:13;:11;:13::i;:::-;-1:-1:-1;;;;;16306:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;16306:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16217:135::o;11354:122::-;11409:4;11433:35;11441:7;-1:-1:-1;;11433:7:0;:35::i;15484:119::-;4688:13;:11;:13::i;:::-;-1:-1:-1;;;;;15567:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15567:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15484:119::o;12741:138::-;-1:-1:-1;;;;;12854:16:0;;12807:7;12854:16;;;:7;:16;;;;;;12834:37;;:19;:37::i;5450:103::-;4688:13;:11;:13::i;:::-;5515:30:::1;5542:1;5515:18;:30::i;:::-;5450:103::o:0;12644:89::-;12685:13;12718:7;12711:14;;;;;:::i;11484:156::-;11564:4;11588:44;11602:10;11614:9;11625:6;11588:13;:44::i;14230:1246::-;4688:13;:11;:13::i;:::-;14586:21:::1;14674:10:::0;14658:13;14647:8;14610:34:::1;14629:15:::0;14610:16;:34:::1;:::i;:::-;:45;;;;:::i;:::-;:61;;;;:::i;:::-;:74;;;;:::i;:::-;14586:98;;::::0;-1:-1:-1;14695:22:0::1;14788:11:::0;14771:14;14759:9;14720:36:::1;14740:16:::0;14720:17;:36:::1;:::i;:::-;:48;;;;:::i;:::-;:65;;;;:::i;:::-;:79;;;;:::i;:::-;14695:104;;;;7588:2;14820:13;-1:-1:-1::0;;;;;14820:24:0::1;;;14812:54;;;::::0;-1:-1:-1;;;14812:54:0;;8633:2:1;14812:54:0::1;::::0;::::1;8615:21:1::0;8672:2;8652:18;;;8645:30;-1:-1:-1;;;8691:18:1;;;8684:47;8748:18;;14812:54:0::1;8431:341:1::0;14812:54:0::1;7588:2;14885:14;-1:-1:-1::0;;;;;14885:25:0::1;;;14877:56;;;::::0;-1:-1:-1;;;14877:56:0;;8979:2:1;14877:56:0::1;::::0;::::1;8961:21:1::0;9018:2;8998:18;;;8991:30;-1:-1:-1;;;9037:18:1;;;9030:48;9095:18;;14877:56:0::1;8777:342:1::0;14877:56:0::1;14955:242;;;;;;;;14986:16;14955:242;;;;;;15028:16;14955:242;;;;;;15063:16;14955:242;;;;;;15103:16;14955:242;;;;;;15140:10;14955:242;;;;;;15172:13;-1:-1:-1::0;;;;;14955:242:0::1;;;::::0;14946:6:::1;:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14946:251:0::1;;;;;-1:-1:-1::0;;;;;14946:251:0::1;;;;;;;;;15220:248;;;;;;;;15251:17;15220:248;;;;;;15294:17;15220:248;;;;;;15330:17;15220:248;;;;;;15371:17;15220:248;;;;;;15409:11;15220:248;;;;;;15442:14;-1:-1:-1::0;;;;;15220:248:0::1;;;::::0;15210:7:::1;:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;15210:258:0::1;;;;;-1:-1:-1::0;;;;;15210:258:0::1;;;;;;;;;14575:901;;14230:1246:::0;;;;;;;;;;:::o;15746:189::-;4688:13;:11;:13::i;:::-;15838:20:::1;:25:::0;;-1:-1:-1;;;;;15838:25:0;;::::1;-1:-1:-1::0;;;;;;15838:25:0;;::::1;;::::0;;;15874:13:::1;:19:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;15904:18:::1;:23:::0;;;;;::::1;::::0;::::1;;::::0;;15746:189::o;13927:131::-;4688:13;:11;:13::i;:::-;13984:66:::1;14006:4;14013:10;14025:24;14043:4;14025:9;:24::i;:::-;13984:13;:66::i;14066:156::-:0;4688:13;:11;:13::i;:::-;14157:12:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;14157:23:0::1;-1:-1:-1::0;;;;14157:23:0;;::::1;::::0;;;::::1;::::0;;;14191:13:::1;:23:::0;14066:156::o;15943:118::-;4688:13;:11;:13::i;:::-;16048:5:::1;16043:2;16028:12;;:17;;;;:::i;:::-;:25;;;;:::i;:::-;16013:12;:40:::0;-1:-1:-1;15943:118:0:o;16069:140::-;4688:13;:11;:13::i;:::-;16146::::1;:18:::0;;-1:-1:-1;;16146:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;16175:21:::1;:26:::0;;-1:-1:-1;;;;;;16175:26:0::1;-1:-1:-1::0;;;;;16175:26:0;;::::1;::::0;;;::::1;::::0;;16069:140::o;5708:201::-;4688:13;:11;:13::i;:::-;-1:-1:-1;;;;;5797:22:0;::::1;5789:73;;;::::0;-1:-1:-1;;;5789:73:0;;9326:2:1;5789:73:0::1;::::0;::::1;9308:21:1::0;9365:2;9345:18;;;9338:30;9404:34;9384:18;;;9377:62;-1:-1:-1;;;9455:18:1;;;9448:36;9501:19;;5789:73:0::1;9124:402:1::0;5789:73:0::1;5873:28;5892:8;5873:18;:28::i;15611:127::-:0;4688:13;:11;:13::i;:::-;-1:-1:-1;;;;;15698:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15698:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15611:127::o;16618:987::-;-1:-1:-1;;;;;16736:21:0;;16710:4;16736:21;;;:10;:21;;;;;;;;16735:22;:45;;;;-1:-1:-1;;;;;;16762:18:0;;;;;;:10;:18;;;;;;;;16761:19;16735:45;16727:69;;;;-1:-1:-1;;;16727:69:0;;9733:2:1;16727:69:0;;;9715:21:1;9772:2;9752:18;;;9745:30;-1:-1:-1;;;9791:18:1;;;9784:41;9842:18;;16727:69:0;9531:335:1;16727:69:0;16813:6;;;;16809:87;;;16843:41;16858:6;16866:9;16877:6;16843:14;:41::i;:::-;16836:48;;;;16809:87;16912:13;;;;:41;;;;-1:-1:-1;;;;;;16930:23:0;;;;;;:15;:23;;;;;;;;16929:24;16912:41;:72;;;;-1:-1:-1;;;;;;16958:26:0;;;;;;:15;:26;;;;;;;;16957:27;16912:72;16908:180;;;17019:12;;17009:6;:22;;17001:75;;;;-1:-1:-1;;;17001:75:0;;10073:2:1;17001:75:0;;;10055:21:1;10112:2;10092:18;;;10085:30;10151:34;10131:18;;;10124:62;-1:-1:-1;;;10202:18:1;;;10195:38;10250:19;;17001:75:0;9871:404:1;17001:75:0;17104:17;:15;:17::i;:::-;17100:61;;;17138:11;:9;:11::i;:::-;17183:24;17210:90;17242:15;-1:-1:-1;;;;;17232:25:0;:6;-1:-1:-1;;;;;17232:25:0;;:40;;17267:5;17232:40;;;17260:4;17232:40;17274:6;17282:9;17293:6;17210:21;:90::i;:::-;-1:-1:-1;;;;;17319:15:0;;;;;;:7;:15;;;;;;17183:117;;-1:-1:-1;17319:35:0;-1:-1:-1;17319:35:0;17311:68;;;;-1:-1:-1;;;17311:68:0;;10482:2:1;17311:68:0;;;10464:21:1;10521:2;10501:18;;;10494:30;-1:-1:-1;;;10540:18:1;;;10533:50;10600:18;;17311:68:0;10280:344:1;17311:68:0;-1:-1:-1;;;;;17408:15:0;;;;;;:7;:15;;;;;;:34;;17426:16;;17408:34;:::i;:::-;-1:-1:-1;;;;;17390:15:0;;;;;;;:7;:15;;;;;;:52;;;;17474:18;;;;;;;:27;;17495:6;;17474:27;:::i;:::-;-1:-1:-1;;;;;17453:18:0;;;;;;;:7;:18;;;;;:48;;;;17519:56;;;17547:27;17567:6;17547:19;:27::i;:::-;17519:56;;160:25:1;;;148:2;133:18;17519:56:0;;;;;;;;-1:-1:-1;17593:4:0;;16618:987;-1:-1:-1;;;;16618:987:0:o;4967:132::-;4848:7;4875:6;-1:-1:-1;;;;;4875:6:0;876:10;5031:23;5023:68;;;;-1:-1:-1;;;5023:68:0;;10961:2:1;5023:68:0;;;10943:21:1;;;10980:18;;;10973:30;11039:34;11019:18;;;11012:62;11091:18;;5023:68:0;10759:356:1;6069:191:0;6143:16;6162:6;;-1:-1:-1;;;;;6179:17:0;;;-1:-1:-1;;;;;;6179:17:0;;;;;;6212:40;;6162:6;;;;;;;6212:40;;6143:16;6212:40;6132:128;6069:191;:::o;17613:455::-;17706:4;17723:24;17750:26;17769:6;17750:18;:26::i;:::-;-1:-1:-1;;;;;17795:15:0;;;;;;:7;:15;;;;;;17723:53;;-1:-1:-1;17795:35:0;-1:-1:-1;17795:35:0;17787:68;;;;-1:-1:-1;;;17787:68:0;;10482:2:1;17787:68:0;;;10464:21:1;10521:2;10501:18;;;10494:30;-1:-1:-1;;;10540:18:1;;;10533:50;10600:18;;17787:68:0;10280:344:1;17787:68:0;-1:-1:-1;;;;;17884:15:0;;;;;;:7;:15;;;;;;:34;;17902:16;;17884:34;:::i;:::-;-1:-1:-1;;;;;17866:15:0;;;;;;;:7;:15;;;;;;:52;;;;17950:18;;;;;;;:37;;17971:16;;17950:37;:::i;:::-;-1:-1:-1;;;;;17929:18:0;;;;;;;:7;:18;;;;;;;:58;;;;18003:35;;;;;;;;;;18031:6;160:25:1;;148:2;133:18;;14:177;19073:183:0;19123:4;19147:10;-1:-1:-1;;;;;19161:15:0;19147:29;;;;;:40;;-1:-1:-1;19181:6:0;;;;19180:7;19147:40;:56;;;;-1:-1:-1;19191:12:0;;-1:-1:-1;;;19191:12:0;;;;19147:56;:101;;;;;19235:13;;19207:24;19225:4;19207:9;:24::i;:::-;:41;;19140:108;;19073:183;:::o;19264:1404::-;9634:6;:13;;9643:4;-1:-1:-1;;9634:13:0;;;;;;19314:30:::1;::::0;;::::1;::::0;::::1;::::0;;19337:7:::1;19314:30:::0;9634:13;19314:30;;::::1;::::0;;9634:13;19314:30;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;19314:30:0;;::::1;-1:-1:-1::0;;;;;19314:30:0::1;::::0;;;;;;19383:13:::1;::::0;19314:30;;-1:-1:-1;;19314:30:0;19430:32:::1;::::0;19383:13;19430:32:::1;:::i;:::-;:50;;;;:::i;:::-;19407:73:::0;-1:-1:-1;19491:20:0::1;19514:30;19407:73:::0;19514:15;:30:::1;:::i;:::-;19491:53;;19555:49;7940:42;19591:12;19555:7;:49::i;:::-;;19634:48;19656:4;7437:42;19669:12;19634:13;:48::i;:::-;-1:-1:-1::0;19736:16:0::1;::::0;;19750:1:::1;19736:16:::0;;;;;::::1;::::0;;19712:21:::1;::::0;19736:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19736:16:0::1;19712:40;;19781:4;19763;19768:1;19763:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;19763:23:0::1;;;-1:-1:-1::0;;;;;19763:23:0::1;;;::::0;::::1;7940:42;-1:-1:-1::0;;;;;19807:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19797:4;19802:1;19797:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19797:34:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:34;19844:147:::1;::::0;-1:-1:-1;;;19844:147:0;;7940:42:::1;::::0;19844:68:::1;::::0;:147:::1;::::0;19927:12;;19941:1:::1;::::0;19944:4;;19958::::1;::::0;19965:15:::1;::::0;19844:147:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20004:17;20024:21;20004:41;;20058:20;20122:9;:14;;;20081:55;;20099:9;:20;;;20081:38;;:9;:15;;;:38;;;;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1::0;;;;;20058:78:0::1;;;20147:26;20210:12;20188:9;:19;;;20176:31;;:9;:31;;;;:::i;:::-;:46;;;;:::i;:::-;20147:75;;20233:19;20282:12;20267:9;:12;;;20255:24;;:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;20233:61;;20305:24;20364:12;20344:9;:17;;;20332:29;;:9;:29;;;;:::i;:::-;:44;;;;:::i;:::-;20435:20;::::0;20427:65:::1;::::0;20305:71;;-1:-1:-1;20407:15:0::1;::::0;-1:-1:-1;;;;;20435:20:0;;::::1;::::0;20469:18;;20407:15;20427:65;20407:15;20427:65;20469:18;20435:20;20427:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;20527:13:0::1;::::0;20519:51:::1;::::0;20406:86;;-1:-1:-1;;;;;;20527:13:0::1;::::0;20554:11;;20519:51:::1;::::0;;;20554:11;20527:13;20519:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;20605:18:0::1;::::0;20597:61:::1;::::0;20503:67;;-1:-1:-1;;;;;;20605:18:0::1;::::0;20637:16;;20597:61:::1;::::0;;;20637:16;20605:18;20597:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;9670:6:0;:14;;-1:-1:-1;;9670:14:0;;;-1:-1:-1;;;;;;;;;;;;19264:1404:0:o;18076:989::-;18219:28;;;;;;;;;18241:6;18219:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;18219:28:0;;;;;;;;;;;;;;18258:30;;;;;;;18281:7;18258:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18199:7;;;18344:14;;;18219:28;18344:14;:99;;18440:3;18422:9;:15;;;-1:-1:-1;;;;;18403:34:0;:16;:34;;;;:::i;:::-;:40;;;;:::i;:::-;18344:99;;;18397:3;18380:8;:14;;;-1:-1:-1;;;;;18361:33:0;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;18301:142;-1:-1:-1;18482:23:0;;18478:220;;18563:4;18547:22;;;;:7;:22;;;;;;:44;;18572:19;;18547:44;:::i;:::-;18538:4;18522:22;;;;:7;:22;;;;;:69;;;;-1:-1:-1;;;;;18613:73:0;;;18645:40;18665:19;18645;:40::i;:::-;18613:73;;160:25:1;;;148:2;133:18;18613:73:0;;;;;;;18478:220;18714:21;;-1:-1:-1;;;;;18714:21:0;:35;18710:282;;18813:21;;18806:79;;-1:-1:-1;;;18806:79:0;;-1:-1:-1;;;;;13088:15:1;;;18806:79:0;;;13070:34:1;13140:15;;;13120:18;;;13113:43;13172:18;;;13165:34;;;18813:21:0;;;;18806:42;;13005:18:1;;18806:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:174;;18977:3;18960:8;:14;;;-1:-1:-1;;;;;18941:33:0;:16;:33;;;;:::i;:::-;:39;;;;:::i;:::-;18806:174;;;18905:16;18806:174;18766:214;;18710:282;19019:38;19038:19;19019:16;:38;:::i;:::-;19012:45;18076:989;-1:-1:-1;;;;;;;;18076:989:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2726:180::-;2785:6;2838:2;2826:9;2817:7;2813:23;2809:32;2806:52;;;2854:1;2851;2844:12;2806:52;-1:-1:-1;2877:23:1;;2726:180;-1:-1:-1;2726:180:1:o;3100:118::-;3186:5;3179:13;3172:21;3165:5;3162:32;3152:60;;3208:1;3205;3198:12;3223:382;3288:6;3296;3349:2;3337:9;3328:7;3324:23;3320:32;3317:52;;;3365:1;3362;3355:12;3317:52;3404:9;3391:23;3423:31;3448:5;3423:31;:::i;:::-;3473:5;-1:-1:-1;3530:2:1;3515:18;;3502:32;3543:30;3502:32;3543:30;:::i;:::-;3592:7;3582:17;;;3223:382;;;;;:::o;4052:156::-;4118:20;;4178:4;4167:16;;4157:27;;4147:55;;4198:1;4195;4188:12;4147:55;4052:156;;;:::o;4213:819::-;4333:6;4341;4349;4357;4365;4373;4381;4389;4397;4405;4458:3;4446:9;4437:7;4433:23;4429:33;4426:53;;;4475:1;4472;4465:12;4426:53;4498:27;4515:9;4498:27;:::i;:::-;4488:37;;4544:36;4576:2;4565:9;4561:18;4544:36;:::i;:::-;4534:46;;4599:36;4631:2;4620:9;4616:18;4599:36;:::i;:::-;4589:46;;4654:36;4686:2;4675:9;4671:18;4654:36;:::i;:::-;4644:46;;4709:37;4741:3;4730:9;4726:19;4709:37;:::i;:::-;4699:47;;4765:37;4797:3;4786:9;4782:19;4765:37;:::i;:::-;4755:47;;4821:37;4853:3;4842:9;4838:19;4821:37;:::i;:::-;4811:47;;4877:37;4909:3;4898:9;4894:19;4877:37;:::i;:::-;4867:47;;4933:37;4965:3;4954:9;4950:19;4933:37;:::i;:::-;4923:47;;4989:37;5021:3;5010:9;5006:19;4989:37;:::i;:::-;4979:47;;4213:819;;;;;;;;;;;;;:::o;5037:529::-;5114:6;5122;5130;5183:2;5171:9;5162:7;5158:23;5154:32;5151:52;;;5199:1;5196;5189:12;5151:52;5238:9;5225:23;5257:31;5282:5;5257:31;:::i;:::-;5307:5;-1:-1:-1;5364:2:1;5349:18;;5336:32;5377:33;5336:32;5377:33;:::i;:::-;5429:7;-1:-1:-1;5488:2:1;5473:18;;5460:32;5501:33;5460:32;5501:33;:::i;:::-;5553:7;5543:17;;;5037:529;;;;;:::o;5571:388::-;5639:6;5647;5700:2;5688:9;5679:7;5675:23;5671:32;5668:52;;;5716:1;5713;5706:12;5668:52;5755:9;5742:23;5774:31;5799:5;5774:31;:::i;:::-;5824:5;-1:-1:-1;5881:2:1;5866:18;;5853:32;5894:33;5853:32;5894:33;:::i;5964:309::-;6029:6;6037;6090:2;6078:9;6069:7;6065:23;6061:32;6058:52;;;6106:1;6103;6096:12;6058:52;6145:9;6132:23;6164:28;6186:5;6164:28;:::i;6278:382::-;6343:6;6351;6404:2;6392:9;6383:7;6379:23;6375:32;6372:52;;;6420:1;6417;6410:12;6372:52;6459:9;6446:23;6478:28;6500:5;6478:28;:::i;6665:380::-;6744:1;6740:12;;;;6787;;;6808:61;;6862:4;6854:6;6850:17;6840:27;;6808:61;6915:2;6907:6;6904:14;6884:18;6881:38;6878:161;;6961:10;6956:3;6952:20;6949:1;6942:31;6996:4;6993:1;6986:15;7024:4;7021:1;7014:15;6878:161;;6665:380;;;:::o;7408:127::-;7469:10;7464:3;7460:20;7457:1;7450:31;7500:4;7497:1;7490:15;7524:4;7521:1;7514:15;7540:128;7607:9;;;7628:11;;;7625:37;;;7642:18;;:::i;7673:168::-;7746:9;;;7777;;7794:15;;;7788:22;;7774:37;7764:71;;7815:18;;:::i;7846:217::-;7886:1;7912;7902:132;;7956:10;7951:3;7947:20;7944:1;7937:31;7991:4;7988:1;7981:15;8019:4;8016:1;8009:15;7902:132;-1:-1:-1;8048:9:1;;7846:217::o;8278:148::-;8366:4;8345:12;;;8359;;;8341:31;;8384:13;;8381:39;;;8400:18;;:::i;10629:125::-;10694:9;;;10715:10;;;10712:36;;;10728:18;;:::i;11252:127::-;11313:10;11308:3;11304:20;11301:1;11294:31;11344:4;11341:1;11334:15;11368:4;11365:1;11358:15;11384:251;11454:6;11507:2;11495:9;11486:7;11482:23;11478:32;11475:52;;;11523:1;11520;11513:12;11475:52;11555:9;11549:16;11574:31;11599:5;11574:31;:::i;11640:980::-;11902:4;11950:3;11939:9;11935:19;11981:6;11970:9;11963:25;12007:2;12045:6;12040:2;12029:9;12025:18;12018:34;12088:3;12083:2;12072:9;12068:18;12061:31;12112:6;12147;12141:13;12178:6;12170;12163:22;12216:3;12205:9;12201:19;12194:26;;12255:2;12247:6;12243:15;12229:29;;12276:1;12286:195;12300:6;12297:1;12294:13;12286:195;;;12365:13;;-1:-1:-1;;;;;12361:39:1;12349:52;;12456:15;;;;12421:12;;;;12397:1;12315:9;12286:195;;;-1:-1:-1;;;;;;;12537:32:1;;;;12532:2;12517:18;;12510:60;-1:-1:-1;;;12601:3:1;12586:19;12579:35;12498:3;11640:980;-1:-1:-1;;;11640:980:1:o;12625:200::-;-1:-1:-1;;;;;12761:10:1;;;12749;;;12745:27;;12784:12;;;12781:38;;;12799:18;;:::i;:::-;12781:38;12625:200;;;;:::o;13210:245::-;13277:6;13330:2;13318:9;13309:7;13305:23;13301:32;13298:52;;;13346:1;13343;13336:12;13298:52;13378:9;13372:16;13397:28;13419:5;13397:28;:::i
Swarm Source
ipfs://18c3ab4797794d4a3ac3e859f0ee3cc23be0c1b7782f636cbe813f10b3673aad
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.