ERC-20
Overview
Max Total Supply
21,000,000 BRC
Holders
63
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.580654804514833131 BRCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Bricscoin
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-31 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } 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; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } 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 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) 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); } contract ERC20 is Context, IERC20, IERC20Metadata { 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 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract Bricscoin is Context, ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 private _uniswapV2Router02; mapping(address => bool) private _excludedFromFees; mapping(address => bool) private _excludedFromMaxTxAmount; mapping(address => bool) private _blacklisted; bool public tradingOpen; bool private _swapping; bool public swapEnabled = false; bool public feesEnabled = true; bool public transferFeesEnabled = true; uint256 private constant _tSupply = 21_000_000 ether; uint256 public maxBuyAmount = _tSupply; uint256 public maxSellAmount = _tSupply; uint256 public maxWalletAmount = _tSupply; uint256 public tradingOpenBlock = 0; uint256 private _blocksToBlacklist = 0; uint256 public constant FEE_DIVISOR = 1000; uint256 private _totalFees; uint256 private _opsFee; uint256 public buyOpsFee = 300; uint256 private _previousBuyOpsFee = buyOpsFee; uint256 public sellOpsFee = 600; uint256 private _previousSellOpsFee = sellOpsFee; uint256 public transferOpsFee = 100; uint256 private _previousTransferOpsFee = transferOpsFee; uint256 private _tokensForOps; uint256 private _swapTokensAtAmount = 0; address payable public opsWalletAddress; address private _uniswapV2Pair; enum TransactionType { BUY, SELL, TRANSFER } modifier lockSwapping() { _swapping = true; _; _swapping = false; } constructor() payable ERC20("Bricscoin", "BRC") { opsWalletAddress = payable(owner()); _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true; _excludedFromFees[address(0xdead)] = true; _excludedFromMaxTxAmount[owner()] = true; _excludedFromMaxTxAmount[address(this)] = true; _excludedFromMaxTxAmount[address(0xdead)] = true; _mint(address(this), _tSupply); } receive() external payable {} fallback() external payable {} function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0x0), "ERC20: transfer from the zero address"); require(to != address(0x0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool takeFee = true; TransactionType txType = (from == _uniswapV2Pair) ? TransactionType.BUY : (to == _uniswapV2Pair) ? TransactionType.SELL : TransactionType.TRANSFER; if ( from != owner() && to != owner() && to != address(0x0) && to != address(0xdead) && !_swapping ) { require(!_blacklisted[from] && !_blacklisted[to], "Blacklisted."); if (!tradingOpen) require( _excludedFromFees[from] || _excludedFromFees[to], "Trading is not allowed yet." ); if ( txType == TransactionType.BUY && to != address(_uniswapV2Router02) && !_excludedFromMaxTxAmount[to] ) { require( amount <= maxBuyAmount, "Transfer amount exceeds the maxBuyAmount." ); require( balanceOf(to).add(amount) <= maxWalletAmount, "Exceeds maximum wallet token amount." ); } if ( txType == TransactionType.SELL && from != address(_uniswapV2Router02) && !_excludedFromMaxTxAmount[from] ) require( amount <= maxSellAmount, "Transfer amount exceeds the maxSellAmount." ); } if ( _excludedFromFees[from] || _excludedFromFees[to] || !feesEnabled || (!transferFeesEnabled && txType == TransactionType.TRANSFER) ) takeFee = false; uint256 contractBalance = balanceOf(address(this)); bool canSwap = (contractBalance > _swapTokensAtAmount) && (txType == TransactionType.SELL); if ( canSwap && swapEnabled && !_swapping && !_excludedFromFees[from] && !_excludedFromFees[to] ) { _swapBack(contractBalance); } _tokenTransfer(from, to, amount, takeFee, txType); } function _swapBack(uint256 contractBalance) internal lockSwapping { bool success; if (contractBalance == 0 || _tokensForOps == 0) return; if (contractBalance > _swapTokensAtAmount.mul(5)) contractBalance = _swapTokensAtAmount.mul(5); _swapExactTokensForETHSupportingFeeOnTransferTokens(contractBalance); _tokensForOps = 0; (success, ) = address(opsWalletAddress).call{ value: address(this).balance }(""); } function _swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 tokenAmount ) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router02.WETH(); _approve(address(this), address(_uniswapV2Router02), tokenAmount); _uniswapV2Router02.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function blacklisted(address wallet) external view returns (bool) { return _blacklisted[wallet]; } function openTrading(uint256 blocks) public onlyOwner { require(!tradingOpen, "Trading is already open"); require(blocks <= 10, "Invalid blocks count."); _uniswapV2Router02 = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(_uniswapV2Router02), totalSupply()); _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router02.factory()) .createPair(address(this), _uniswapV2Router02.WETH()); _uniswapV2Router02.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(_uniswapV2Pair).approve( address(_uniswapV2Router02), type(uint256).max ); maxBuyAmount = totalSupply().mul(2).div(100); maxSellAmount = totalSupply().mul(2).div(100); maxWalletAmount = totalSupply().mul(2).div(100); _swapTokensAtAmount = totalSupply().mul(5).div(10000); swapEnabled = true; tradingOpen = true; tradingOpenBlock = block.number; _blocksToBlacklist = blocks; } function setSwapEnabled(bool onoff) public onlyOwner { swapEnabled = onoff; } function setFeesEnabled(bool onoff) public onlyOwner { feesEnabled = onoff; } function setTransferFeesEnabled(bool onoff) public onlyOwner { transferFeesEnabled = onoff; } function setMaxBuyAmount(uint256 _maxBuyAmount) public onlyOwner { require( _maxBuyAmount >= (totalSupply().mul(1).div(1000)), "Max buy amount cannot be lower than 0.1% total supply." ); maxBuyAmount = _maxBuyAmount; } function setMaxSellAmount(uint256 _maxSellAmount) public onlyOwner { require( _maxSellAmount >= (totalSupply().mul(1).div(1000)), "Max sell amount cannot be lower than 0.1% total supply." ); maxSellAmount = _maxSellAmount; } function setMaxWalletAmount(uint256 _maxWalletAmount) public onlyOwner { require( _maxWalletAmount >= (totalSupply().mul(1).div(1000)), "Max wallet amount cannot be lower than 0.1% total supply." ); maxWalletAmount = _maxWalletAmount; } function setSwapTokensAtAmount(uint256 swapTokensAtAmount) public onlyOwner { require( swapTokensAtAmount >= (totalSupply().mul(1).div(1000000)), "Swap amount cannot be lower than 0.0001% total supply." ); require( swapTokensAtAmount <= (totalSupply().mul(5).div(1000)), "Swap amount cannot be higher than 0.5% total supply." ); _swapTokensAtAmount = swapTokensAtAmount; } function setOpsWalletAddress(address _opsWalletAddress) public onlyOwner { require( _opsWalletAddress != address(0x0), "opsWalletAddress cannot be 0" ); _excludedFromFees[opsWalletAddress] = false; _excludedFromMaxTxAmount[opsWalletAddress] = false; opsWalletAddress = payable(_opsWalletAddress); _excludedFromFees[opsWalletAddress] = true; _excludedFromMaxTxAmount[opsWalletAddress] = true; } function excludeFromFees(address[] memory accounts, bool isEx) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) _excludedFromFees[accounts[i]] = isEx; } function excludeFromMaxTxAmount(address[] memory accounts, bool isEx) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) _excludedFromMaxTxAmount[accounts[i]] = isEx; } function blacklist(address[] memory accounts, bool isBL) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { if ( (accounts[i] != _uniswapV2Pair) && (accounts[i] != address(_uniswapV2Router02)) && (accounts[i] != address(this)) ) _blacklisted[accounts[i]] = isBL; } } function setBuyFee(uint256 _buyOpsFee) public onlyOwner { buyOpsFee = _buyOpsFee; } function setSellFee(uint256 _sellOpsFee) public onlyOwner { sellOpsFee = _sellOpsFee; } function setTransferFee(uint256 _transferOpsFee) public onlyOwner { transferOpsFee = _transferOpsFee; } function _removeAllFee() internal { if (buyOpsFee == 0 && sellOpsFee == 0 && transferOpsFee == 0) return; _previousBuyOpsFee = buyOpsFee; _previousSellOpsFee = sellOpsFee; _previousTransferOpsFee = transferOpsFee; buyOpsFee = 0; sellOpsFee = 0; transferOpsFee = 0; } function _restoreAllFee() internal { buyOpsFee = _previousBuyOpsFee; sellOpsFee = _previousSellOpsFee; transferOpsFee = _previousTransferOpsFee; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee, TransactionType txType ) internal { if (!takeFee) _removeAllFee(); else amount = _takeFees(sender, amount, txType); super._transfer(sender, recipient, amount); if (!takeFee) _restoreAllFee(); } function _takeFees( address sender, uint256 amount, TransactionType txType ) internal returns (uint256) { if (tradingOpenBlock.add(_blocksToBlacklist) > block.number) _setBot(); else if (txType == TransactionType.SELL) _setSell(); else if (txType == TransactionType.BUY) _setBuy(); else if (txType == TransactionType.TRANSFER) _setTransfer(); else revert("Invalid transaction type."); uint256 fees; if (_totalFees > 0) { fees = amount.mul(_totalFees).div(FEE_DIVISOR); _tokensForOps += (fees.mul(_opsFee)).div(_totalFees); } if (fees > 0) super._transfer(sender, address(this), fees); return amount -= fees; } function _setBot() internal { _opsFee = 999; _totalFees = _opsFee; } function _setSell() internal { _opsFee = sellOpsFee; _totalFees = _opsFee; } function _setBuy() internal { _opsFee = buyOpsFee; _totalFees = _opsFee; } function _setTransfer() internal { _opsFee = transferOpsFee; _totalFees = _opsFee; } function unclog() public onlyOwner lockSwapping { _swapExactTokensForETHSupportingFeeOnTransferTokens( balanceOf(address(this)) ); _tokensForOps = 0; bool success; (success, ) = address(opsWalletAddress).call{ value: address(this).balance }(""); } function withdrawStuckTokens(address tkn) external onlyOwner { require(tkn != address(this), "Cannot withdraw own token"); bool success; if (tkn == address(0)) (success, ) = address(msg.sender).call{ value: address(this).balance }(""); else { require(IERC20(tkn).balanceOf(address(this)) > 0); uint256 amount = IERC20(tkn).balanceOf(address(this)); IERC20(tkn).transfer(msg.sender, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isBL","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOpsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"opsWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"sellOpsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyOpsFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_opsWalletAddress","type":"address"}],"name":"setOpsWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellOpsFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferOpsFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTransferFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpenBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFeesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferOpsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tkn","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600a805464ffffff000019166401010000001790556a115eec47f6cf7e35000000600b819055600c819055600d556000600e819055600f81905561012c60128190556013556102586014819055601555606460168190556017556019556009608090815268213934b1b9b1b7b4b760b91b60a052610100604052600360c08181526242524360e81b60e0529062000097838262000374565b506004620000a6828262000374565b505050620000c3620000bd620001af60201b60201c565b620001b3565b60058054601a80546001600160a01b0319166001600160a01b039283169081179091556000908152600760209081526040808320805460ff1990811660019081179092553080865283862080548316841790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805483168417905596549095168452600890925280832080548516831790558483528220805484168217905561dead9091527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620001a9906a115eec47f6cf7e3500000062000205565b62000468565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002605760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000274919062000440565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002fb57607f821691505b6020821081036200031c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002cb57600081815260208120601f850160051c810160208610156200034b5750805b601f850160051c820191505b818110156200036c5782815560010162000357565b505050505050565b81516001600160401b03811115620003905762000390620002d0565b620003a881620003a18454620002e6565b8462000322565b602080601f831160018114620003e05760008415620003c75750858301515b600019600386901b1c1916600185901b1785556200036c565b600085815260208120601f198616915b828110156200041157888601518255948401946001909101908401620003f0565b5085821015620004305787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200046257634e487b7160e01b600052601160045260246000fd5b92915050565b612a2d80620004786000396000f3fe60806040526004361061025e5760003560e01c80638f02bb5b11610143578063c997eb8d116100bb578063e01af92c11610077578063e01af92c14610736578063e99c9d0914610756578063effb3c5314610776578063f2fde38b14610798578063f34eb0b8146107b8578063ffb54a99146107d857005b8063c997eb8d1461065d578063cb9637281461067d578063d16336491461069d578063dbac26e9146106bd578063dd62ed3e146106f6578063dd77b7e61461071657005b8063a64e4f8a1161010a578063a64e4f8a146105a6578063a901dd92146105c7578063a9059cbb146105e7578063aa4bde2814610607578063ad29ffde1461061d578063afa4f3b21461063d57005b80638f02bb5b1461052557806393e3a1551461054557806395d89b411461055b5780639e93ad8e14610570578063a457c2d71461058657005b80635286e770116101d657806370a082311161019d57806370a0823114610470578063715018a6146104a657806378dd7d41146104bb57806388e765ff146104d15780638b4cee08146104e75780638da5cb5b1461050757005b80635286e770146103ef578063659ffb9c1461040f57806366d602ae1461042557806367c453491461043b5780636ddd17131461045057005b806318160ddd1161022557806318160ddd1461032657806323b872dd1461033b57806327a14fc21461035b57806329ea34cc1461037b578063313ce567146103b357806339509351146103cf57005b806306fdde0314610267578063095ea7b3146102925780630cc835a3146102c25780630e23500e146102e2578063157e136e1461030657005b3661026557005b005b34801561027357600080fd5b5061027c6107f2565b6040516102899190612517565b60405180910390f35b34801561029e57600080fd5b506102b26102ad36600461258a565b610884565b6040519015158152602001610289565b3480156102ce57600080fd5b506102656102dd3660046125b6565b61089e565b3480156102ee57600080fd5b506102f8600e5481565b604051908152602001610289565b34801561031257600080fd5b506102656103213660046125cf565b6108ab565b34801561033257600080fd5b506002546102f8565b34801561034757600080fd5b506102b26103563660046125ec565b61098c565b34801561036757600080fd5b506102656103763660046125b6565b6109b0565b34801561038757600080fd5b50601a5461039b906001600160a01b031681565b6040516001600160a01b039091168152602001610289565b3480156103bf57600080fd5b5060405160128152602001610289565b3480156103db57600080fd5b506102b26103ea36600461258a565b610a52565b3480156103fb57600080fd5b5061026561040a36600461265c565b610a74565b34801561041b57600080fd5b506102f860145481565b34801561043157600080fd5b506102f8600c5481565b34801561044757600080fd5b50610265610ae8565b34801561045c57600080fd5b50600a546102b29062010000900460ff1681565b34801561047c57600080fd5b506102f861048b3660046125cf565b6001600160a01b031660009081526020819052604090205490565b3480156104b257600080fd5b50610265610b8f565b3480156104c757600080fd5b506102f860125481565b3480156104dd57600080fd5b506102f8600b5481565b3480156104f357600080fd5b506102656105023660046125b6565b610ba3565b34801561051357600080fd5b506005546001600160a01b031661039b565b34801561053157600080fd5b506102656105403660046125b6565b610bb0565b34801561055157600080fd5b506102f860165481565b34801561056757600080fd5b5061027c610bbd565b34801561057c57600080fd5b506102f86103e881565b34801561059257600080fd5b506102b26105a136600461258a565b610bcc565b3480156105b257600080fd5b50600a546102b2906301000000900460ff1681565b3480156105d357600080fd5b506102656105e2366004612733565b610c47565b3480156105f357600080fd5b506102b261060236600461258a565b610c6d565b34801561061357600080fd5b506102f8600d5481565b34801561062957600080fd5b5061026561063836600461265c565b610c7b565b34801561064957600080fd5b506102656106583660046125b6565b610cea565b34801561066957600080fd5b5061026561067836600461265c565b610dfa565b34801561068957600080fd5b506102656106983660046125cf565b610f27565b3480156106a957600080fd5b506102656106b83660046125b6565b61113d565b3480156106c957600080fd5b506102b26106d83660046125cf565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561070257600080fd5b506102f8610711366004612750565b611562565b34801561072257600080fd5b50610265610731366004612733565b61158d565b34801561074257600080fd5b50610265610751366004612733565b6115b5565b34801561076257600080fd5b506102656107713660046125b6565b6115d9565b34801561078257600080fd5b50600a546102b290640100000000900460ff1681565b3480156107a457600080fd5b506102656107b33660046125cf565b61166f565b3480156107c457600080fd5b506102656107d33660046125b6565b6116e8565b3480156107e457600080fd5b50600a546102b29060ff1681565b60606003805461080190612789565b80601f016020809104026020016040519081016040528092919081815260200182805461082d90612789565b801561087a5780601f1061084f5761010080835404028352916020019161087a565b820191906000526020600020905b81548152906001019060200180831161085d57829003601f168201915b5050505050905090565b600033610892818585611777565b60019150505b92915050565b6108a661189b565b601255565b6108b361189b565b6001600160a01b03811661090e5760405162461bcd60e51b815260206004820152601c60248201527f6f707357616c6c6574416464726573732063616e6e6f7420626520300000000060448201526064015b60405180910390fd5b601a80546001600160a01b039081166000908152600760208181526040808420805460ff19908116909155865486168552600880845282862080548316905587546001600160a01b03191698871698891788559785529282528084208054841660019081179091559554909416835294909452208054909216179055565b60003361099a8582856118f5565b6109a5858585611969565b506001949350505050565b6109b861189b565b6109d86103e86109d260016109cc60025490565b90611f51565b90611f64565b811015610a4d5760405162461bcd60e51b815260206004820152603960248201527f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c6f776560448201527f72207468616e20302e312520746f74616c20737570706c792e000000000000006064820152608401610905565b600d55565b600033610892818585610a658383611562565b610a6f91906127d9565b611777565b610a7c61189b565b60005b8251811015610ae3578160086000858481518110610a9f57610a9f6127ec565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610adb81612802565b915050610a7f565b505050565b610af061189b565b600a805461ff001916610100179055610b26610b21306001600160a01b031660009081526020819052604090205490565b611f70565b60006018819055601a546040516001600160a01b039091169047908381818185875af1925050503d8060008114610b79576040519150601f19603f3d011682016040523d82523d6000602084013e610b7e565b606091505b5050600a805461ff00191690555050565b610b9761189b565b610ba160006120ca565b565b610bab61189b565b601455565b610bb861189b565b601655565b60606004805461080190612789565b60003381610bda8286611562565b905083811015610c3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610905565b6109a58286868403611777565b610c4f61189b565b600a805491151563010000000263ff00000019909216919091179055565b600033610892818585611969565b610c8361189b565b60005b8251811015610ae3578160076000858481518110610ca657610ca66127ec565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ce281612802565b915050610c86565b610cf261189b565b610d07620f42406109d260016109cc60025490565b811015610d755760405162461bcd60e51b815260206004820152603660248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e6044820152751018171818181892903a37ba30b61039bab838363c9760511b6064820152608401610905565b610d896103e86109d260056109cc60025490565b811115610df55760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610905565b601955565b610e0261189b565b60005b8251811015610ae357601b5483516001600160a01b0390911690849083908110610e3157610e316127ec565b60200260200101516001600160a01b031614158015610e82575060065483516001600160a01b0390911690849083908110610e6e57610e6e6127ec565b60200260200101516001600160a01b031614155b8015610eb95750306001600160a01b0316838281518110610ea557610ea56127ec565b60200260200101516001600160a01b031614155b15610f15578160096000858481518110610ed557610ed56127ec565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610f1f81612802565b915050610e05565b610f2f61189b565b306001600160a01b03821603610f875760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f74207769746864726177206f776e20746f6b656e000000000000006044820152606401610905565b60006001600160a01b038216610fe35760405133904790600081818185875af1925050503d8060008114610fd7576040519150601f19603f3d011682016040523d82523d6000602084013e610fdc565b606091505b5050505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561102a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104e919061281b565b1161105857600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c3919061281b565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611113573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111379190612834565b50505050565b61114561189b565b600a5460ff16156111985760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610905565b600a8111156111e15760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b210313637b1b5b99031b7bab73a1760591b6044820152606401610905565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155611219903090610a6f60025490565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190612851565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190612851565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113879190612851565b601b80546001600160a01b039283166001600160a01b03199091161790556006541663f305d71947306113cf816001600160a01b031660009081526020819052604090205490565b6000806113e46005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561144c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611471919061286e565b5050601b5460065460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee9190612834565b5061150260646109d260026109cc60025490565b600b5561151860646109d260026109cc60025490565b600c5561152e60646109d260026109cc60025490565b600d556115456127106109d260056109cc60025490565b601955600a805462ff00ff19166201000117905543600e55600f55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61159561189b565b600a80549115156401000000000264ff0000000019909216919091179055565b6115bd61189b565b600a8054911515620100000262ff000019909216919091179055565b6115e161189b565b6115f56103e86109d260016109cc60025490565b81101561166a5760405162461bcd60e51b815260206004820152603760248201527f4d61782073656c6c20616d6f756e742063616e6e6f74206265206c6f7765722060448201527f7468616e20302e312520746f74616c20737570706c792e0000000000000000006064820152608401610905565b600c55565b61167761189b565b6001600160a01b0381166116dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610905565b6116e5816120ca565b50565b6116f061189b565b6117046103e86109d260016109cc60025490565b8110156117725760405162461bcd60e51b815260206004820152603660248201527f4d61782062757920616d6f756e742063616e6e6f74206265206c6f77657220746044820152753430b71018171892903a37ba30b61039bab838363c9760511b6064820152608401610905565b600b55565b6001600160a01b0383166117d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610905565b6001600160a01b03821661183a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610905565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610ba15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610905565b60006119018484611562565b90506000198114611137578181101561195c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610905565b6111378484848403611777565b6001600160a01b03831661198f5760405162461bcd60e51b81526004016109059061289c565b6001600160a01b0382166119b55760405162461bcd60e51b8152600401610905906128e1565b60008111611a175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610905565b601b546001906000906001600160a01b03868116911614611a5557601b546001600160a01b03858116911614611a4e576002611a58565b6001611a58565b60005b9050611a6c6005546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015611a9b57506005546001600160a01b03858116911614155b8015611aaf57506001600160a01b03841615155b8015611ac657506001600160a01b03841661dead14155b8015611ada5750600a54610100900460ff16155b15611df2576001600160a01b03851660009081526009602052604090205460ff16158015611b2157506001600160a01b03841660009081526009602052604090205460ff16155b611b5c5760405162461bcd60e51b815260206004820152600c60248201526b213630b1b5b634b9ba32b21760a11b6044820152606401610905565b600a5460ff16611bf1576001600160a01b03851660009081526007602052604090205460ff1680611ba557506001600160a01b03841660009081526007602052604090205460ff165b611bf15760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f7420616c6c6f776564207965742e00000000006044820152606401610905565b6000816002811115611c0557611c05612924565b148015611c2057506006546001600160a01b03858116911614155b8015611c4557506001600160a01b03841660009081526008602052604090205460ff16155b15611d3457600b54831115611cae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b6064820152608401610905565b600d54611cda84611cd4876001600160a01b031660009081526020819052604090205490565b9061211c565b1115611d345760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610905565b6001816002811115611d4857611d48612924565b148015611d6357506006546001600160a01b03868116911614155b8015611d8857506001600160a01b03851660009081526008602052604090205460ff16155b15611df257600c54831115611df25760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b6064820152608401610905565b6001600160a01b03851660009081526007602052604090205460ff1680611e3157506001600160a01b03841660009081526007602052604090205460ff165b80611e465750600a546301000000900460ff16155b80611e785750600a54640100000000900460ff16158015611e7857506002816002811115611e7657611e76612924565b145b15611e8257600091505b306000908152602081905260408120549050600060195482118015611eb857506001836002811115611eb657611eb6612924565b145b9050808015611ecf5750600a5462010000900460ff165b8015611ee35750600a54610100900460ff16155b8015611f0857506001600160a01b03871660009081526007602052604090205460ff16155b8015611f2d57506001600160a01b03861660009081526007602052604090205460ff16155b15611f3b57611f3b82612128565b611f4887878787876121eb565b50505050505050565b6000611f5d828461293a565b9392505050565b6000611f5d8284612951565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fa557611fa56127ec565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190612851565b81600181518110612035576120356127ec565b6001600160a01b03928316602091820292909201015260065461205b9130911684611777565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612094908590600090869030904290600401612973565b600060405180830381600087803b1580156120ae57600080fd5b505af11580156120c2573d6000803e3d6000fd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611f5d82846127d9565b600a805461ff00191661010017905560008115806121465750601854155b1561215157506121dd565b60195461215f906005611f51565b82111561217757601954612174906005611f51565b91505b61218082611f70565b60006018819055601a546040516001600160a01b039091169147919081818185875af1925050503d80600081146121d3576040519150601f19603f3d011682016040523d82523d6000602084013e6121d8565b606091505b505050505b50600a805461ff0019169055565b816121fd576121f8612232565b61220b565b612208858483612277565b92505b6122168585856123ed565b81610fdc57610fdc601354601255601554601455601754601655565b6012541580156122425750601454155b801561224e5750601654155b1561225557565b6012805460135560148054601555601680546017556000928390559082905555565b600043612291600f54600e5461211c90919063ffffffff16565b11156122ac576122a76103e76011819055601055565b61236f565b60018260028111156122c0576122c0612924565b036122d5576122a76014546011819055601055565b60008260028111156122e9576122e9612924565b036122fe576122a76012546011819055601055565b600282600281111561231257612312612924565b03612327576122a76016546011819055601055565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c6964207472616e73616374696f6e20747970652e000000000000006044820152606401610905565b601054600090156123c9576123956103e86109d260105487611f5190919063ffffffff16565b90506123b26010546109d260115484611f5190919063ffffffff16565b601860008282546123c391906127d9565b90915550505b80156123da576123da8530836123ed565b6123e481856129e4565b95945050505050565b6001600160a01b0383166124135760405162461bcd60e51b81526004016109059061289c565b6001600160a01b0382166124395760405162461bcd60e51b8152600401610905906128e1565b6001600160a01b038316600090815260208190526040902054818110156124b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610905565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611137565b600060208083528351808285015260005b8181101561254457858101830151858201604001528201612528565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116e557600080fd5b803561258581612565565b919050565b6000806040838503121561259d57600080fd5b82356125a881612565565b946020939093013593505050565b6000602082840312156125c857600080fd5b5035919050565b6000602082840312156125e157600080fd5b8135611f5d81612565565b60008060006060848603121561260157600080fd5b833561260c81612565565b9250602084013561261c81612565565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b80151581146116e557600080fd5b803561258581612643565b6000806040838503121561266f57600080fd5b823567ffffffffffffffff8082111561268757600080fd5b818501915085601f83011261269b57600080fd5b81356020828211156126af576126af61262d565b8160051b604051601f19603f830116810181811086821117156126d4576126d461262d565b6040529283528183019350848101820192898411156126f257600080fd5b948201945b83861015612717576127088661257a565b855294820194938201936126f7565b96506127269050878201612651565b9450505050509250929050565b60006020828403121561274557600080fd5b8135611f5d81612643565b6000806040838503121561276357600080fd5b823561276e81612565565b9150602083013561277e81612565565b809150509250929050565b600181811c9082168061279d57607f821691505b6020821081036127bd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610898576108986127c3565b634e487b7160e01b600052603260045260246000fd5b600060018201612814576128146127c3565b5060010190565b60006020828403121561282d57600080fd5b5051919050565b60006020828403121561284657600080fd5b8151611f5d81612643565b60006020828403121561286357600080fd5b8151611f5d81612565565b60008060006060848603121561288357600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b8082028115828204841417610898576108986127c3565b60008261296e57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129c35784516001600160a01b03168352938301939183019160010161299e565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115610898576108986127c356fea26469706673582212205eb2994e98d46d3cca628c9735c7b719adea4d4b5b5f3c8d2a1b33a04d3481c664736f6c63430008130033
Deployed Bytecode
0x60806040526004361061025e5760003560e01c80638f02bb5b11610143578063c997eb8d116100bb578063e01af92c11610077578063e01af92c14610736578063e99c9d0914610756578063effb3c5314610776578063f2fde38b14610798578063f34eb0b8146107b8578063ffb54a99146107d857005b8063c997eb8d1461065d578063cb9637281461067d578063d16336491461069d578063dbac26e9146106bd578063dd62ed3e146106f6578063dd77b7e61461071657005b8063a64e4f8a1161010a578063a64e4f8a146105a6578063a901dd92146105c7578063a9059cbb146105e7578063aa4bde2814610607578063ad29ffde1461061d578063afa4f3b21461063d57005b80638f02bb5b1461052557806393e3a1551461054557806395d89b411461055b5780639e93ad8e14610570578063a457c2d71461058657005b80635286e770116101d657806370a082311161019d57806370a0823114610470578063715018a6146104a657806378dd7d41146104bb57806388e765ff146104d15780638b4cee08146104e75780638da5cb5b1461050757005b80635286e770146103ef578063659ffb9c1461040f57806366d602ae1461042557806367c453491461043b5780636ddd17131461045057005b806318160ddd1161022557806318160ddd1461032657806323b872dd1461033b57806327a14fc21461035b57806329ea34cc1461037b578063313ce567146103b357806339509351146103cf57005b806306fdde0314610267578063095ea7b3146102925780630cc835a3146102c25780630e23500e146102e2578063157e136e1461030657005b3661026557005b005b34801561027357600080fd5b5061027c6107f2565b6040516102899190612517565b60405180910390f35b34801561029e57600080fd5b506102b26102ad36600461258a565b610884565b6040519015158152602001610289565b3480156102ce57600080fd5b506102656102dd3660046125b6565b61089e565b3480156102ee57600080fd5b506102f8600e5481565b604051908152602001610289565b34801561031257600080fd5b506102656103213660046125cf565b6108ab565b34801561033257600080fd5b506002546102f8565b34801561034757600080fd5b506102b26103563660046125ec565b61098c565b34801561036757600080fd5b506102656103763660046125b6565b6109b0565b34801561038757600080fd5b50601a5461039b906001600160a01b031681565b6040516001600160a01b039091168152602001610289565b3480156103bf57600080fd5b5060405160128152602001610289565b3480156103db57600080fd5b506102b26103ea36600461258a565b610a52565b3480156103fb57600080fd5b5061026561040a36600461265c565b610a74565b34801561041b57600080fd5b506102f860145481565b34801561043157600080fd5b506102f8600c5481565b34801561044757600080fd5b50610265610ae8565b34801561045c57600080fd5b50600a546102b29062010000900460ff1681565b34801561047c57600080fd5b506102f861048b3660046125cf565b6001600160a01b031660009081526020819052604090205490565b3480156104b257600080fd5b50610265610b8f565b3480156104c757600080fd5b506102f860125481565b3480156104dd57600080fd5b506102f8600b5481565b3480156104f357600080fd5b506102656105023660046125b6565b610ba3565b34801561051357600080fd5b506005546001600160a01b031661039b565b34801561053157600080fd5b506102656105403660046125b6565b610bb0565b34801561055157600080fd5b506102f860165481565b34801561056757600080fd5b5061027c610bbd565b34801561057c57600080fd5b506102f86103e881565b34801561059257600080fd5b506102b26105a136600461258a565b610bcc565b3480156105b257600080fd5b50600a546102b2906301000000900460ff1681565b3480156105d357600080fd5b506102656105e2366004612733565b610c47565b3480156105f357600080fd5b506102b261060236600461258a565b610c6d565b34801561061357600080fd5b506102f8600d5481565b34801561062957600080fd5b5061026561063836600461265c565b610c7b565b34801561064957600080fd5b506102656106583660046125b6565b610cea565b34801561066957600080fd5b5061026561067836600461265c565b610dfa565b34801561068957600080fd5b506102656106983660046125cf565b610f27565b3480156106a957600080fd5b506102656106b83660046125b6565b61113d565b3480156106c957600080fd5b506102b26106d83660046125cf565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561070257600080fd5b506102f8610711366004612750565b611562565b34801561072257600080fd5b50610265610731366004612733565b61158d565b34801561074257600080fd5b50610265610751366004612733565b6115b5565b34801561076257600080fd5b506102656107713660046125b6565b6115d9565b34801561078257600080fd5b50600a546102b290640100000000900460ff1681565b3480156107a457600080fd5b506102656107b33660046125cf565b61166f565b3480156107c457600080fd5b506102656107d33660046125b6565b6116e8565b3480156107e457600080fd5b50600a546102b29060ff1681565b60606003805461080190612789565b80601f016020809104026020016040519081016040528092919081815260200182805461082d90612789565b801561087a5780601f1061084f5761010080835404028352916020019161087a565b820191906000526020600020905b81548152906001019060200180831161085d57829003601f168201915b5050505050905090565b600033610892818585611777565b60019150505b92915050565b6108a661189b565b601255565b6108b361189b565b6001600160a01b03811661090e5760405162461bcd60e51b815260206004820152601c60248201527f6f707357616c6c6574416464726573732063616e6e6f7420626520300000000060448201526064015b60405180910390fd5b601a80546001600160a01b039081166000908152600760208181526040808420805460ff19908116909155865486168552600880845282862080548316905587546001600160a01b03191698871698891788559785529282528084208054841660019081179091559554909416835294909452208054909216179055565b60003361099a8582856118f5565b6109a5858585611969565b506001949350505050565b6109b861189b565b6109d86103e86109d260016109cc60025490565b90611f51565b90611f64565b811015610a4d5760405162461bcd60e51b815260206004820152603960248201527f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c6f776560448201527f72207468616e20302e312520746f74616c20737570706c792e000000000000006064820152608401610905565b600d55565b600033610892818585610a658383611562565b610a6f91906127d9565b611777565b610a7c61189b565b60005b8251811015610ae3578160086000858481518110610a9f57610a9f6127ec565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610adb81612802565b915050610a7f565b505050565b610af061189b565b600a805461ff001916610100179055610b26610b21306001600160a01b031660009081526020819052604090205490565b611f70565b60006018819055601a546040516001600160a01b039091169047908381818185875af1925050503d8060008114610b79576040519150601f19603f3d011682016040523d82523d6000602084013e610b7e565b606091505b5050600a805461ff00191690555050565b610b9761189b565b610ba160006120ca565b565b610bab61189b565b601455565b610bb861189b565b601655565b60606004805461080190612789565b60003381610bda8286611562565b905083811015610c3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610905565b6109a58286868403611777565b610c4f61189b565b600a805491151563010000000263ff00000019909216919091179055565b600033610892818585611969565b610c8361189b565b60005b8251811015610ae3578160076000858481518110610ca657610ca66127ec565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ce281612802565b915050610c86565b610cf261189b565b610d07620f42406109d260016109cc60025490565b811015610d755760405162461bcd60e51b815260206004820152603660248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e6044820152751018171818181892903a37ba30b61039bab838363c9760511b6064820152608401610905565b610d896103e86109d260056109cc60025490565b811115610df55760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610905565b601955565b610e0261189b565b60005b8251811015610ae357601b5483516001600160a01b0390911690849083908110610e3157610e316127ec565b60200260200101516001600160a01b031614158015610e82575060065483516001600160a01b0390911690849083908110610e6e57610e6e6127ec565b60200260200101516001600160a01b031614155b8015610eb95750306001600160a01b0316838281518110610ea557610ea56127ec565b60200260200101516001600160a01b031614155b15610f15578160096000858481518110610ed557610ed56127ec565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610f1f81612802565b915050610e05565b610f2f61189b565b306001600160a01b03821603610f875760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f74207769746864726177206f776e20746f6b656e000000000000006044820152606401610905565b60006001600160a01b038216610fe35760405133904790600081818185875af1925050503d8060008114610fd7576040519150601f19603f3d011682016040523d82523d6000602084013e610fdc565b606091505b5050505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561102a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104e919061281b565b1161105857600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa15801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c3919061281b565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611113573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111379190612834565b50505050565b61114561189b565b600a5460ff16156111985760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610905565b600a8111156111e15760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b210313637b1b5b99031b7bab73a1760591b6044820152606401610905565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155611219903090610a6f60025490565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190612851565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190612851565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113879190612851565b601b80546001600160a01b039283166001600160a01b03199091161790556006541663f305d71947306113cf816001600160a01b031660009081526020819052604090205490565b6000806113e46005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561144c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611471919061286e565b5050601b5460065460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee9190612834565b5061150260646109d260026109cc60025490565b600b5561151860646109d260026109cc60025490565b600c5561152e60646109d260026109cc60025490565b600d556115456127106109d260056109cc60025490565b601955600a805462ff00ff19166201000117905543600e55600f55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61159561189b565b600a80549115156401000000000264ff0000000019909216919091179055565b6115bd61189b565b600a8054911515620100000262ff000019909216919091179055565b6115e161189b565b6115f56103e86109d260016109cc60025490565b81101561166a5760405162461bcd60e51b815260206004820152603760248201527f4d61782073656c6c20616d6f756e742063616e6e6f74206265206c6f7765722060448201527f7468616e20302e312520746f74616c20737570706c792e0000000000000000006064820152608401610905565b600c55565b61167761189b565b6001600160a01b0381166116dc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610905565b6116e5816120ca565b50565b6116f061189b565b6117046103e86109d260016109cc60025490565b8110156117725760405162461bcd60e51b815260206004820152603660248201527f4d61782062757920616d6f756e742063616e6e6f74206265206c6f77657220746044820152753430b71018171892903a37ba30b61039bab838363c9760511b6064820152608401610905565b600b55565b6001600160a01b0383166117d95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610905565b6001600160a01b03821661183a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610905565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314610ba15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610905565b60006119018484611562565b90506000198114611137578181101561195c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610905565b6111378484848403611777565b6001600160a01b03831661198f5760405162461bcd60e51b81526004016109059061289c565b6001600160a01b0382166119b55760405162461bcd60e51b8152600401610905906128e1565b60008111611a175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610905565b601b546001906000906001600160a01b03868116911614611a5557601b546001600160a01b03858116911614611a4e576002611a58565b6001611a58565b60005b9050611a6c6005546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015611a9b57506005546001600160a01b03858116911614155b8015611aaf57506001600160a01b03841615155b8015611ac657506001600160a01b03841661dead14155b8015611ada5750600a54610100900460ff16155b15611df2576001600160a01b03851660009081526009602052604090205460ff16158015611b2157506001600160a01b03841660009081526009602052604090205460ff16155b611b5c5760405162461bcd60e51b815260206004820152600c60248201526b213630b1b5b634b9ba32b21760a11b6044820152606401610905565b600a5460ff16611bf1576001600160a01b03851660009081526007602052604090205460ff1680611ba557506001600160a01b03841660009081526007602052604090205460ff165b611bf15760405162461bcd60e51b815260206004820152601b60248201527f54726164696e67206973206e6f7420616c6c6f776564207965742e00000000006044820152606401610905565b6000816002811115611c0557611c05612924565b148015611c2057506006546001600160a01b03858116911614155b8015611c4557506001600160a01b03841660009081526008602052604090205460ff16155b15611d3457600b54831115611cae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b6064820152608401610905565b600d54611cda84611cd4876001600160a01b031660009081526020819052604090205490565b9061211c565b1115611d345760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610905565b6001816002811115611d4857611d48612924565b148015611d6357506006546001600160a01b03868116911614155b8015611d8857506001600160a01b03851660009081526008602052604090205460ff16155b15611df257600c54831115611df25760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b6064820152608401610905565b6001600160a01b03851660009081526007602052604090205460ff1680611e3157506001600160a01b03841660009081526007602052604090205460ff165b80611e465750600a546301000000900460ff16155b80611e785750600a54640100000000900460ff16158015611e7857506002816002811115611e7657611e76612924565b145b15611e8257600091505b306000908152602081905260408120549050600060195482118015611eb857506001836002811115611eb657611eb6612924565b145b9050808015611ecf5750600a5462010000900460ff165b8015611ee35750600a54610100900460ff16155b8015611f0857506001600160a01b03871660009081526007602052604090205460ff16155b8015611f2d57506001600160a01b03861660009081526007602052604090205460ff16155b15611f3b57611f3b82612128565b611f4887878787876121eb565b50505050505050565b6000611f5d828461293a565b9392505050565b6000611f5d8284612951565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fa557611fa56127ec565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190612851565b81600181518110612035576120356127ec565b6001600160a01b03928316602091820292909201015260065461205b9130911684611777565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612094908590600090869030904290600401612973565b600060405180830381600087803b1580156120ae57600080fd5b505af11580156120c2573d6000803e3d6000fd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611f5d82846127d9565b600a805461ff00191661010017905560008115806121465750601854155b1561215157506121dd565b60195461215f906005611f51565b82111561217757601954612174906005611f51565b91505b61218082611f70565b60006018819055601a546040516001600160a01b039091169147919081818185875af1925050503d80600081146121d3576040519150601f19603f3d011682016040523d82523d6000602084013e6121d8565b606091505b505050505b50600a805461ff0019169055565b816121fd576121f8612232565b61220b565b612208858483612277565b92505b6122168585856123ed565b81610fdc57610fdc601354601255601554601455601754601655565b6012541580156122425750601454155b801561224e5750601654155b1561225557565b6012805460135560148054601555601680546017556000928390559082905555565b600043612291600f54600e5461211c90919063ffffffff16565b11156122ac576122a76103e76011819055601055565b61236f565b60018260028111156122c0576122c0612924565b036122d5576122a76014546011819055601055565b60008260028111156122e9576122e9612924565b036122fe576122a76012546011819055601055565b600282600281111561231257612312612924565b03612327576122a76016546011819055601055565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c6964207472616e73616374696f6e20747970652e000000000000006044820152606401610905565b601054600090156123c9576123956103e86109d260105487611f5190919063ffffffff16565b90506123b26010546109d260115484611f5190919063ffffffff16565b601860008282546123c391906127d9565b90915550505b80156123da576123da8530836123ed565b6123e481856129e4565b95945050505050565b6001600160a01b0383166124135760405162461bcd60e51b81526004016109059061289c565b6001600160a01b0382166124395760405162461bcd60e51b8152600401610905906128e1565b6001600160a01b038316600090815260208190526040902054818110156124b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610905565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611137565b600060208083528351808285015260005b8181101561254457858101830151858201604001528201612528565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116e557600080fd5b803561258581612565565b919050565b6000806040838503121561259d57600080fd5b82356125a881612565565b946020939093013593505050565b6000602082840312156125c857600080fd5b5035919050565b6000602082840312156125e157600080fd5b8135611f5d81612565565b60008060006060848603121561260157600080fd5b833561260c81612565565b9250602084013561261c81612565565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b80151581146116e557600080fd5b803561258581612643565b6000806040838503121561266f57600080fd5b823567ffffffffffffffff8082111561268757600080fd5b818501915085601f83011261269b57600080fd5b81356020828211156126af576126af61262d565b8160051b604051601f19603f830116810181811086821117156126d4576126d461262d565b6040529283528183019350848101820192898411156126f257600080fd5b948201945b83861015612717576127088661257a565b855294820194938201936126f7565b96506127269050878201612651565b9450505050509250929050565b60006020828403121561274557600080fd5b8135611f5d81612643565b6000806040838503121561276357600080fd5b823561276e81612565565b9150602083013561277e81612565565b809150509250929050565b600181811c9082168061279d57607f821691505b6020821081036127bd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610898576108986127c3565b634e487b7160e01b600052603260045260246000fd5b600060018201612814576128146127c3565b5060010190565b60006020828403121561282d57600080fd5b5051919050565b60006020828403121561284657600080fd5b8151611f5d81612643565b60006020828403121561286357600080fd5b8151611f5d81612565565b60008060006060848603121561288357600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b8082028115828204841417610898576108986127c3565b60008261296e57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129c35784516001600160a01b03168352938301939183019160010161299e565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115610898576108986127c356fea26469706673582212205eb2994e98d46d3cca628c9735c7b719adea4d4b5b5f3c8d2a1b33a04d3481c664736f6c63430008130033
Deployed Bytecode Sourcemap
11645:13584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5407:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6480:242;;;;;;;;;;-1:-1:-1;6480:242:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6480:242:0;1162:187:1;21901:97:0;;;;;;;;;;-1:-1:-1;21901:97:0;;;;;:::i;:::-;;:::i;12345:35::-;;;;;;;;;;;;;;;;;;;1685:25:1;;;1673:2;1658:18;12345:35:0;1539:177:1;20550:487:0;;;;;;;;;;-1:-1:-1;20550:487:0;;;;;:::i;:::-;;:::i;5728:108::-;;;;;;;;;;-1:-1:-1;5816:12:0;;5728:108;;6730:295;;;;;;;;;;-1:-1:-1;6730:295:0;;;;;:::i;:::-;;:::i;19743:294::-;;;;;;;;;;-1:-1:-1;19743:294:0;;;;;:::i;:::-;;:::i;12928:39::-;;;;;;;;;;-1:-1:-1;12928:39:0;;;;-1:-1:-1;;;;;12928:39:0;;;;;;-1:-1:-1;;;;;2614:32:1;;;2596:51;;2584:2;2569:18;12928:39:0;2434:219:1;5627:93:0;;;;;;;;;;-1:-1:-1;5627:93:0;;5710:2;2800:36:1;;2788:2;2773:18;5627:93:0;2658:184:1;7033:270:0;;;;;;;;;;-1:-1:-1;7033:270:0;;;;;:::i;:::-;;:::i;21271:232::-;;;;;;;;;;-1:-1:-1;21271:232:0;;;;;:::i;:::-;;:::i;12642:31::-;;;;;;;;;;;;;;;;12249:39;;;;;;;;;;;;;;;;24360:332;;;;;;;;;;;;;:::i;12021:31::-;;;;;;;;;;-1:-1:-1;12021:31:0;;;;;;;;;;;5844:177;;;;;;;;;;-1:-1:-1;5844:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;5995:18:0;5963:7;5995:18;;;;;;;;;;;;5844:177;880:103;;;;;;;;;;;;;:::i;12550:30::-;;;;;;;;;;;;;;;;12204:38;;;;;;;;;;;;;;;;22006:101;;;;;;;;;;-1:-1:-1;22006:101:0;;;;;:::i;:::-;;:::i;645:87::-;;;;;;;;;;-1:-1:-1;718:6:0;;-1:-1:-1;;;;;718:6:0;645:87;;22115:117;;;;;;;;;;-1:-1:-1;22115:117:0;;;;;:::i;:::-;;:::i;12737:35::-;;;;;;;;;;;;;;;;5515:104;;;;;;;;;;;;;:::i;12434:42::-;;;;;;;;;;;;12472:4;12434:42;;7311:505;;;;;;;;;;-1:-1:-1;7311:505:0;;;;;:::i;:::-;;:::i;12059:30::-;;;;;;;;;;-1:-1:-1;12059:30:0;;;;;;;;;;;18955:91;;;;;;;;;;-1:-1:-1;18955:91:0;;;;;:::i;:::-;;:::i;6029:234::-;;;;;;;;;;-1:-1:-1;6029:234:0;;;;;:::i;:::-;;:::i;12295:41::-;;;;;;;;;;;;;;;;21045:218;;;;;;;;;;-1:-1:-1;21045:218:0;;;;;:::i;:::-;;:::i;20045:497::-;;;;;;;;;;-1:-1:-1;20045:497:0;;;;;:::i;:::-;;:::i;21511:382::-;;;;;;;;;;-1:-1:-1;21511:382:0;;;;;:::i;:::-;;:::i;24700:526::-;;;;;;;;;;-1:-1:-1;24700:526:0;;;;;:::i;:::-;;:::i;17592:1256::-;;;;;;;;;;-1:-1:-1;17592:1256:0;;;;;:::i;:::-;;:::i;17472:112::-;;;;;;;;;;-1:-1:-1;17472:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;17556:20:0;17532:4;17556:20;;;:12;:20;;;;;;;;;17472:112;6271:201;;;;;;;;;;-1:-1:-1;6271:201:0;;;;;:::i;:::-;;:::i;19054:107::-;;;;;;;;;;-1:-1:-1;19054:107:0;;;;;:::i;:::-;;:::i;18856:91::-;;;;;;;;;;-1:-1:-1;18856:91:0;;;;;:::i;:::-;;:::i;19453:282::-;;;;;;;;;;-1:-1:-1;19453:282:0;;;;;:::i;:::-;;:::i;12096:38::-;;;;;;;;;;-1:-1:-1;12096:38:0;;;;;;;;;;;991:238;;;;;;;;;;-1:-1:-1;991:238:0;;;;;:::i;:::-;;:::i;19169:276::-;;;;;;;;;;-1:-1:-1;19169:276:0;;;;;:::i;:::-;;:::i;11962:23::-;;;;;;;;;;-1:-1:-1;11962:23:0;;;;;;;;5407:100;5461:13;5494:5;5487:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5407:100;:::o;6480:242::-;6599:4;173:10;6660:32;173:10;6676:7;6685:6;6660:8;:32::i;:::-;6710:4;6703:11;;;6480:242;;;;;:::o;21901:97::-;604:13;:11;:13::i;:::-;21968:9:::1;:22:::0;21901:97::o;20550:487::-;604:13;:11;:13::i;:::-;-1:-1:-1;;;;;20656:33:0;::::1;20634:111;;;::::0;-1:-1:-1;;;20634:111:0;;5865:2:1;20634:111:0::1;::::0;::::1;5847:21:1::0;5904:2;5884:18;;;5877:30;5943;5923:18;;;5916:58;5991:18;;20634:111:0::1;;;;;;;;;20774:16;::::0;;-1:-1:-1;;;;;20774:16:0;;::::1;20794:5;20756:35:::0;;;:17:::1;:35;::::0;;;;;;;:43;;-1:-1:-1;;20756:43:0;;::::1;::::0;;;20835:16;;;::::1;20810:42:::0;;:24:::1;:42:::0;;;;;;:50;;;::::1;::::0;;20871:45;;-1:-1:-1;;;;;;20871:45:0::1;::::0;;::::1;::::0;;::::1;::::0;;20927:35;;;;;;;;;:42;;;::::1;-1:-1:-1::0;20927:42:0;;::::1;::::0;;;21005:16;;;;::::1;20980:42:::0;;;;;;;:49;;;;::::1;;::::0;;20550:487::o;6730:295::-;6861:4;173:10;6919:38;6935:4;173:10;6950:6;6919:15;:38::i;:::-;6968:27;6978:4;6984:2;6988:6;6968:9;:27::i;:::-;-1:-1:-1;7013:4:0;;6730:295;-1:-1:-1;;;;6730:295:0:o;19743:294::-;604:13;:11;:13::i;:::-;19868:30:::1;19893:4;19868:20;19886:1;19868:13;5816:12:::0;;;5728:108;19868:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;19847:16;:52;;19825:159;;;::::0;-1:-1:-1;;;19825:159:0;;6222:2:1;19825:159:0::1;::::0;::::1;6204:21:1::0;6261:2;6241:18;;;6234:30;6300:34;6280:18;;;6273:62;6371:27;6351:18;;;6344:55;6416:19;;19825:159:0::1;6020:421:1::0;19825:159:0::1;19995:15;:34:::0;19743:294::o;7033:270::-;7148:4;173:10;7209:64;173:10;7225:7;7262:10;7234:25;173:10;7225:7;7234:9;:25::i;:::-;:38;;;;:::i;:::-;7209:8;:64::i;21271:232::-;604:13;:11;:13::i;:::-;21397:9:::1;21392:103;21416:8;:15;21412:1;:19;21392:103;;;21491:4;21451:24;:37;21476:8;21485:1;21476:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21451:37:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21451:37:0;:44;;-1:-1:-1;;21451:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21433:3;::::1;::::0;::::1;:::i;:::-;;;;21392:103;;;;21271:232:::0;;:::o;24360:332::-;604:13;:11;:13::i;:::-;13134:9:::1;:16:::0;;-1:-1:-1;;13134:16:0::1;;;::::0;;24419:101:::2;24485:24;24503:4;-1:-1:-1::0;;;;;5995:18:0;5963:7;5995:18;;;;;;;;;;;;5844:177;24485:24:::2;24419:51;:101::i;:::-;24547:1;24531:13;:17:::0;;;24604:16:::2;::::0;24596:88:::2;::::0;-1:-1:-1;;;;;24604:16:0;;::::2;::::0;24648:21:::2;::::0;24547:1;24596:88;24547:1;24596:88;24648:21;24604:16;24596:88:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13173:9:0::1;:17:::0;;-1:-1:-1;;13173:17:0::1;::::0;;-1:-1:-1;;24360:332:0:o;880:103::-;604:13;:11;:13::i;:::-;945:30:::1;972:1;945:18;:30::i;:::-;880:103::o:0;22006:101::-;604:13;:11;:13::i;:::-;22075:10:::1;:24:::0;22006:101::o;22115:117::-;604:13;:11;:13::i;:::-;22192:14:::1;:32:::0;22115:117::o;5515:104::-;5571:13;5604:7;5597:14;;;;;:::i;7311:505::-;7431:4;173:10;7431:4;7519:25;173:10;7536:7;7519:9;:25::i;:::-;7492:52;;7597:15;7577:16;:35;;7555:122;;;;-1:-1:-1;;;7555:122:0;;7392:2:1;7555:122:0;;;7374:21:1;7431:2;7411:18;;;7404:30;7470:34;7450:18;;;7443:62;-1:-1:-1;;;7521:18:1;;;7514:35;7566:19;;7555:122:0;7190:401:1;7555:122:0;7713:60;7722:5;7729:7;7757:15;7738:16;:34;7713:8;:60::i;18955:91::-;604:13;:11;:13::i;:::-;19019:11:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19019:19:0;;::::1;::::0;;;::::1;::::0;;18955:91::o;6029:234::-;6144:4;173:10;6205:28;173:10;6222:2;6226:6;6205:9;:28::i;21045:218::-;604:13;:11;:13::i;:::-;21164:9:::1;21159:96;21183:8;:15;21179:1;:19;21159:96;;;21251:4;21218:17;:30;21236:8;21245:1;21236:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21218:30:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21218:30:0;:37;;-1:-1:-1;;21218:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21200:3;::::1;::::0;::::1;:::i;:::-;;;;21159:96;;20045:497:::0;604:13;:11;:13::i;:::-;20200:33:::1;20225:7;20200:20;20218:1;20200:13;5816:12:::0;;;5728:108;20200:33:::1;20177:18;:57;;20155:161;;;::::0;-1:-1:-1;;;20155:161:0;;7798:2:1;20155:161:0::1;::::0;::::1;7780:21:1::0;7837:2;7817:18;;;7810:30;7876:34;7856:18;;;7849:62;-1:-1:-1;;;7927:18:1;;;7920:52;7989:19;;20155:161:0::1;7596:418:1::0;20155:161:0::1;20372:30;20397:4;20372:20;20390:1;20372:13;5816:12:::0;;;5728:108;20372:30:::1;20349:18;:54;;20327:156;;;::::0;-1:-1:-1;;;20327:156:0;;8221:2:1;20327:156:0::1;::::0;::::1;8203:21:1::0;8260:2;8240:18;;;8233:30;8299:34;8279:18;;;8272:62;-1:-1:-1;;;8350:18:1;;;8343:50;8410:19;;20327:156:0::1;8019:416:1::0;20327:156:0::1;20494:19;:40:::0;20045:497::o;21511:382::-;604:13;:11;:13::i;:::-;21601:9:::1;21596:290;21620:8;:15;21616:1;:19;21596:290;;;21695:14;::::0;21680:11;;-1:-1:-1;;;;;21695:14:0;;::::1;::::0;21680:8;;21689:1;;21680:11;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;21680:29:0::1;;;21679:96;;;;-1:-1:-1::0;21755:18:0::1;::::0;21732:11;;-1:-1:-1;;;;;21755:18:0;;::::1;::::0;21732:8;;21741:1;;21732:11;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;21732:42:0::1;;;21679:96;:147;;;;;21820:4;-1:-1:-1::0;;;;;21797:28:0::1;:8;21806:1;21797:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;21797:28:0::1;;;21679:147;21657:217;;;21870:4;21842:12;:25;21855:8;21864:1;21855:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;21842:25:0::1;-1:-1:-1::0;;;;;21842:25:0::1;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;21657:217;21637:3:::0;::::1;::::0;::::1;:::i;:::-;;;;21596:290;;24700:526:::0;604:13;:11;:13::i;:::-;24795:4:::1;-1:-1:-1::0;;;;;24780:20:0;::::1;::::0;24772:58:::1;;;::::0;-1:-1:-1;;;24772:58:0;;8642:2:1;24772:58:0::1;::::0;::::1;8624:21:1::0;8681:2;8661:18;;;8654:30;8720:27;8700:18;;;8693:55;8765:18;;24772:58:0::1;8440:349:1::0;24772:58:0::1;24841:12;-1:-1:-1::0;;;;;24868:17:0;::::1;24864:355;;24914:90;::::0;24922:10:::1;::::0;24964:21:::1;::::0;24914:90:::1;::::0;;;24964:21;24922:10;24914:90:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;24700:526:0:o;24864:355::-:1;25043:36;::::0;-1:-1:-1;;;25043:36:0;;25073:4:::1;25043:36;::::0;::::1;2596:51:1::0;25082:1:0::1;::::0;-1:-1:-1;;;;;25043:21:0;::::1;::::0;::::1;::::0;2569:18:1;;25043:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;25035:49;;;::::0;::::1;;25116:36;::::0;-1:-1:-1;;;25116:36:0;;25146:4:::1;25116:36;::::0;::::1;2596:51:1::0;25099:14:0::1;::::0;-1:-1:-1;;;;;25116:21:0;::::1;::::0;::::1;::::0;2569:18:1;;25116:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25167:40;::::0;-1:-1:-1;;;25167:40:0;;25188:10:::1;25167:40;::::0;::::1;9157:51:1::0;9224:18;;;9217:34;;;25099:53:0;;-1:-1:-1;;;;;;25167:20:0;::::1;::::0;::::1;::::0;9130:18:1;;25167:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25020:199;24761:465;24700:526:::0;:::o;17592:1256::-;604:13;:11;:13::i;:::-;17666:11:::1;::::0;::::1;;17665:12;17657:48;;;::::0;-1:-1:-1;;;17657:48:0;;9714:2:1;17657:48:0::1;::::0;::::1;9696:21:1::0;9753:2;9733:18;;;9726:30;9792:25;9772:18;;;9765:53;9835:18;;17657:48:0::1;9512:347:1::0;17657:48:0::1;17734:2;17724:6;:12;;17716:46;;;::::0;-1:-1:-1;;;17716:46:0;;10066:2:1;17716:46:0::1;::::0;::::1;10048:21:1::0;10105:2;10085:18;;;10078:30;-1:-1:-1;;;10124:18:1;;;10117:51;10185:18;;17716:46:0::1;9864:345:1::0;17716:46:0::1;17775:18;:107:::0;;-1:-1:-1;;;;;;17775:107:0::1;17829:42;17775:107:::0;;::::1;::::0;;;17895:67:::1;::::0;17912:4:::1;::::0;17948:13:::1;5816:12:::0;;;5728:108;17895:67:::1;18008:18;;;;;;;;;-1:-1:-1::0;;;;;18008:18:0::1;-1:-1:-1::0;;;;;18008:26:0::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17990:72:0::1;;18071:4;18078:18;;;;;;;;;-1:-1:-1::0;;;;;18078:18:0::1;-1:-1:-1::0;;;;;18078:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17990:114;::::0;-1:-1:-1;;;;;;17990:114:0::1;::::0;;;;;;-1:-1:-1;;;;;10700:15:1;;;17990:114:0::1;::::0;::::1;10682:34:1::0;10752:15;;10732:18;;;10725:43;10617:18;;17990:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17973:14;:131:::0;;-1:-1:-1;;;;;17973:131:0;;::::1;-1:-1:-1::0;;;;;;17973:131:0;;::::1;;::::0;;18115:18:::1;::::0;::::1;:34;18157:21;18202:4;18222:24;18202:4:::0;-1:-1:-1;;;;;5995:18:0;5963:7;5995:18;;;;;;;;;;;;5844:177;18222:24:::1;18261:1;18277::::0;18293:7:::1;718:6:::0;;-1:-1:-1;;;;;718:6:0;;645:87;18293:7:::1;18115:226;::::0;::::1;::::0;;;-1:-1:-1;;;;;;18115:226:0;;;-1:-1:-1;;;;;11138:15:1;;;18115:226:0::1;::::0;::::1;11120:34:1::0;11170:18;;;11163:34;;;;11213:18;;;11206:34;;;;11256:18;;;11249:34;11320:15;;;11299:19;;;11292:44;18315:15:0::1;11352:19:1::0;;;11345:35;11054:19;;18115:226:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;18359:14:0::1;::::0;18405:18:::1;::::0;18352:115:::1;::::0;-1:-1:-1;;;18352:115:0;;-1:-1:-1;;;;;18405:18:0;;::::1;18352:115;::::0;::::1;9157:51:1::0;-1:-1:-1;;9224:18:1;;;9217:34;18359:14:0;::::1;::::0;-1:-1:-1;18352:30:0::1;::::0;9130:18:1;;18352:115:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18495:29;18520:3;18495:20;18513:1;18495:13;5816:12:::0;;;5728:108;18495:29:::1;18480:12;:44:::0;18551:29:::1;18576:3;18551:20;18569:1;18551:13;5816:12:::0;;;5728:108;18551:29:::1;18535:13;:45:::0;18609:29:::1;18634:3;18609:20;18627:1;18609:13;5816:12:::0;;;5728:108;18609:29:::1;18591:15;:47:::0;18671:31:::1;18696:5;18671:20;18689:1;18671:13;5816:12:::0;;;5728:108;18671:31:::1;18649:19;:53:::0;18713:11:::1;:18:::0;;-1:-1:-1;;18742:18:0;;;;;18790:12:::1;18771:16;:31:::0;-1:-1:-1;18813:27:0;17592:1256::o;6271:201::-;-1:-1:-1;;;;;6437:18:0;;;6405:7;6437:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6271:201::o;19054:107::-;604:13;:11;:13::i;:::-;19126:19:::1;:27:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19126:27:0;;::::1;::::0;;;::::1;::::0;;19054:107::o;18856:91::-;604:13;:11;:13::i;:::-;18920:11:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18920:19:0;;::::1;::::0;;;::::1;::::0;;18856:91::o;19453:282::-;604:13;:11;:13::i;:::-;19572:30:::1;19597:4;19572:20;19590:1;19572:13;5816:12:::0;;;5728:108;19572:30:::1;19553:14;:50;;19531:155;;;::::0;-1:-1:-1;;;19531:155:0;;11904:2:1;19531:155:0::1;::::0;::::1;11886:21:1::0;11943:2;11923:18;;;11916:30;11982:34;11962:18;;;11955:62;12053:25;12033:18;;;12026:53;12096:19;;19531:155:0::1;11702:419:1::0;19531:155:0::1;19697:13;:30:::0;19453:282::o;991:238::-;604:13;:11;:13::i;:::-;-1:-1:-1;;;;;1094:22:0;::::1;1072:110;;;::::0;-1:-1:-1;;;1072:110:0;;12328:2:1;1072:110:0::1;::::0;::::1;12310:21:1::0;12367:2;12347:18;;;12340:30;12406:34;12386:18;;;12379:62;-1:-1:-1;;;12457:18:1;;;12450:36;12503:19;;1072:110:0::1;12126:402:1::0;1072:110:0::1;1193:28;1212:8;1193:18;:28::i;:::-;991:238:::0;:::o;19169:276::-;604:13;:11;:13::i;:::-;19285:30:::1;19310:4;19285:20;19303:1;19285:13;5816:12:::0;;;5728:108;19285:30:::1;19267:13;:49;;19245:153;;;::::0;-1:-1:-1;;;19245:153:0;;12735:2:1;19245:153:0::1;::::0;::::1;12717:21:1::0;12774:2;12754:18;;;12747:30;12813:34;12793:18;;;12786:62;-1:-1:-1;;;12864:18:1;;;12857:52;12926:19;;19245:153:0::1;12533:418:1::0;19245:153:0::1;19409:12;:28:::0;19169:276::o;9590:380::-;-1:-1:-1;;;;;9726:19:0;;9718:68;;;;-1:-1:-1;;;9718:68:0;;13158:2:1;9718:68:0;;;13140:21:1;13197:2;13177:18;;;13170:30;13236:34;13216:18;;;13209:62;-1:-1:-1;;;13287:18:1;;;13280:34;13331:19;;9718:68:0;12956:400:1;9718:68:0;-1:-1:-1;;;;;9805:21:0;;9797:68;;;;-1:-1:-1;;;9797:68:0;;13563:2:1;9797:68:0;;;13545:21:1;13602:2;13582:18;;;13575:30;13641:34;13621:18;;;13614:62;-1:-1:-1;;;13692:18:1;;;13685:32;13734:19;;9797:68:0;13361:398:1;9797:68:0;-1:-1:-1;;;;;9878:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9930:32;;1685:25:1;;;9930:32:0;;1658:18:1;9930:32:0;;;;;;;9590:380;;;:::o;740:132::-;718:6;;-1:-1:-1;;;;;718:6:0;173:10;804:23;796:68;;;;-1:-1:-1;;;796:68:0;;13966:2:1;796:68:0;;;13948:21:1;;;13985:18;;;13978:30;14044:34;14024:18;;;14017:62;14096:18;;796:68:0;13764:356:1;9978:502:0;10113:24;10140:25;10150:5;10157:7;10140:9;:25::i;:::-;10113:52;;-1:-1:-1;;10180:16:0;:37;10176:297;;10280:6;10260:16;:26;;10234:117;;;;-1:-1:-1;;;10234:117:0;;14327:2:1;10234:117:0;;;14309:21:1;14366:2;14346:18;;;14339:30;14405:31;14385:18;;;14378:59;14454:18;;10234:117:0;14125:353:1;10234:117:0;10395:51;10404:5;10411:7;10439:6;10420:16;:25;10395:8;:51::i;13751:2655::-;-1:-1:-1;;;;;13883:20:0;;13875:70;;;;-1:-1:-1;;;13875:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13964:18:0;;13956:66;;;;-1:-1:-1;;;13956:66:0;;;;;;;:::i;:::-;14050:1;14041:6;:10;14033:64;;;;-1:-1:-1;;;14033:64:0;;15495:2:1;14033:64:0;;;15477:21:1;15534:2;15514:18;;;15507:30;15573:34;15553:18;;;15546:62;-1:-1:-1;;;15624:18:1;;;15617:39;15673:19;;14033:64:0;15293:405:1;14033:64:0;14174:14;;14125:4;;14110:12;;-1:-1:-1;;;;;14166:22:0;;;14174:14;;14166:22;14165:173;;14247:14;;-1:-1:-1;;;;;14241:20:0;;;14247:14;;14241:20;14240:98;;14314:24;14165:173;;14240:98;14278:20;14165:173;;;14205:19;14165:173;14140:198;;14375:7;718:6;;-1:-1:-1;;;;;718:6:0;;645:87;14375:7;-1:-1:-1;;;;;14367:15:0;:4;-1:-1:-1;;;;;14367:15:0;;;:45;;;;-1:-1:-1;718:6:0;;-1:-1:-1;;;;;14399:13:0;;;718:6;;14399:13;;14367:45;:80;;;;-1:-1:-1;;;;;;14429:18:0;;;;14367:80;:118;;;;-1:-1:-1;;;;;;14464:21:0;;14478:6;14464:21;;14367:118;:145;;;;-1:-1:-1;14503:9:0;;;;;;;14502:10;14367:145;14349:1349;;;-1:-1:-1;;;;;14548:18:0;;;;;;:12;:18;;;;;;;;14547:19;:40;;;;-1:-1:-1;;;;;;14571:16:0;;;;;;:12;:16;;;;;;;;14570:17;14547:40;14539:65;;;;-1:-1:-1;;;14539:65:0;;15905:2:1;14539:65:0;;;15887:21:1;15944:2;15924:18;;;15917:30;-1:-1:-1;;;15963:18:1;;;15956:42;16015:18;;14539:65:0;15703:336:1;14539:65:0;14626:11;;;;14621:184;;-1:-1:-1;;;;;14686:23:0;;;;;;:17;:23;;;;;;;;;:48;;-1:-1:-1;;;;;;14713:21:0;;;;;;:17;:21;;;;;;;;14686:48;14656:149;;;;-1:-1:-1;;;14656:149:0;;16246:2:1;14656:149:0;;;16228:21:1;16285:2;16265:18;;;16258:30;16324:29;16304:18;;;16297:57;16371:18;;14656:149:0;16044:351:1;14656:149:0;14854:19;14844:6;:29;;;;;;;;:::i;:::-;;:83;;;;-1:-1:-1;14908:18:0;;-1:-1:-1;;;;;14894:33:0;;;14908:18;;14894:33;;14844:83;:133;;;;-1:-1:-1;;;;;;14949:28:0;;;;;;:24;:28;;;;;;;;14948:29;14844:133;14822:516;;;15052:12;;15042:6;:22;;15012:137;;;;-1:-1:-1;;;15012:137:0;;16734:2:1;15012:137:0;;;16716:21:1;16773:2;16753:18;;;16746:30;16812:34;16792:18;;;16785:62;-1:-1:-1;;;16863:18:1;;;16856:39;16912:19;;15012:137:0;16532:405:1;15012:137:0;15227:15;;15198:25;15216:6;15198:13;15208:2;-1:-1:-1;;;;;5995:18:0;5963:7;5995:18;;;;;;;;;;;;5844:177;15198:13;:17;;:25::i;:::-;:44;;15168:154;;;;-1:-1:-1;;;15168:154:0;;17144:2:1;15168:154:0;;;17126:21:1;17183:2;17163:18;;;17156:30;17222:34;17202:18;;;17195:62;-1:-1:-1;;;17273:18:1;;;17266:34;17317:19;;15168:154:0;16942:400:1;15168:154:0;15386:20;15376:6;:30;;;;;;;;:::i;:::-;;:86;;;;-1:-1:-1;15443:18:0;;-1:-1:-1;;;;;15427:35:0;;;15443:18;;15427:35;;15376:86;:138;;;;-1:-1:-1;;;;;;15484:30:0;;;;;;:24;:30;;;;;;;;15483:31;15376:138;15354:332;;;15587:13;;15577:6;:23;;15547:139;;;;-1:-1:-1;;;15547:139:0;;17549:2:1;15547:139:0;;;17531:21:1;17588:2;17568:18;;;17561:30;17627:34;17607:18;;;17600:62;-1:-1:-1;;;17678:18:1;;;17671:40;17728:19;;15547:139:0;17347:406:1;15547:139:0;-1:-1:-1;;;;;15728:23:0;;;;;;:17;:23;;;;;;;;;:61;;-1:-1:-1;;;;;;15768:21:0;;;;;;:17;:21;;;;;;;;15728:61;:90;;;-1:-1:-1;15807:11:0;;;;;;;15806:12;15728:90;:167;;;-1:-1:-1;15837:19:0;;;;;;;15836:20;:58;;;;-1:-1:-1;15870:24:0;15860:6;:34;;;;;;;;:::i;:::-;;15836:58;15710:212;;;15917:5;15907:15;;15710:212;15979:4;15935:23;5995:18;;;;;;;;;;;15935:50;;15996:12;16030:19;;16012:15;:37;16011:88;;;;-1:-1:-1;16078:20:0;16068:6;:30;;;;;;;;:::i;:::-;;16011:88;15996:103;;16130:7;:35;;;;-1:-1:-1;16154:11:0;;;;;;;16130:35;:62;;;;-1:-1:-1;16183:9:0;;;;;;;16182:10;16130:62;:103;;;;-1:-1:-1;;;;;;16210:23:0;;;;;;:17;:23;;;;;;;;16209:24;16130:103;:142;;;;-1:-1:-1;;;;;;16251:21:0;;;;;;:17;:21;;;;;;;;16250:22;16130:142;16112:225;;;16299:26;16309:15;16299:9;:26::i;:::-;16349:49;16364:4;16370:2;16374:6;16382:7;16391:6;16349:14;:49::i;:::-;13864:2542;;;;13751:2655;;;:::o;2947:98::-;3005:7;3032:5;3036:1;3032;:5;:::i;:::-;3025:12;2947:98;-1:-1:-1;;;2947:98:0:o;3053:::-;3111:7;3138:5;3142:1;3138;:5;:::i;16932:532::-;17074:16;;;17088:1;17074:16;;;;;;;;17050:21;;17074:16;;;;;;;;;;-1:-1:-1;17074:16:0;17050:40;;17119:4;17101;17106:1;17101:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17101:23:0;;;:7;;;;;;;;;;:23;;;;17145:18;;:25;;;-1:-1:-1;;;17145:25:0;;;;:18;;;;;:23;;:25;;;;;17101:7;;17145:25;;;;;:18;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17135:4;17140:1;17135:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17135:35:0;;;:7;;;;;;;;;:35;17213:18;;17181:65;;17198:4;;17213:18;17234:11;17181:8;:65::i;:::-;17257:18;;:199;;-1:-1:-1;;;17257:199:0;;-1:-1:-1;;;;;17257:18:0;;;;:69;;:199;;17341:11;;17257:18;;17383:4;;17410;;17430:15;;17257:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17039:425;16932:532;:::o;1237:191::-;1330:6;;;-1:-1:-1;;;;;1347:17:0;;;-1:-1:-1;;;;;;1347:17:0;;;;;;;1380:40;;1330:6;;;1347:17;1330:6;;1380:40;;1311:16;;1380:40;1300:128;1237:191;:::o;2735:98::-;2793:7;2820:5;2824:1;2820;:5;:::i;16414:510::-;13134:9;:16;;-1:-1:-1;;13134:16:0;;;;;;16520:20;;;:42:::1;;-1:-1:-1::0;16544:13:0::1;::::0;:18;16520:42:::1;16516:55;;;16564:7;;;16516:55;16605:19;::::0;:26:::1;::::0;16629:1:::1;16605:23;:26::i;:::-;16587:15;:44;16583:107;;;16664:19;::::0;:26:::1;::::0;16688:1:::1;16664:23;:26::i;:::-;16646:44;;16583:107;16703:68;16755:15;16703:51;:68::i;:::-;16800:1;16784:13;:17:::0;;;16836:16:::1;::::0;16828:88:::1;::::0;-1:-1:-1;;;;;16836:16:0;;::::1;::::0;16880:21:::1;::::0;16828:88;;16800:1;16828:88;16880:21;16836:16;16828:88:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;13161:1:0::1;-1:-1:-1::0;13173:9:0;:17;;-1:-1:-1;;13173:17:0;;;16414:510::o;22772:378::-;22962:7;22957:87;;22971:15;:13;:15::i;:::-;22957:87;;;23011:33;23021:6;23029;23037;23011:9;:33::i;:::-;23002:42;;22957:87;23057:42;23073:6;23081:9;23092:6;23057:15;:42::i;:::-;23117:7;23112:30;;23126:16;22644:18;;22632:9;:30;22686:19;;22673:10;:32;22733:23;;22716:14;:40;22586:178;22240:338;22289:9;;:14;:33;;;;-1:-1:-1;22307:10:0;;:15;22289:33;:56;;;;-1:-1:-1;22326:14:0;;:19;22289:56;22285:69;;;22240:338::o;22285:69::-;22387:9;;;22366:18;:30;22429:10;;;22407:19;:32;22476:14;;;22450:23;:40;-1:-1:-1;22503:13:0;;;;22527:14;;;;22552:18;22240:338::o;23158:768::-;23285:7;23352:12;23309:40;23330:18;;23309:16;;:20;;:40;;;;:::i;:::-;:55;23305:313;;;23366:9;23983:3;23973:7;:13;;;23997:10;:20;23934:91;23366:9;23305:313;;;23405:20;23395:6;:30;;;;;;;;:::i;:::-;;23391:227;;23427:10;24083;;24073:7;:20;;;24104:10;:20;24033:99;23391:227;23467:19;23457:6;:29;;;;;;;;:::i;:::-;;23453:165;;23488:9;24189;;24179:7;:19;;;24209:10;:20;24140:97;23453:165;23527:24;23517:6;:34;;;;;;;;:::i;:::-;;23513:105;;23553:14;24299;;24289:7;:24;;;24324:10;:20;24245:107;23513:105;23583:35;;-1:-1:-1;;;23583:35:0;;19340:2:1;23583:35:0;;;19322:21:1;19379:2;19359:18;;;19352:30;19418:27;19398:18;;;19391:55;19463:18;;23583:35:0;19138:349:1;23513:105:0;23658:10;;23631:12;;23658:14;23654:160;;23696:39;12472:4;23696:22;23707:10;;23696:6;:10;;:22;;;;:::i;:39::-;23689:46;;23767:35;23791:10;;23768:17;23777:7;;23768:4;:8;;:17;;;;:::i;23767:35::-;23750:13;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;23654:160:0;23830:8;;23826:58;;23840:44;23856:6;23872:4;23879;23840:15;:44::i;:::-;23904:14;23914:4;23904:14;;:::i;:::-;;23158:768;-1:-1:-1;;;;;23158:768:0:o;7824:712::-;-1:-1:-1;;;;;7955:18:0;;7947:68;;;;-1:-1:-1;;;7947:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8034:16:0;;8026:64;;;;-1:-1:-1;;;8026:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8176:15:0;;8154:19;8176:15;;;;;;;;;;;8224:21;;;;8202:109;;;;-1:-1:-1;;;8202:109:0;;19827:2:1;8202:109:0;;;19809:21:1;19866:2;19846:18;;;19839:30;19905:34;19885:18;;;19878:62;-1:-1:-1;;;19956:18:1;;;19949:36;20002:19;;8202:109:0;19625:402:1;8202:109:0;-1:-1:-1;;;;;8347:15:0;;;:9;:15;;;;;;;;;;;8365:20;;;8347:38;;8400:13;;;;;;;;;;:23;;;;;;8452:26;;1685:25:1;;;8400:13:0;;8452:26;;1658:18:1;8452:26:0;;;;;;;8491:37;21271:232;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:180::-;1413:6;1466:2;1454:9;1445:7;1441:23;1437:32;1434:52;;;1482:1;1479;1472:12;1434:52;-1:-1:-1;1505:23:1;;1354:180;-1:-1:-1;1354:180:1:o;1721:247::-;1780:6;1833:2;1821:9;1812:7;1808:23;1804:32;1801:52;;;1849:1;1846;1839:12;1801:52;1888:9;1875:23;1907:31;1932:5;1907:31;:::i;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2847:127::-;2908:10;2903:3;2899:20;2896:1;2889:31;2939:4;2936:1;2929:15;2963:4;2960:1;2953:15;2979:118;3065:5;3058:13;3051:21;3044:5;3041:32;3031:60;;3087:1;3084;3077:12;3102:128;3167:20;;3196:28;3167:20;3196:28;:::i;3235:1191::-;3325:6;3333;3386:2;3374:9;3365:7;3361:23;3357:32;3354:52;;;3402:1;3399;3392:12;3354:52;3442:9;3429:23;3471:18;3512:2;3504:6;3501:14;3498:34;;;3528:1;3525;3518:12;3498:34;3566:6;3555:9;3551:22;3541:32;;3611:7;3604:4;3600:2;3596:13;3592:27;3582:55;;3633:1;3630;3623:12;3582:55;3669:2;3656:16;3691:4;3714:2;3710;3707:10;3704:36;;;3720:18;;:::i;:::-;3766:2;3763:1;3759:10;3798:2;3792:9;3861:2;3857:7;3852:2;3848;3844:11;3840:25;3832:6;3828:38;3916:6;3904:10;3901:22;3896:2;3884:10;3881:18;3878:46;3875:72;;;3927:18;;:::i;:::-;3963:2;3956:22;4013:18;;;4047:15;;;;-1:-1:-1;4089:11:1;;;4085:20;;;4117:19;;;4114:39;;;4149:1;4146;4139:12;4114:39;4173:11;;;;4193:148;4209:6;4204:3;4201:15;4193:148;;;4275:23;4294:3;4275:23;:::i;:::-;4263:36;;4226:12;;;;4319;;;;4193:148;;;4360:6;-1:-1:-1;4385:35:1;;-1:-1:-1;4401:18:1;;;4385:35;:::i;:::-;4375:45;;;;;;3235:1191;;;;;:::o;4639:241::-;4695:6;4748:2;4736:9;4727:7;4723:23;4719:32;4716:52;;;4764:1;4761;4754:12;4716:52;4803:9;4790:23;4822:28;4844:5;4822:28;:::i;4885:388::-;4953:6;4961;5014:2;5002:9;4993:7;4989:23;4985:32;4982:52;;;5030:1;5027;5020:12;4982:52;5069:9;5056:23;5088:31;5113:5;5088:31;:::i;:::-;5138:5;-1:-1:-1;5195:2:1;5180:18;;5167:32;5208:33;5167:32;5208:33;:::i;:::-;5260:7;5250:17;;;4885:388;;;;;:::o;5278:380::-;5357:1;5353:12;;;;5400;;;5421:61;;5475:4;5467:6;5463:17;5453:27;;5421:61;5528:2;5520:6;5517:14;5497:18;5494:38;5491:161;;5574:10;5569:3;5565:20;5562:1;5555:31;5609:4;5606:1;5599:15;5637:4;5634:1;5627:15;5491:161;;5278:380;;;:::o;6446:127::-;6507:10;6502:3;6498:20;6495:1;6488:31;6538:4;6535:1;6528:15;6562:4;6559:1;6552:15;6578:125;6643:9;;;6664:10;;;6661:36;;;6677:18;;:::i;6708:127::-;6769:10;6764:3;6760:20;6757:1;6750:31;6800:4;6797:1;6790:15;6824:4;6821:1;6814:15;6840:135;6879:3;6900:17;;;6897:43;;6920:18;;:::i;:::-;-1:-1:-1;6967:1:1;6956:13;;6840:135::o;8794:184::-;8864:6;8917:2;8905:9;8896:7;8892:23;8888:32;8885:52;;;8933:1;8930;8923:12;8885:52;-1:-1:-1;8956:16:1;;8794:184;-1:-1:-1;8794:184:1:o;9262:245::-;9329:6;9382:2;9370:9;9361:7;9357:23;9353:32;9350:52;;;9398:1;9395;9388:12;9350:52;9430:9;9424:16;9449:28;9471:5;9449:28;:::i;10214:251::-;10284:6;10337:2;10325:9;10316:7;10312:23;10308:32;10305:52;;;10353:1;10350;10343:12;10305:52;10385:9;10379:16;10404:31;10429:5;10404:31;:::i;11391:306::-;11479:6;11487;11495;11548:2;11536:9;11527:7;11523:23;11519:32;11516:52;;;11564:1;11561;11554:12;11516:52;11593:9;11587:16;11577:26;;11643:2;11632:9;11628:18;11622:25;11612:35;;11687:2;11676:9;11672:18;11666:25;11656:35;;11391:306;;;;;:::o;14483:401::-;14685:2;14667:21;;;14724:2;14704:18;;;14697:30;14763:34;14758:2;14743:18;;14736:62;-1:-1:-1;;;14829:2:1;14814:18;;14807:35;14874:3;14859:19;;14483:401::o;14889:399::-;15091:2;15073:21;;;15130:2;15110:18;;;15103:30;15169:34;15164:2;15149:18;;15142:62;-1:-1:-1;;;15235:2:1;15220:18;;15213:33;15278:3;15263:19;;14889:399::o;16400:127::-;16461:10;16456:3;16452:20;16449:1;16442:31;16492:4;16489:1;16482:15;16516:4;16513:1;16506:15;17758:168;17831:9;;;17862;;17879:15;;;17873:22;;17859:37;17849:71;;17900:18;;:::i;17931:217::-;17971:1;17997;17987:132;;18041:10;18036:3;18032:20;18029:1;18022:31;18076:4;18073:1;18066:15;18104:4;18101:1;18094:15;17987:132;-1:-1:-1;18133:9:1;;17931:217::o;18153:980::-;18415:4;18463:3;18452:9;18448:19;18494:6;18483:9;18476:25;18520:2;18558:6;18553:2;18542:9;18538:18;18531:34;18601:3;18596:2;18585:9;18581:18;18574:31;18625:6;18660;18654:13;18691:6;18683;18676:22;18729:3;18718:9;18714:19;18707:26;;18768:2;18760:6;18756:15;18742:29;;18789:1;18799:195;18813:6;18810:1;18807:13;18799:195;;;18878:13;;-1:-1:-1;;;;;18874:39:1;18862:52;;18969:15;;;;18934:12;;;;18910:1;18828:9;18799:195;;;-1:-1:-1;;;;;;;19050:32:1;;;;19045:2;19030:18;;19023:60;-1:-1:-1;;;19114:3:1;19099:19;19092:35;19011:3;18153:980;-1:-1:-1;;;18153:980:1:o;19492:128::-;19559:9;;;19580:11;;;19577:37;;;19594:18;;:::i
Swarm Source
ipfs://5eb2994e98d46d3cca628c9735c7b719adea4d4b5b5f3c8d2a1b33a04d3481c6
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.