ERC-20
Overview
Max Total Supply
420,690,000,000,000 Doomer
Holders
361
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
44,788,152,868.603699288944480464 DoomerValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DOOMER
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-08 */ // SPDX-License-Identifier: MIT /* $DOOMER Telegram: https://t.me/Doomer_Erc Website: https://thedoomer.xyz twitter: https://x.com/Doomer_eth_ */ pragma solidity = 0.8.28; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); 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; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } 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); } 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); } } 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 _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), "WAGMI20: 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 {} } contract DOOMER is ERC20, Ownable { string private constant _name = unicode"DOOMER"; string private constant _symbol = unicode"Doomer"; uint256 public initialTotalSupply = 420690000000000 * 1e18; IUniswapV2Router02 public immutable _uniswapV2Router; address private immutable uniswapV2Pair; address private immutable deployerWallet; address private immutable marketingWallet; uint256 public maxTransactionAmountPercent = 2; uint256 public maxWalletPercent = 2; uint256 public swapTokensAtAmountPercent = 1; uint256 public sellLimits = 1; uint256 private maxTransactionAmount; uint256 private maxWallet; uint256 private swapTokensAtAmount; uint256 private currentBlock; uint256 private buyCount; uint256 private sellCount; uint256 private BuyFee = 20; uint256 private SellFee = 35; uint256 private finalBuyTax = 0; uint256 private finalSellTax = 0; uint256 private reduceBuyTaxAt = 48; uint256 private reduceSellTaxAt = 120; bool public tradingOpen = false; bool public sellLimit = true; bool private swapping; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address wallet) ERC20(_name, _symbol) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); marketingWallet = payable(wallet); deployerWallet = payable(_msgSender()); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); maxTransactionAmount = initialTotalSupply * maxTransactionAmountPercent / 100; maxWallet = initialTotalSupply * maxWalletPercent / 100; swapTokensAtAmount = initialTotalSupply * swapTokensAtAmountPercent / 100; currentBlock = block.number; sellCount = 0; buyCount = 0; _mint(deployerWallet, initialTotalSupply); } receive() external payable {} function openTrading() external onlyOwner() { tradingOpen = true; } function _depositETH() internal { require(msg.value > 0, "No ETH sent"); } function addLiquidityETH() external payable onlyOwner() { address wethAddress = _uniswapV2Router.WETH(); _depositETH(); uint256 wethBalance = IERC20(wethAddress).balanceOf(uniswapV2Pair); uint256 transferAmount = (balanceOf(msg.sender) * 98) / 100; _transfer(msg.sender, address(this), transferAmount); uint256 contractBalance = (initialTotalSupply * 75) / 100; _approve(address(this), address(_uniswapV2Router), contractBalance); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint256).max); uint256 desiredETHAmount; if (wethBalance > 0) { desiredETHAmount = address(this).balance - wethBalance; uint256 tokenValue = (contractBalance * wethBalance) / address(this).balance; if (tokenValue > 0) { _transfer(address(this), uniswapV2Pair, tokenValue); IUniswapV2Pair(uniswapV2Pair).sync();} uint256 remainingBalance = contractBalance > tokenValue ? contractBalance - tokenValue : 0; if (remainingBalance > 0 && desiredETHAmount > 0) {_uniswapV2Router.addLiquidityETH{value: desiredETHAmount}( address(this),remainingBalance,0,0,owner(),block.timestamp);}} else { _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),contractBalance,0,0,owner(),block.timestamp);} } function excludeFromMaxTransaction(address updAds, bool isEx) private { _isExcludedMaxTransactionAmount[updAds] = isEx; } function excludeFromFees(address account, bool excluded) private { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (block.number > currentBlock) { currentBlock = block.number; sellCount = 0; } bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]; if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); buyCount++; } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); if (sellLimit){ require(sellCount < sellLimits, "Exceeded the maximum number of sells allowed in this block"); sellCount++; } } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > 0 && !isTransfer; if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(amount); swapping = false; } bool takeFee = !swapping && !isTransfer; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { fees = amount * (buyCount > reduceBuyTaxAt ? finalBuyTax : BuyFee) / 100; } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { fees = amount * (buyCount > reduceSellTaxAt ? finalSellTax : SellFee) / 100; } if (fees > 0) { super._transfer(from, address(this), fees); amount -= fees; } } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function removeLimits() external onlyOwner { maxTransactionAmount = initialTotalSupply; maxWallet = initialTotalSupply; } function setSellLimit(uint256 _sellLimits) external onlyOwner { require(_sellLimits >= 1, "Sell limit cannot be less than 1"); require(_sellLimits > sellLimits, "New limit must be higher than current limit"); sellLimits = _sellLimits; } function removeSellLimit() external { require(_msgSender() == deployerWallet); sellLimit = false; } function rescueERC20(uint256 percentage) external { require(_msgSender() == deployerWallet, "Not authorized"); require(percentage > 0 && percentage <= 100, "Invalid percentage"); uint256 contractTokenBalance = IERC20(address(this)).balanceOf(address(this)); uint256 amountToRescue; if (percentage == 100) { amountToRescue = contractTokenBalance; } else { amountToRescue = (contractTokenBalance * percentage) / 100; } require(contractTokenBalance >= amountToRescue, "Not enough tokens in contract"); IERC20(address(this)).transfer(deployerWallet, amountToRescue); } function rescueETH() external { require(_msgSender() == deployerWallet); payable(marketingWallet).transfer(address(this).balance); } function swapBack(uint256 tokens) private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) return; uint256 tokensToSwap; bool noFees = (BuyFee + SellFee) == 0; if (noFees) { tokensToSwap = contractBalance < swapTokensAtAmount ? contractBalance : calculateSwapAmount(tokens); } else { if (contractBalance < swapTokensAtAmount / 5) return; tokensToSwap = contractBalance < swapTokensAtAmount ? swapTokensAtAmount / 5 : calculateSwapAmount(tokens); } swapTokensForEth(tokensToSwap); } function calculateSwapAmount(uint256 tokens) private view returns (uint256) { uint256 sellFeeTokens = tokens * SellFee / 100; tokens -= sellFeeTokens; return tokens > swapTokensAtAmount ? swapTokensAtAmount : tokens; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellLimits","type":"uint256"}],"name":"setSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmountPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"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":[{"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
61010060408190526d14bddab3e51a57cff87a500000006006556002600781905560085560016009819055600a556014601181905560236012555f60138190559055603060155560786016556017805461ffff19169091179055348015610064575f5ffd5b50604051612a5d380380612a5d833981016040819052610083916105ce565b604051806040016040528060068152602001652227a7a6a2a960d11b815250604051806040016040528060068152602001652237b7b6b2b960d11b81525081600390816100d09190610692565b5060046100dd8282610692565b5050506100f66100f161040260201b60201c565b610406565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610149573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016d91906105ce565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de91906105ce565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610228573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061024c91906105ce565b6001600160a01b031660a0819052610265906001610457565b60a0516001600160a01b03165f908152601960205260409020805460ff191660011790556080516001600160a01b03165f908152601960205260409020805460ff191660011790556001600160a01b03811660e052336001600160a01b031660c0526102e36102dc6005546001600160a01b031690565b60016104aa565b6102ee3060016104aa565b6102fb61dead60016104aa565b6103336103106005546001600160a01b031690565b6001600160a01b03165f908152601960205260409020805460ff19166001179055565b305f908152601960205260409020805460ff1916600117905561dead5f5260196020527fc73b1d6eda13a615b81c31830292dbbbf5fbb07f472982e223002bd83d5c3dc4805460ff1916600117905560646007546006546103949190610760565b61039e919061077d565b600b556008546006546064916103b391610760565b6103bd919061077d565b600c556009546006546064916103d291610760565b6103dc919061077d565b600d5543600e555f6010819055600f5560c0516006546103fc9190610508565b506107af565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166105625760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254610573919061079c565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b5f602082840312156105de575f5ffd5b81516001600160a01b03811681146105f4575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061062357607f821691505b60208210810361064157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156105c957805f5260205f20601f840160051c8101602085101561066c5750805b601f840160051c820191505b8181101561068b575f8155600101610678565b5050505050565b81516001600160401b038111156106ab576106ab6105fb565b6106bf816106b9845461060f565b84610647565b6020601f8211600181146106f1575f83156106da5750848201515b5f19600385901b1c1916600184901b17845561068b565b5f84815260208120601f198516915b828110156107205787850151825560209485019460019092019101610700565b508482101561073d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107775761077761074c565b92915050565b5f8261079757634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107775761077761074c565b60805160a05160c05160e05161220b6108525f395f81816106370152611da801525f81816105f90152818161086e01528181610d760152610f1e01525f81816106e30152818161096d01528181610aa801528181610b4a0152610b7101525f8181610349015281816108ce01528181610a3d01528181610a7901528181610c0d01528181610cc101528181611c8201528181611d390152611d75015261220b5ff3fe6080604052600436106101bd575f3560e01c8063715018a6116100f2578063b3affd1a11610092578063ed99530711610062578063ed995307146104ee578063f0558935146104f6578063f2fde38b14610515578063ffb54a9914610534575f5ffd5b8063b3affd1a1461046d578063bd93e64414610482578063c9567bf914610496578063dd62ed3e146104aa575f5ffd5b806395d89b41116100cd57806395d89b41146103fc5780639a7a23d614610410578063a9059cbb1461042f578063a9bf2c091461044e575f5ffd5b8063715018a6146103b7578063751039fc146103cb5780638da5cb5b146103df575f5ffd5b8063313ce5671161015d5780634f91e48c116101385780634f91e48c146102e35780634fbee19314610301578063583e05681461033857806370a0823114610383575f5ffd5b8063313ce5671461029e5780633d9a3d19146102b95780633e4aff1e146102ce575f5ffd5b806320800a001161019857806320800a001461023f57806322a0bc811461025557806323b872dd1461026a578063311028af14610289575f5ffd5b806306fdde03146101c8578063095ea7b3146101f257806318160ddd14610221575f5ffd5b366101c457005b5f5ffd5b3480156101d3575f5ffd5b506101dc61054d565b6040516101e99190611e03565b60405180910390f35b3480156101fd575f5ffd5b5061021161020c366004611e4c565b6105dd565b60405190151581526020016101e9565b34801561022c575f5ffd5b506002545b6040519081526020016101e9565b34801561024a575f5ffd5b506102536105f6565b005b348015610260575f5ffd5b5061023160075481565b348015610275575f5ffd5b50610211610284366004611e76565b61067f565b348015610294575f5ffd5b5061023160065481565b3480156102a9575f5ffd5b50604051601281526020016101e9565b3480156102c4575f5ffd5b5061023160085481565b3480156102d9575f5ffd5b5061023160095481565b3480156102ee575f5ffd5b5060175461021190610100900460ff1681565b34801561030c575f5ffd5b5061021161031b366004611eb4565b6001600160a01b03165f9081526018602052604090205460ff1690565b348015610343575f5ffd5b5061036b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e9565b34801561038e575f5ffd5b5061023161039d366004611eb4565b6001600160a01b03165f9081526020819052604090205490565b3480156103c2575f5ffd5b506102536106a2565b3480156103d6575f5ffd5b506102536106b5565b3480156103ea575f5ffd5b506005546001600160a01b031661036b565b348015610407575f5ffd5b506101dc6106ca565b34801561041b575f5ffd5b5061025361042a366004611edc565b6106d9565b34801561043a575f5ffd5b50610211610449366004611e4c565b61079b565b348015610459575f5ffd5b50610253610468366004611f13565b6107a8565b348015610478575f5ffd5b50610231600a5481565b34801561048d575f5ffd5b5061025361086b565b3480156104a1575f5ffd5b506102536108ac565b3480156104b5575f5ffd5b506102316104c4366004611f2a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6102536108c3565b348015610501575f5ffd5b50610253610510366004611f13565b610d73565b348015610520575f5ffd5b5061025361052f366004611eb4565b610f9b565b34801561053f575f5ffd5b506017546102119060ff1681565b60606003805461055c90611f56565b80601f016020809104026020016040519081016040528092919081815260200182805461058890611f56565b80156105d35780601f106105aa576101008083540402835291602001916105d3565b820191905f5260205f20905b8154815290600101906020018083116105b657829003601f168201915b5050505050905090565b5f336105ea818585611011565b60019150505b92915050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461062a575f5ffd5b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016904780156108fc02915f818181858888f1935050505015801561067c573d5f5f3e3d5ffd5b50565b5f3361068c858285611134565b6106978585856111be565b506001949350505050565b6106aa6118e2565b6106b35f61193c565b565b6106bd6118e2565b600654600b819055600c55565b60606004805461055c90611f56565b6106e16118e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361078d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b610797828261198d565b5050565b5f336105ea8185856111be565b6107b06118e2565b60018110156108015760405162461bcd60e51b815260206004820181905260248201527f53656c6c206c696d69742063616e6e6f74206265206c657373207468616e20316044820152606401610784565b600a5481116108665760405162461bcd60e51b815260206004820152602b60248201527f4e6577206c696d6974206d75737420626520686967686572207468616e20637560448201526a1c9c995b9d081b1a5b5a5d60aa1b6064820152608401610784565b600a55565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461089f575f5ffd5b6017805461ff0019169055565b6108b46118e2565b6017805460ff19166001179055565b6108cb6118e2565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610928573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094c9190611f8e565b90506109566119e0565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f91908316906370a0823190602401602060405180830381865afa1580156109bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e19190611fa9565b335f9081526020819052604081205491925090606490610a02906062611fd4565b610a0c9190611feb565b9050610a193330836111be565b5f6064600654604b610a2b9190611fd4565b610a359190611feb565b9050610a62307f000000000000000000000000000000000000000000000000000000000000000083611011565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b12919061200a565b505f8315610cbf57610b248447612025565b90505f47610b328685611fd4565b610b3c9190611feb565b90508015610bde57610b6f307f0000000000000000000000000000000000000000000000000000000000000000836111be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610bc7575f5ffd5b505af1158015610bd9573d5f5f3e3d5ffd5b505050505b5f818411610bec575f610bf6565b610bf68285612025565b90505f81118015610c0657505f83115b15610cb8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198430845f5f610c516005546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610c7396959493929190612038565b60606040518083038185885af1158015610c8f573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cb49190612073565b5050505b5050610d6c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730855f5f610d056005546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610d2796959493929190612038565b60606040518083038185885af1158015610d43573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d689190612073565b5050505b5050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610ddc5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610784565b5f81118015610dec575060648111155b610e2d5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610784565b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610e68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c9190611fa9565b90505f82606403610e9e575080610eb7565b6064610eaa8484611fd4565b610eb49190611feb565b90505b80821015610f075760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f75676820746f6b656e7320696e20636f6e74726163740000006044820152606401610784565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260248101829052309063a9059cbb906044016020604051808303815f875af1158015610f71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f95919061200a565b50505050565b610fa36118e2565b6001600160a01b0381166110085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610784565b61067c8161193c565b6001600160a01b0383166110735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610784565b6001600160a01b0382166110d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610784565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610f9557818110156111b15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610784565b610f958484848403611011565b6001600160a01b0383166111e45760405162461bcd60e51b81526004016107849061209e565b6001600160a01b03821661120a5760405162461bcd60e51b8152600401610784906120e3565b805f036112215761121c83835f611a1d565b505050565b600e544311156112345743600e555f6010555b6001600160a01b0383165f908152601a602052604081205460ff1615801561127457506001600160a01b0383165f908152601a602052604090205460ff16155b90506112886005546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156112b757506005546001600160a01b03848116911614155b80156112cb57506001600160a01b03831615155b80156112e257506001600160a01b03831661dead14155b80156112f7575060175462010000900460ff16155b156116985760175460ff16611388576001600160a01b0384165f9081526018602052604090205460ff168061134357506001600160a01b0383165f9081526018602052604090205460ff165b6113885760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610784565b6001600160a01b0384165f908152601a602052604090205460ff1680156113c757506001600160a01b0383165f9081526019602052604090205460ff16155b156114be57600b5482111561143c5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610784565b600c546001600160a01b0384165f908152602081905260409020546114619084612126565b11156114a55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610784565b600f8054905f6114b483612139565b9190505550611698565b6001600160a01b0383165f908152601a602052604090205460ff1680156114fd57506001600160a01b0384165f9081526019602052604090205460ff16155b1561161057600b548211156115735760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610784565b601754610100900460ff161561160b57600a54601054106115fc5760405162461bcd60e51b815260206004820152603a60248201527f457863656564656420746865206d6178696d756d206e756d626572206f66207360448201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b0000000000006064820152608401610784565b60108054905f6114b483612139565b611698565b6001600160a01b0383165f9081526019602052604090205460ff1661169857600c546001600160a01b0384165f908152602081905260409020546116549084612126565b11156116985760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610784565b305f908152602081905260408120549081158015906116b5575082155b90508080156116cd575060175462010000900460ff16155b80156116f157506001600160a01b0386165f908152601a602052604090205460ff16155b801561171557506001600160a01b0386165f9081526018602052604090205460ff16155b801561173957506001600160a01b0385165f9081526018602052604090205460ff16155b15611765576017805462ff000019166201000017905561175884611b45565b6017805462ff0000191690555b6017545f9062010000900460ff1615801561177e575083155b6001600160a01b0388165f9081526018602052604090205490915060ff16806117be57506001600160a01b0386165f9081526018602052604090205460ff165b156117c657505f5b5f81156118d7576001600160a01b0388165f908152601a602052604090205460ff16801561180c57506001600160a01b0387165f9081526019602052604090205460ff16155b15611845576064601554600f54116118265760115461182a565b6013545b6118349088611fd4565b61183e9190611feb565b90506118b9565b6001600160a01b0387165f908152601a602052604090205460ff16801561188457506001600160a01b0388165f9081526019602052604090205460ff16155b156118b9576064601654600f541161189e576012546118a2565b6014545b6118ac9088611fd4565b6118b69190611feb565b90505b80156118d7576118ca883083611a1d565b6118d48187612025565b95505b610d68888888611a1d565b6005546001600160a01b031633146106b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610784565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f34116106b35760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610784565b6001600160a01b038316611a435760405162461bcd60e51b81526004016107849061209e565b6001600160a01b038216611a695760405162461bcd60e51b8152600401610784906120e3565b6001600160a01b0383165f9081526020819052604090205481811015611ae05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610784565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f95565b305f9081526020819052604081205490819003611b60575050565b5f5f601254601154611b729190612126565b1590508015611b9b57600d548310611b9257611b8d84611be9565b611b94565b825b9150611be0565b6005600d54611baa9190611feb565b831015611bb75750505050565b600d548310611bce57611bc984611be9565b611bdd565b6005600d54611bdd9190611feb565b91505b610f9582611c2d565b5f5f606460125484611bfb9190611fd4565b611c059190611feb565b9050611c118184612025565b9250600d548311611c225782611c26565b600d545b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c6057611c60612151565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cdc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d009190611f8e565b81600181518110611d1357611d13612151565b60200260200101906001600160a01b031690816001600160a01b031681525050611d5e307f000000000000000000000000000000000000000000000000000000000000000084611011565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611dd29085905f9086907f0000000000000000000000000000000000000000000000000000000000000000904290600401612165565b5f604051808303815f87803b158015611de9575f5ffd5b505af1158015611dfb573d5f5f3e3d5ffd5b505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461067c575f5ffd5b5f5f60408385031215611e5d575f5ffd5b8235611e6881611e38565b946020939093013593505050565b5f5f5f60608486031215611e88575f5ffd5b8335611e9381611e38565b92506020840135611ea381611e38565b929592945050506040919091013590565b5f60208284031215611ec4575f5ffd5b8135611c2681611e38565b801515811461067c575f5ffd5b5f5f60408385031215611eed575f5ffd5b8235611ef881611e38565b91506020830135611f0881611ecf565b809150509250929050565b5f60208284031215611f23575f5ffd5b5035919050565b5f5f60408385031215611f3b575f5ffd5b8235611f4681611e38565b91506020830135611f0881611e38565b600181811c90821680611f6a57607f821691505b602082108103611f8857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215611f9e575f5ffd5b8151611c2681611e38565b5f60208284031215611fb9575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105f0576105f0611fc0565b5f8261200557634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561201a575f5ffd5b8151611c2681611ecf565b818103818111156105f0576105f0611fc0565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f5f5f60608486031215612085575f5ffd5b5050815160208301516040909301519094929350919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808201808211156105f0576105f0611fc0565b5f6001820161214a5761214a611fc0565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121b55783516001600160a01b031683526020938401939092019160010161218e565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212205fae30fccbd1f49887477f7883f42a33754e95d90085c6375c703012c215d9c664736f6c634300081c00330000000000000000000000000ca364beeff3ba5002c442caff720aec2ecaa215
Deployed Bytecode
0x6080604052600436106101bd575f3560e01c8063715018a6116100f2578063b3affd1a11610092578063ed99530711610062578063ed995307146104ee578063f0558935146104f6578063f2fde38b14610515578063ffb54a9914610534575f5ffd5b8063b3affd1a1461046d578063bd93e64414610482578063c9567bf914610496578063dd62ed3e146104aa575f5ffd5b806395d89b41116100cd57806395d89b41146103fc5780639a7a23d614610410578063a9059cbb1461042f578063a9bf2c091461044e575f5ffd5b8063715018a6146103b7578063751039fc146103cb5780638da5cb5b146103df575f5ffd5b8063313ce5671161015d5780634f91e48c116101385780634f91e48c146102e35780634fbee19314610301578063583e05681461033857806370a0823114610383575f5ffd5b8063313ce5671461029e5780633d9a3d19146102b95780633e4aff1e146102ce575f5ffd5b806320800a001161019857806320800a001461023f57806322a0bc811461025557806323b872dd1461026a578063311028af14610289575f5ffd5b806306fdde03146101c8578063095ea7b3146101f257806318160ddd14610221575f5ffd5b366101c457005b5f5ffd5b3480156101d3575f5ffd5b506101dc61054d565b6040516101e99190611e03565b60405180910390f35b3480156101fd575f5ffd5b5061021161020c366004611e4c565b6105dd565b60405190151581526020016101e9565b34801561022c575f5ffd5b506002545b6040519081526020016101e9565b34801561024a575f5ffd5b506102536105f6565b005b348015610260575f5ffd5b5061023160075481565b348015610275575f5ffd5b50610211610284366004611e76565b61067f565b348015610294575f5ffd5b5061023160065481565b3480156102a9575f5ffd5b50604051601281526020016101e9565b3480156102c4575f5ffd5b5061023160085481565b3480156102d9575f5ffd5b5061023160095481565b3480156102ee575f5ffd5b5060175461021190610100900460ff1681565b34801561030c575f5ffd5b5061021161031b366004611eb4565b6001600160a01b03165f9081526018602052604090205460ff1690565b348015610343575f5ffd5b5061036b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101e9565b34801561038e575f5ffd5b5061023161039d366004611eb4565b6001600160a01b03165f9081526020819052604090205490565b3480156103c2575f5ffd5b506102536106a2565b3480156103d6575f5ffd5b506102536106b5565b3480156103ea575f5ffd5b506005546001600160a01b031661036b565b348015610407575f5ffd5b506101dc6106ca565b34801561041b575f5ffd5b5061025361042a366004611edc565b6106d9565b34801561043a575f5ffd5b50610211610449366004611e4c565b61079b565b348015610459575f5ffd5b50610253610468366004611f13565b6107a8565b348015610478575f5ffd5b50610231600a5481565b34801561048d575f5ffd5b5061025361086b565b3480156104a1575f5ffd5b506102536108ac565b3480156104b5575f5ffd5b506102316104c4366004611f2a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6102536108c3565b348015610501575f5ffd5b50610253610510366004611f13565b610d73565b348015610520575f5ffd5b5061025361052f366004611eb4565b610f9b565b34801561053f575f5ffd5b506017546102119060ff1681565b60606003805461055c90611f56565b80601f016020809104026020016040519081016040528092919081815260200182805461058890611f56565b80156105d35780601f106105aa576101008083540402835291602001916105d3565b820191905f5260205f20905b8154815290600101906020018083116105b657829003601f168201915b5050505050905090565b5f336105ea818585611011565b60019150505b92915050565b337f000000000000000000000000cc2b885865b3ff73e1260352802c013a9bedb7686001600160a01b03161461062a575f5ffd5b6040516001600160a01b037f0000000000000000000000000ca364beeff3ba5002c442caff720aec2ecaa21516904780156108fc02915f818181858888f1935050505015801561067c573d5f5f3e3d5ffd5b50565b5f3361068c858285611134565b6106978585856111be565b506001949350505050565b6106aa6118e2565b6106b35f61193c565b565b6106bd6118e2565b600654600b819055600c55565b60606004805461055c90611f56565b6106e16118e2565b7f000000000000000000000000786adedf740a14aac101e739c73d991f2108d1396001600160a01b0316826001600160a01b03160361078d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b610797828261198d565b5050565b5f336105ea8185856111be565b6107b06118e2565b60018110156108015760405162461bcd60e51b815260206004820181905260248201527f53656c6c206c696d69742063616e6e6f74206265206c657373207468616e20316044820152606401610784565b600a5481116108665760405162461bcd60e51b815260206004820152602b60248201527f4e6577206c696d6974206d75737420626520686967686572207468616e20637560448201526a1c9c995b9d081b1a5b5a5d60aa1b6064820152608401610784565b600a55565b337f000000000000000000000000cc2b885865b3ff73e1260352802c013a9bedb7686001600160a01b03161461089f575f5ffd5b6017805461ff0019169055565b6108b46118e2565b6017805460ff19166001179055565b6108cb6118e2565b5f7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610928573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094c9190611f8e565b90506109566119e0565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000786adedf740a14aac101e739c73d991f2108d139811660048301525f91908316906370a0823190602401602060405180830381865afa1580156109bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e19190611fa9565b335f9081526020819052604081205491925090606490610a02906062611fd4565b610a0c9190611feb565b9050610a193330836111be565b5f6064600654604b610a2b9190611fd4565b610a359190611feb565b9050610a62307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83611011565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f1960248301527f000000000000000000000000786adedf740a14aac101e739c73d991f2108d139169063095ea7b3906044016020604051808303815f875af1158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b12919061200a565b505f8315610cbf57610b248447612025565b90505f47610b328685611fd4565b610b3c9190611feb565b90508015610bde57610b6f307f000000000000000000000000786adedf740a14aac101e739c73d991f2108d139836111be565b7f000000000000000000000000786adedf740a14aac101e739c73d991f2108d1396001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610bc7575f5ffd5b505af1158015610bd9573d5f5f3e3d5ffd5b505050505b5f818411610bec575f610bf6565b610bf68285612025565b90505f81118015610c0657505f83115b15610cb8577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198430845f5f610c516005546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610c7396959493929190612038565b60606040518083038185885af1158015610c8f573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cb49190612073565b5050505b5050610d6c565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730855f5f610d056005546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610d2796959493929190612038565b60606040518083038185885af1158015610d43573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d689190612073565b5050505b5050505050565b337f000000000000000000000000cc2b885865b3ff73e1260352802c013a9bedb7686001600160a01b031614610ddc5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610784565b5f81118015610dec575060648111155b610e2d5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610784565b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610e68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c9190611fa9565b90505f82606403610e9e575080610eb7565b6064610eaa8484611fd4565b610eb49190611feb565b90505b80821015610f075760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f75676820746f6b656e7320696e20636f6e74726163740000006044820152606401610784565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000cc2b885865b3ff73e1260352802c013a9bedb76816600482015260248101829052309063a9059cbb906044016020604051808303815f875af1158015610f71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f95919061200a565b50505050565b610fa36118e2565b6001600160a01b0381166110085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610784565b61067c8161193c565b6001600160a01b0383166110735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610784565b6001600160a01b0382166110d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610784565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610f9557818110156111b15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610784565b610f958484848403611011565b6001600160a01b0383166111e45760405162461bcd60e51b81526004016107849061209e565b6001600160a01b03821661120a5760405162461bcd60e51b8152600401610784906120e3565b805f036112215761121c83835f611a1d565b505050565b600e544311156112345743600e555f6010555b6001600160a01b0383165f908152601a602052604081205460ff1615801561127457506001600160a01b0383165f908152601a602052604090205460ff16155b90506112886005546001600160a01b031690565b6001600160a01b0316846001600160a01b0316141580156112b757506005546001600160a01b03848116911614155b80156112cb57506001600160a01b03831615155b80156112e257506001600160a01b03831661dead14155b80156112f7575060175462010000900460ff16155b156116985760175460ff16611388576001600160a01b0384165f9081526018602052604090205460ff168061134357506001600160a01b0383165f9081526018602052604090205460ff165b6113885760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610784565b6001600160a01b0384165f908152601a602052604090205460ff1680156113c757506001600160a01b0383165f9081526019602052604090205460ff16155b156114be57600b5482111561143c5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610784565b600c546001600160a01b0384165f908152602081905260409020546114619084612126565b11156114a55760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610784565b600f8054905f6114b483612139565b9190505550611698565b6001600160a01b0383165f908152601a602052604090205460ff1680156114fd57506001600160a01b0384165f9081526019602052604090205460ff16155b1561161057600b548211156115735760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610784565b601754610100900460ff161561160b57600a54601054106115fc5760405162461bcd60e51b815260206004820152603a60248201527f457863656564656420746865206d6178696d756d206e756d626572206f66207360448201527f656c6c7320616c6c6f77656420696e207468697320626c6f636b0000000000006064820152608401610784565b60108054905f6114b483612139565b611698565b6001600160a01b0383165f9081526019602052604090205460ff1661169857600c546001600160a01b0384165f908152602081905260409020546116549084612126565b11156116985760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610784565b305f908152602081905260408120549081158015906116b5575082155b90508080156116cd575060175462010000900460ff16155b80156116f157506001600160a01b0386165f908152601a602052604090205460ff16155b801561171557506001600160a01b0386165f9081526018602052604090205460ff16155b801561173957506001600160a01b0385165f9081526018602052604090205460ff16155b15611765576017805462ff000019166201000017905561175884611b45565b6017805462ff0000191690555b6017545f9062010000900460ff1615801561177e575083155b6001600160a01b0388165f9081526018602052604090205490915060ff16806117be57506001600160a01b0386165f9081526018602052604090205460ff165b156117c657505f5b5f81156118d7576001600160a01b0388165f908152601a602052604090205460ff16801561180c57506001600160a01b0387165f9081526019602052604090205460ff16155b15611845576064601554600f54116118265760115461182a565b6013545b6118349088611fd4565b61183e9190611feb565b90506118b9565b6001600160a01b0387165f908152601a602052604090205460ff16801561188457506001600160a01b0388165f9081526019602052604090205460ff16155b156118b9576064601654600f541161189e576012546118a2565b6014545b6118ac9088611fd4565b6118b69190611feb565b90505b80156118d7576118ca883083611a1d565b6118d48187612025565b95505b610d68888888611a1d565b6005546001600160a01b031633146106b35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610784565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f34116106b35760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610784565b6001600160a01b038316611a435760405162461bcd60e51b81526004016107849061209e565b6001600160a01b038216611a695760405162461bcd60e51b8152600401610784906120e3565b6001600160a01b0383165f9081526020819052604090205481811015611ae05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610784565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f95565b305f9081526020819052604081205490819003611b60575050565b5f5f601254601154611b729190612126565b1590508015611b9b57600d548310611b9257611b8d84611be9565b611b94565b825b9150611be0565b6005600d54611baa9190611feb565b831015611bb75750505050565b600d548310611bce57611bc984611be9565b611bdd565b6005600d54611bdd9190611feb565b91505b610f9582611c2d565b5f5f606460125484611bfb9190611fd4565b611c059190611feb565b9050611c118184612025565b9250600d548311611c225782611c26565b600d545b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c6057611c60612151565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cdc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d009190611f8e565b81600181518110611d1357611d13612151565b60200260200101906001600160a01b031690816001600160a01b031681525050611d5e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611011565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611dd29085905f9086907f0000000000000000000000000ca364beeff3ba5002c442caff720aec2ecaa215904290600401612165565b5f604051808303815f87803b158015611de9575f5ffd5b505af1158015611dfb573d5f5f3e3d5ffd5b505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461067c575f5ffd5b5f5f60408385031215611e5d575f5ffd5b8235611e6881611e38565b946020939093013593505050565b5f5f5f60608486031215611e88575f5ffd5b8335611e9381611e38565b92506020840135611ea381611e38565b929592945050506040919091013590565b5f60208284031215611ec4575f5ffd5b8135611c2681611e38565b801515811461067c575f5ffd5b5f5f60408385031215611eed575f5ffd5b8235611ef881611e38565b91506020830135611f0881611ecf565b809150509250929050565b5f60208284031215611f23575f5ffd5b5035919050565b5f5f60408385031215611f3b575f5ffd5b8235611f4681611e38565b91506020830135611f0881611e38565b600181811c90821680611f6a57607f821691505b602082108103611f8857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215611f9e575f5ffd5b8151611c2681611e38565b5f60208284031215611fb9575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105f0576105f0611fc0565b5f8261200557634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561201a575f5ffd5b8151611c2681611ecf565b818103818111156105f0576105f0611fc0565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f5f5f60608486031215612085575f5ffd5b5050815160208301516040909301519094929350919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808201808211156105f0576105f0611fc0565b5f6001820161214a5761214a611fc0565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121b55783516001600160a01b031683526020938401939092019160010161218e565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212205fae30fccbd1f49887477f7883f42a33754e95d90085c6375c703012c215d9c664736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000ca364beeff3ba5002c442caff720aec2ecaa215
-----Decoded View---------------
Arg [0] : wallet (address): 0x0Ca364beEfF3ba5002c442CAFf720AEC2ecaA215
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000ca364beeff3ba5002c442caff720aec2ecaa215
Deployed Bytecode Sourcemap
11747:11340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7459:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8391:201;;;;;;;;;;-1:-1:-1;8391:201:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;8391:201:0;945:187:1;7780:108:0;;;;;;;;;;-1:-1:-1;7868:12:0;;7780:108;;;1283:25:1;;;1271:2;1256:18;7780:108:0;1137:177:1;21895:155:0;;;;;;;;;;;;;:::i;:::-;;12167:46;;;;;;;;;;;;;;;;8600:295;;;;;;;;;;-1:-1:-1;8600:295:0;;;;;:::i;:::-;;:::i;11898:58::-;;;;;;;;;;;;;;;;7679:93;;;;;;;;;;-1:-1:-1;7679:93:0;;7762:2;1974:36:1;;1962:2;1947:18;7679:93:0;1832:184:1;12220:35:0;;;;;;;;;;;;;;;;12262:44;;;;;;;;;;;;;;;;12841:28;;;;;;;;;;-1:-1:-1;12841:28:0;;;;;;;;;;;16921:126;;;;;;;;;;-1:-1:-1;16921:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;17011:28:0;16987:4;17011:28;;;:19;:28;;;;;;;;;16921:126;11965:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2462:32:1;;;2444:51;;2432:2;2417:18;11965:52:0;2273:228:1;7896:127:0;;;;;;;;;;-1:-1:-1;7896:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7997:18:0;7970:7;7997:18;;;;;;;;;;;;7896:127;6535:103;;;;;;;;;;;;;:::i;20653:144::-;;;;;;;;;;;;;:::i;6300:87::-;;;;;;;;;;-1:-1:-1;6373:6:0;;-1:-1:-1;;;;;6373:6:0;6300:87;;7567:104;;;;;;;;;;;;;:::i;16477:242::-;;;;;;;;;;-1:-1:-1;16477:242:0;;;;;:::i;:::-;;:::i;8031:193::-;;;;;;;;;;-1:-1:-1;8031:193:0;;;;;:::i;:::-;;:::i;20805:268::-;;;;;;;;;;-1:-1:-1;20805:268:0;;;;;:::i;:::-;;:::i;12313:29::-;;;;;;;;;;;;;;;;21081:122;;;;;;;;;;;;;:::i;14567:81::-;;;;;;;;;;;;;:::i;8232:151::-;;;;;;;;;;-1:-1:-1;8232:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8348:18:0;;;8321:7;8348:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8232:151;14752:1393;;;:::i;21211:676::-;;;;;;;;;;-1:-1:-1;21211:676:0;;;;;:::i;:::-;;:::i;6646:201::-;;;;;;;;;;-1:-1:-1;6646:201:0;;;;;:::i;:::-;;:::i;12803:31::-;;;;;;;;;;-1:-1:-1;12803:31:0;;;;;;;;7459:100;7513:13;7546:5;7539:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7459:100;:::o;8391:201::-;8474:4;335:10;8530:32;335:10;8546:7;8555:6;8530:8;:32::i;:::-;8580:4;8573:11;;;8391:201;;;;;:::o;21895:155::-;335:10;21960:14;-1:-1:-1;;;;;21944:30:0;;21936:39;;;;;;21986:56;;-1:-1:-1;;;;;21994:15:0;21986:33;;22020:21;21986:56;;;;;;;;;22020:21;21986:33;:56;;;;;;;;;;;;;;;;;;;;;21895:155::o;8600:295::-;8731:4;335:10;8789:38;8805:4;335:10;8820:6;8789:15;:38::i;:::-;8838:27;8848:4;8854:2;8858:6;8838:9;:27::i;:::-;-1:-1:-1;8883:4:0;;8600:295;-1:-1:-1;;;;8600:295:0:o;6535:103::-;6259:13;:11;:13::i;:::-;6600:30:::1;6627:1;6600:18;:30::i;:::-;6535:103::o:0;20653:144::-;6259:13;:11;:13::i;:::-;20730:18:::1;::::0;20707:20:::1;:41:::0;;;20759:9:::1;:30:::0;20653:144::o;7567:104::-;7623:13;7656:7;7649:14;;;;;:::i;16477:242::-;6259:13;:11;:13::i;:::-;16584::::1;-1:-1:-1::0;;;;;16576:21:0::1;:4;-1:-1:-1::0;;;;;16576:21:0::1;::::0;16568:91:::1;;;::::0;-1:-1:-1;;;16568:91:0;;4435:2:1;16568:91:0::1;::::0;::::1;4417:21:1::0;4474:2;4454:18;;;4447:30;4513:34;4493:18;;;4486:62;4584:27;4564:18;;;4557:55;4629:19;;16568:91:0::1;;;;;;;;;16670:41;16699:4;16705:5;16670:28;:41::i;:::-;16477:242:::0;;:::o;8031:193::-;8110:4;335:10;8166:28;335:10;8183:2;8187:6;8166:9;:28::i;20805:268::-;6259:13;:11;:13::i;:::-;20901:1:::1;20886:11;:16;;20878:61;;;::::0;-1:-1:-1;;;20878:61:0;;4861:2:1;20878:61:0::1;::::0;::::1;4843:21:1::0;;;4880:18;;;4873:30;4939:34;4919:18;;;4912:62;4991:18;;20878:61:0::1;4659:356:1::0;20878:61:0::1;20972:10;;20958:11;:24;20950:80;;;::::0;-1:-1:-1;;;20950:80:0;;5222:2:1;20950:80:0::1;::::0;::::1;5204:21:1::0;5261:2;5241:18;;;5234:30;5300:34;5280:18;;;5273:62;-1:-1:-1;;;5351:18:1;;;5344:41;5402:19;;20950:80:0::1;5020:407:1::0;20950:80:0::1;21041:10;:24:::0;20805:268::o;21081:122::-;335:10;21152:14;-1:-1:-1;;;;;21136:30:0;;21128:39;;;;;;21178:9;:17;;-1:-1:-1;;21178:17:0;;;21081:122::o;14567:81::-;6259:13;:11;:13::i;:::-;14622:11:::1;:18:::0;;-1:-1:-1;;14622:18:0::1;14636:4;14622:18;::::0;;14567:81::o;14752:1393::-;6259:13;:11;:13::i;:::-;14823:19:::1;14845:16;-1:-1:-1::0;;;;;14845:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14823:45;;14870:13;:11;:13::i;:::-;14920:44;::::0;-1:-1:-1;;;14920:44:0;;-1:-1:-1;;;;;14950:13:0::1;2462:32:1::0;;14920:44:0::1;::::0;::::1;2444:51:1::0;-1:-1:-1;;14920:29:0;;::::1;::::0;::::1;::::0;2417:18:1;;14920:44:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15015:10;14979:22;7997:18:::0;;;;;;;;;;;14898:66;;-1:-1:-1;14979:22:0;15035:3:::1;::::0;15005:26:::1;::::0;15029:2:::1;15005:26;:::i;:::-;15004:34;;;;:::i;:::-;14979:59;;15053:52;15063:10;15083:4;15090:14;15053:9;:52::i;:::-;15120:23;15174:3;15147:18;;15168:2;15147:23;;;;:::i;:::-;15146:31;;;;:::i;:::-;15120:57;;15192:67;15209:4;15224:16;15243:15;15192:8;:67::i;:::-;15274:75;::::0;-1:-1:-1;;;15274:75:0;;-1:-1:-1;;;;;15312:16:0::1;6642:32:1::0;;15274:75:0::1;::::0;::::1;6624:51:1::0;-1:-1:-1;;6691:18:1;;;6684:34;15281:13:0::1;15274:29;::::0;::::1;::::0;6597:18:1;;15274:75:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15364:24:0::1;15394:15:::0;;15390:744:::1;;15432:35;15456:11:::0;15432:21:::1;:35;:::i;:::-;15413:54:::0;-1:-1:-1;15482:18:0::1;15537:21;15504:29;15522:11:::0;15504:15;:29:::1;:::i;:::-;15503:55;;;;:::i;:::-;15482:76:::0;-1:-1:-1;15564:14:0;;15560:126:::1;;15595:51;15613:4;15620:13;15635:10;15595:9;:51::i;:::-;15663:13;-1:-1:-1::0;;;;;15648:34:0::1;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15560:126;15700:24;15745:10;15727:15;:28;:63;;15789:1;15727:63;;;15758:28;15776:10:::0;15758:15;:28:::1;:::i;:::-;15700:90;;15828:1;15809:16;:20;:44;;;;;15852:1;15833:16;:20;15809:44;15805:184;;;15856:16;-1:-1:-1::0;;;;;15856:32:0::1;;15896:16;15936:4;15942:16;15959:1;15961;15963:7;6373:6:::0;;-1:-1:-1;;;;;6373:6:0;;6300:87;15963:7:::1;15971:15;15856:131;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15805:184;15411:579;;15390:744;;;15998:16;-1:-1:-1::0;;;;;15998:32:0::1;;16051:21;16082:4;16088:15;16104:1;16106;16108:7;6373:6:::0;;-1:-1:-1;;;;;6373:6:0;;6300:87;16108:7:::1;16116:15;15998:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15390:744;14808:1337;;;;;14752:1393::o:0;21211:676::-;335:10;21296:14;-1:-1:-1;;;;;21280:30:0;;21272:57;;;;-1:-1:-1;;;21272:57:0;;8383:2:1;21272:57:0;;;8365:21:1;8422:2;8402:18;;;8395:30;-1:-1:-1;;;8441:18:1;;;8434:44;8495:18;;21272:57:0;8181:338:1;21272:57:0;21361:1;21348:10;:14;:35;;;;;21380:3;21366:10;:17;;21348:35;21340:66;;;;-1:-1:-1;;;21340:66:0;;8726:2:1;21340:66:0;;;8708:21:1;8765:2;8745:18;;;8738:30;-1:-1:-1;;;8784:18:1;;;8777:48;8842:18;;21340:66:0;8524:342:1;21340:66:0;21448:46;;-1:-1:-1;;;21448:46:0;;21463:4;21448:46;;;2444:51:1;;;21417:28:0;;21448:31;;2417:18:1;;21448:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21417:77;;21505:22;21542:10;21556:3;21542:17;21538:178;;-1:-1:-1;21593:20:0;21538:178;;;21701:3;21664:33;21687:10;21664:20;:33;:::i;:::-;21663:41;;;;:::i;:::-;21646:58;;21538:178;21758:14;21734:20;:38;;21726:80;;;;-1:-1:-1;;;21726:80:0;;9073:2:1;21726:80:0;;;9055:21:1;9112:2;9092:18;;;9085:30;9151:31;9131:18;;;9124:59;9200:18;;21726:80:0;8871:353:1;21726:80:0;21817:62;;-1:-1:-1;;;21817:62:0;;-1:-1:-1;;;;;21848:14:0;6642:32:1;21817:62:0;;;6624:51:1;6691:18;;;6684:34;;;21832:4:0;;21817:30;;6597:18:1;;21817:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21261:626;;21211:676;:::o;6646:201::-;6259:13;:11;:13::i;:::-;-1:-1:-1;;;;;6735:22:0;::::1;6727:73;;;::::0;-1:-1:-1;;;6727:73:0;;9431:2:1;6727:73:0::1;::::0;::::1;9413:21:1::0;9470:2;9450:18;;;9443:30;9509:34;9489:18;;;9482:62;-1:-1:-1;;;9560:18:1;;;9553:36;9606:19;;6727:73:0::1;9229:402:1::0;6727:73:0::1;6811:28;6830:8;6811:18;:28::i;10634:380::-:0;-1:-1:-1;;;;;10770:19:0;;10762:68;;;;-1:-1:-1;;;10762:68:0;;9838:2:1;10762:68:0;;;9820:21:1;9877:2;9857:18;;;9850:30;9916:34;9896:18;;;9889:62;-1:-1:-1;;;9967:18:1;;;9960:34;10011:19;;10762:68:0;9636:400:1;10762:68:0;-1:-1:-1;;;;;10849:21:0;;10841:68;;;;-1:-1:-1;;;10841:68:0;;10243:2:1;10841:68:0;;;10225:21:1;10282:2;10262:18;;;10255:30;10321:34;10301:18;;;10294:62;-1:-1:-1;;;10372:18:1;;;10365:32;10414:19;;10841:68:0;10041:398:1;10841:68:0;-1:-1:-1;;;;;10922:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10974:32;;1283:25:1;;;10974:32:0;;1256:18:1;10974:32:0;;;;;;;10634:380;;;:::o;11022:453::-;-1:-1:-1;;;;;8348:18:0;;;11157:24;8348:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11224:37:0;;11220:248;;11306:6;11286:16;:26;;11278:68;;;;-1:-1:-1;;;11278:68:0;;10646:2:1;11278:68:0;;;10628:21:1;10685:2;10665:18;;;10658:30;10724:31;10704:18;;;10697:59;10773:18;;11278:68:0;10444:353:1;11278:68:0;11390:51;11399:5;11406:7;11434:6;11415:16;:25;11390:8;:51::i;17055:3101::-;-1:-1:-1;;;;;17155:18:0;;17147:68;;;;-1:-1:-1;;;17147:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17234:16:0;;17226:64;;;;-1:-1:-1;;;17226:64:0;;;;;;;:::i;:::-;17307:6;17317:1;17307:11;17303:93;;17335:28;17351:4;17357:2;17361:1;17335:15;:28::i;:::-;17055:3101;;;:::o;17303:93::-;17427:12;;17412;:27;17408:115;;;17471:12;17456;:27;17510:1;17498:9;:13;17408:115;-1:-1:-1;;;;;17562:31:0;;17543:15;17562:31;;;:25;:31;;;;;;;;17561:32;:66;;;;-1:-1:-1;;;;;;17598:29:0;;;;;;:25;:29;;;;;;;;17597:30;17561:66;17543:84;;17660:7;6373:6;;-1:-1:-1;;;;;6373:6:0;;6300:87;17660:7;-1:-1:-1;;;;;17652:15:0;:4;-1:-1:-1;;;;;17652:15:0;;;:32;;;;-1:-1:-1;6373:6:0;;-1:-1:-1;;;;;17671:13:0;;;6373:6;;17671:13;;17652:32;:52;;;;-1:-1:-1;;;;;;17688:16:0;;;;17652:52;:77;;;;-1:-1:-1;;;;;;17708:21:0;;17722:6;17708:21;;17652:77;:90;;;;-1:-1:-1;17734:8:0;;;;;;;17733:9;17652:90;17648:1311;;;17770:11;;;;17765:148;;-1:-1:-1;;;;;17814:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17843:23:0;;;;;;:19;:23;;;;;;;;17814:52;17806:87;;;;-1:-1:-1;;;17806:87:0;;11814:2:1;17806:87:0;;;11796:21:1;11853:2;11833:18;;;11826:30;-1:-1:-1;;;11872:18:1;;;11865:52;11934:18;;17806:87:0;11612:346:1;17806:87:0;-1:-1:-1;;;;;17937:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;17973:35:0;;;;;;:31;:35;;;;;;;;17972:36;17937:71;17933:1011;;;18069:20;;18059:6;:30;;18051:96;;;;-1:-1:-1;;;18051:96:0;;12165:2:1;18051:96:0;;;12147:21:1;12204:2;12184:18;;;12177:30;12243:34;12223:18;;;12216:62;-1:-1:-1;;;12294:18:1;;;12287:51;12355:19;;18051:96:0;11963:417:1;18051:96:0;18204:9;;-1:-1:-1;;;;;7997:18:0;;7970:7;7997:18;;;;;;;;;;;18178:22;;:6;:22;:::i;:::-;:35;;18170:67;;;;-1:-1:-1;;;18170:67:0;;12717:2:1;18170:67:0;;;12699:21:1;12756:2;12736:18;;;12729:30;-1:-1:-1;;;12775:18:1;;;12768:49;12834:18;;18170:67:0;12515:343:1;18170:67:0;18260:8;:10;;;:8;:10;;;:::i;:::-;;;;;;17933:1011;;;-1:-1:-1;;;;;18319:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;18353:37:0;;;;;;:31;:37;;;;;;;;18352:38;18319:71;18315:629;;;18433:20;;18423:6;:30;;18415:97;;;;-1:-1:-1;;;18415:97:0;;13205:2:1;18415:97:0;;;13187:21:1;13244:2;13224:18;;;13217:30;13283:34;13263:18;;;13256:62;-1:-1:-1;;;13334:18:1;;;13327:52;13396:19;;18415:97:0;13003:418:1;18415:97:0;18539:9;;;;;;;18535:196;;;18596:10;;18584:9;;:22;18576:93;;;;-1:-1:-1;;;18576:93:0;;13628:2:1;18576:93:0;;;13610:21:1;13667:2;13647:18;;;13640:30;13706:34;13686:18;;;13679:62;13777:28;13757:18;;;13750:56;13823:19;;18576:93:0;13426:422:1;18576:93:0;18696:9;:11;;;:9;:11;;;:::i;18535:196::-;18315:629;;;-1:-1:-1;;;;;18797:35:0;;;;;;:31;:35;;;;;;;;18792:152;;18891:9;;-1:-1:-1;;;;;7997:18:0;;7970:7;7997:18;;;;;;;;;;;18865:22;;:6;:22;:::i;:::-;:35;;18857:67;;;;-1:-1:-1;;;18857:67:0;;12717:2:1;18857:67:0;;;12699:21:1;12756:2;12736:18;;;12729:30;-1:-1:-1;;;12775:18:1;;;12768:49;12834:18;;18857:67:0;12515:343:1;18857:67:0;19020:4;18971:28;7997:18;;;;;;;;;;;;19054:24;;;;;:39;;;19083:10;19082:11;19054:39;19039:54;;19110:7;:20;;;;-1:-1:-1;19122:8:0;;;;;;;19121:9;19110:20;:56;;;;-1:-1:-1;;;;;;19135:31:0;;;;;;:25;:31;;;;;;;;19134:32;19110:56;:86;;;;-1:-1:-1;;;;;;19171:25:0;;;;;;:19;:25;;;;;;;;19170:26;19110:86;:114;;;;-1:-1:-1;;;;;;19201:23:0;;;;;;:19;:23;;;;;;;;19200:24;19110:114;19106:224;;;19241:8;:15;;-1:-1:-1;;19241:15:0;;;;;19271:16;19280:6;19271:8;:16::i;:::-;19302:8;:16;;-1:-1:-1;;19302:16:0;;;19106:224;19358:8;;19342:12;;19358:8;;;;;19357:9;:24;;;;;19371:10;19370:11;19357:24;-1:-1:-1;;;;;19398:25:0;;;;;;:19;:25;;;;;;19342:39;;-1:-1:-1;19398:25:0;;;:52;;-1:-1:-1;;;;;;19427:23:0;;;;;;:19;:23;;;;;;;;19398:52;19394:100;;;-1:-1:-1;19477:5:0;19394:100;19506:12;19535:568;;;;-1:-1:-1;;;;;19567:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19603:35:0;;;;;;:31;:35;;;;;;;;19602:36;19567:71;19563:377;;;19728:3;19687:14;;19676:8;;:25;:48;;19718:6;;19676:48;;;19704:11;;19676:48;19666:59;;:6;:59;:::i;:::-;:65;;;;:::i;:::-;19659:72;;19563:377;;;-1:-1:-1;;;;;19757:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19791:37:0;;;;;;:31;:37;;;;;;;;19790:38;19757:71;19753:187;;;19921:3;19877:15;;19866:8;;:26;:51;;19910:7;;19866:51;;;19895:12;;19866:51;19856:62;;:6;:62;:::i;:::-;:68;;;;:::i;:::-;19849:75;;19753:187;19972:8;;19968:124;;20001:42;20017:4;20031;20038;20001:15;:42::i;:::-;20062:14;20072:4;20062:14;;:::i;:::-;;;19968:124;20115:33;20131:4;20137:2;20141:6;20115:15;:33::i;6395:132::-;6373:6;;-1:-1:-1;;;;;6373:6:0;335:10;6459:23;6451:68;;;;-1:-1:-1;;;6451:68:0;;14055:2:1;6451:68:0;;;14037:21:1;;;14074:18;;;14067:30;14133:34;14113:18;;;14106:62;14185:18;;6451:68:0;13853:356:1;6855:191:0;6948:6;;;-1:-1:-1;;;;;6965:17:0;;;-1:-1:-1;;;;;;6965:17:0;;;;;;;6998:40;;6948:6;;;6965:17;6948:6;;6998:40;;6929:16;;6998:40;6918:128;6855:191;:::o;16727:186::-;-1:-1:-1;;;;;16810:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;16810:39:0;;;;;;;;;;16865:40;;16810:39;;:31;16865:40;;;16727:186;;:::o;14656:88::-;14719:1;14707:9;:13;14699:37;;;;-1:-1:-1;;;14699:37:0;;14416:2:1;14699:37:0;;;14398:21:1;14455:2;14435:18;;;14428:30;-1:-1:-1;;;14474:18:1;;;14467:41;14525:18;;14699:37:0;14214:335:1;8903:675:0;-1:-1:-1;;;;;9034:18:0;;9026:68;;;;-1:-1:-1;;;9026:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9113:16:0;;9105:64;;;;-1:-1:-1;;;9105:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9255:15:0;;9233:19;9255:15;;;;;;;;;;;9289:21;;;;9281:72;;;;-1:-1:-1;;;9281:72:0;;14756:2:1;9281:72:0;;;14738:21:1;14795:2;14775:18;;;14768:30;14834:34;14814:18;;;14807:62;-1:-1:-1;;;14885:18:1;;;14878:36;14931:19;;9281:72:0;14554:402:1;9281:72:0;-1:-1:-1;;;;;9389:15:0;;;:9;:15;;;;;;;;;;;9407:20;;;9389:38;;9442:13;;;;;;;;;;:23;;;;;;9494:26;;1283:25:1;;;9442:13:0;;9494:26;;1256:18:1;9494:26:0;;;;;;;9533:37;17055:3101;22058:768;22155:4;22111:23;7997:18;;;;;;;;;;;;22176:20;;;22172:33;;22198:7;22058:768;:::o;22172:33::-;22217:20;22248:11;22272:7;;22263:6;;:16;;;;:::i;:::-;22262:23;;-1:-1:-1;22306:470:0;;;;22366:18;;22348:15;:36;:140;;22461:27;22481:6;22461:19;:27::i;:::-;22348:140;;;22415:15;22348:140;22333:155;;22306:470;;;22564:1;22543:18;;:22;;;;:::i;:::-;22525:15;:40;22521:53;;;22567:7;;;22058:768;:::o;22521:53::-;22635:18;;22617:15;:36;:147;;22737:27;22757:6;22737:19;:27::i;:::-;22617:147;;;22705:1;22684:18;;:22;;;;:::i;:::-;22602:162;;22306:470;22788:30;22805:12;22788:16;:30::i;22834:250::-;22901:7;22921:21;22964:3;22954:7;;22945:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;22921:46;-1:-1:-1;22978:23:0;22921:46;22978:23;;:::i;:::-;;;23028:18;;23019:6;:27;:57;;23070:6;23019:57;;;23049:18;;23019:57;23012:64;22834:250;-1:-1:-1;;;22834:250:0:o;20164:482::-;20256:16;;;20270:1;20256:16;;;;;;;;20232:21;;20256:16;;;;;;;;;;-1:-1:-1;20256:16:0;20232:40;;20301:4;20283;20288:1;20283:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20283:23:0;;;-1:-1:-1;;;;;20283:23:0;;;;;20327:16;-1:-1:-1;;;;;20327:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20317:4;20322:1;20317:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;20317:33:0;;;-1:-1:-1;;;;;20317:33:0;;;;;20363:63;20380:4;20395:16;20414:11;20363:8;:63::i;:::-;20439:199;;-1:-1:-1;;;20439:199:0;;-1:-1:-1;;;;;20439:16:0;:67;;;;:199;;20521:11;;20547:1;;20563:4;;20582:15;;20612;;20439:199;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20219:427;20164:482;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2714:118::-;2800:5;2793:13;2786:21;2779:5;2776:32;2766:60;;2822:1;2819;2812:12;2837:382;2902:6;2910;2963:2;2951:9;2942:7;2938:23;2934:32;2931:52;;;2979:1;2976;2969:12;2931:52;3018:9;3005:23;3037:31;3062:5;3037:31;:::i;:::-;3087:5;-1:-1:-1;3144:2:1;3129:18;;3116:32;3157:30;3116:32;3157:30;:::i;:::-;3206:7;3196:17;;;2837:382;;;;;:::o;3224:226::-;3283:6;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;-1:-1:-1;3397:23:1;;3224:226;-1:-1:-1;3224:226:1:o;3455:388::-;3523:6;3531;3584:2;3572:9;3563:7;3559:23;3555:32;3552:52;;;3600:1;3597;3590:12;3552:52;3639:9;3626:23;3658:31;3683:5;3658:31;:::i;:::-;3708:5;-1:-1:-1;3765:2:1;3750:18;;3737:32;3778:33;3737:32;3778:33;:::i;3848:380::-;3927:1;3923:12;;;;3970;;;3991:61;;4045:4;4037:6;4033:17;4023:27;;3991:61;4098:2;4090:6;4087:14;4067:18;4064:38;4061:161;;4144:10;4139:3;4135:20;4132:1;4125:31;4179:4;4176:1;4169:15;4207:4;4204:1;4197:15;4061:161;;3848:380;;;:::o;5432:251::-;5502:6;5555:2;5543:9;5534:7;5530:23;5526:32;5523:52;;;5571:1;5568;5561:12;5523:52;5603:9;5597:16;5622:31;5647:5;5622:31;:::i;5688:230::-;5758:6;5811:2;5799:9;5790:7;5786:23;5782:32;5779:52;;;5827:1;5824;5817:12;5779:52;-1:-1:-1;5872:16:1;;5688:230;-1:-1:-1;5688:230:1:o;5923:127::-;5984:10;5979:3;5975:20;5972:1;5965:31;6015:4;6012:1;6005:15;6039:4;6036:1;6029:15;6055:168;6128:9;;;6159;;6176:15;;;6170:22;;6156:37;6146:71;;6197:18;;:::i;6228:217::-;6268:1;6294;6284:132;;6338:10;6333:3;6329:20;6326:1;6319:31;6373:4;6370:1;6363:15;6401:4;6398:1;6391:15;6284:132;-1:-1:-1;6430:9:1;;6228:217::o;6729:245::-;6796:6;6849:2;6837:9;6828:7;6824:23;6820:32;6817:52;;;6865:1;6862;6855:12;6817:52;6897:9;6891:16;6916:28;6938:5;6916:28;:::i;6979:128::-;7046:9;;;7067:11;;;7064:37;;;7081:18;;:::i;7112:603::-;-1:-1:-1;;;;;7433:32:1;;;7415:51;;7497:2;7482:18;;7475:34;;;;7540:2;7525:18;;7518:34;;;;7583:2;7568:18;;7561:34;;;;7632:32;;;7626:3;7611:19;;7604:61;7453:3;7681:19;;7674:35;;;;7402:3;7387:19;;7112:603::o;7720:456::-;7808:6;7816;7824;7877:2;7865:9;7856:7;7852:23;7848:32;7845:52;;;7893:1;7890;7883:12;7845:52;-1:-1:-1;;7938:16:1;;8044:2;8029:18;;8023:25;8140:2;8125:18;;;8119:25;7938:16;;8023:25;;-1:-1:-1;8119:25:1;7720:456;-1:-1:-1;7720:456:1:o;10802:401::-;11004:2;10986:21;;;11043:2;11023:18;;;11016:30;11082:34;11077:2;11062:18;;11055:62;-1:-1:-1;;;11148:2:1;11133:18;;11126:35;11193:3;11178:19;;10802:401::o;11208:399::-;11410:2;11392:21;;;11449:2;11429:18;;;11422:30;11488:34;11483:2;11468:18;;11461:62;-1:-1:-1;;;11554:2:1;11539:18;;11532:33;11597:3;11582:19;;11208:399::o;12385:125::-;12450:9;;;12471:10;;;12468:36;;;12484:18;;:::i;12863:135::-;12902:3;12923:17;;;12920:43;;12943:18;;:::i;:::-;-1:-1:-1;12990:1:1;12979:13;;12863:135::o;15093:127::-;15154:10;15149:3;15145:20;15142:1;15135:31;15185:4;15182:1;15175:15;15209:4;15206:1;15199:15;15225:959;15487:4;15535:3;15524:9;15520:19;15566:6;15555:9;15548:25;15609:6;15604:2;15593:9;15589:18;15582:34;15652:3;15647:2;15636:9;15632:18;15625:31;15676:6;15711;15705:13;15742:6;15734;15727:22;15780:3;15769:9;15765:19;15758:26;;15819:2;15811:6;15807:15;15793:29;;15840:1;15850:195;15864:6;15861:1;15858:13;15850:195;;;15929:13;;-1:-1:-1;;;;;15925:39:1;15913:52;;15994:2;16020:15;;;;15985:12;;;;15961:1;15879:9;15850:195;;;-1:-1:-1;;;;;;;16101:32:1;;;;16096:2;16081:18;;16074:60;-1:-1:-1;;16165:3:1;16150:19;16143:35;16062:3;15225:959;-1:-1:-1;;;15225:959:1:o
Swarm Source
ipfs://5fae30fccbd1f49887477f7883f42a33754e95d90085c6375c703012c215d9c6
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.