ERC-20
Overview
Max Total Supply
1,000,000,000,000 SHIBMAIL
Holders
46
Total Transfers
-
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 Name:
SHIBMAIL
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-06 */ // SPDX-License-Identifier: Unlicensed /* Telegram: https://t.me/shibmail Website: https://shibmail.services/ */ pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract SHIBMAIL is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "SHIBMAIL"; string private constant _symbol = "SHIBMAIL"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping (address => uint256) private _buyMap; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isSniper; uint256 public launchTime; uint256 private _redisFeeJeets = 3; uint256 private _taxFeeJeets = 8; uint256 private _redisFeeOnBuy = 3; uint256 private _taxFeeOnBuy = 8; uint256 private _redisFeeOnSell = 3; uint256 private _taxFeeOnSell = 8; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = 0; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; address payable private _marketingAddress = payable(0xAe622e81e19cef5dDF8EC5E95D8618F963D5e6cf); address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public timeJeets = 2 minutes; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; bool private isMaxBuyActivated = true; uint256 public _maxTxAmount = 1e10 * 10**9; uint256 public _maxWalletSize = 1e10 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 10**9; uint256 public _minimumBuyAmount = 1e10 * 10**9 ; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[deadAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } 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 pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[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()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _previousburnFee = _burnFee; _redisFee = 0; _taxFee = 0; _burnFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; _burnFee = _previousburnFee; } 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); } 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(!_isSniper[to]); require(!_isSniper[from]); require(!_isSniper[_msgSender()]); if (from != owner() && to != owner()) { if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } } if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); if (isMaxBuyActivated) { if (block.timestamp <= launchTime + 2 minutes) { require(amount <= _minimumBuyAmount, "Amount too much"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { uint256 burntAmount = 0; if (_burnFee > 0) { burntAmount = contractTokenBalance.mul(_burnFee).div(10**2); burnTokens(burntAmount); } swapTokensForEth(contractTokenBalance - burntAmount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _buyMap[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; if (block.timestamp == launchTime) { _isSniper[to] = true; } } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) { _redisFee = _redisFeeJeets; _taxFee = _taxFeeJeets; } else { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } } _tokenTransfer(from, to, amount, takeFee); } function burnTokens(uint256 burntAmount) private { _transfer(address(this), deadAddress, burntAmount); } function startContract() external onlyOwner(){ IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { 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, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setTrading() public onlyOwner { require(!tradingOpen); tradingOpen = true; launchTime = block.timestamp; } function setMarketingWallet(address marketingAddress) external { require(_msgSender() == _marketingAddress); _marketingAddress = payable(marketingAddress); _isExcludedFromFee[_marketingAddress] = true; } function setIsMaxBuyActivated(bool _isMaxBuyActivated) public onlyOwner { isMaxBuyActivated = _isMaxBuyActivated; } function manualswap(uint256 amount) external { require(_msgSender() == _marketingAddress); require(amount <= balanceOf(address(this)) && amount > 0); swapTokensForEth(amount); } function addSniper(address[] memory snipers) external onlyOwner { for(uint256 i= 0; i< snipers.length; i++){ _isSniper[snipers[i]] = true; } } function removeSniper(address sniper) external onlyOwner { if (_isSniper[sniper]) { _isSniper[sniper] = false; } } function isSniper(address sniper) external view returns (bool){ return _isSniper[sniper]; } function manualsend() external { require(_msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner { require(maxTxAmount >= 5e6 * 10**9); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner { require(maxWalletSize >= _maxWalletSize); _maxWalletSize = maxWalletSize; } function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner { require(amountBuy >= 0 && amountBuy <= 13); require(amountSell >= 0 && amountSell <= 13); _taxFeeOnBuy = amountBuy; _taxFeeOnSell = amountSell; } function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner { require(amountRefBuy >= 0 && amountRefBuy <= 1); require(amountRefSell >= 0 && amountRefSell <= 1); _redisFeeOnBuy = amountRefBuy; _redisFeeOnSell = amountRefSell; } function setBurnFee(uint256 amount) external onlyOwner { require(amount >= 0 && amount <= 1); _burnFee = amount; } function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external onlyOwner { require(amountRedisJeets >= 0 && amountRedisJeets <= 1); require(amountTaxJeets >= 0 && amountTaxJeets <= 19); _redisFeeJeets = amountRedisJeets; _taxFeeJeets = amountTaxJeets; } function setTimeJeets(uint256 hoursTime) external onlyOwner { require(hoursTime >= 0 && hoursTime <= 4); timeJeets = hoursTime * 1 hours; } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"snipers","type":"address[]"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isMaxBuyActivated","type":"bool"}],"name":"setIsMaxBuyActivated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001b683635c9adc5dea0000060001962000212565b6200002990600019620001ec565b6007556003600b8190556008600c819055600d829055600e819055600f82905560108190556011829055601281905560006013819055601492909255601555601655601780546001600160a01b03191673ae622e81e19cef5ddf8ec5e95d8618f963d5e6cf1790556078601855601a805461010160b01b62ffffff60a81b19909116179055678ac7230489e80000601b819055601c81905564e8d4a51000601d55601e55348015620000da57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360008181526002602090815260408083209490945581546001600160a01b039081168352600682528483208054600160ff19918216811790925530855286852080548216831790556017549092168452858420805483168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549092161790559251683635c9adc5dea000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000235565b6000828210156200020d57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200023057634e487b7160e01b600052601260045260246000fd5b500690565b61236180620002456000396000f3fe6080604052600436106102295760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610630578063e0f9f6a014610676578063ea1644d514610696578063f2fde38b146106b6578063fe72c3c1146106d657600080fd5b806395d89b41146102355780639ec350ed146105b05780639f131571146105d0578063a9059cbb146105f0578063c55284901461061057600080fd5b80637c519ffb116100f25780637c519ffb146105315780637d1db4a514610546578063881dce601461055c5780638da5cb5b1461057c5780638f9a55c01461059a57600080fd5b806370a08231146104c6578063715018a6146104e657806374010ece146104fb578063790ca4131461051b57600080fd5b8063313ce567116101b15780635d098b38116101755780635d098b38146104465780635fb02f4d146104665780636b9cf5341461047b5780636d8aa8f8146104915780636fc3eaec146104b157600080fd5b8063313ce567146103aa57806333251a0b146103c657806338eea22d146103e657806349bd5a5e146104065780634bf2c7c91461042657600080fd5b806318160ddd116101f857806318160ddd1461031657806323b872dd1461033c57806327c8f8351461035c57806328bb665a146103725780632fd689e31461039457600080fd5b806306fdde0314610235578063095ea7b3146102755780630f3a325f146102a55780631694505e146102de57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b50604080518082018252600881526714d212509350525360c21b6020820152905161026c9190612126565b60405180910390f35b34801561028157600080fd5b50610295610290366004611fd1565b6106ec565b604051901515815260200161026c565b3480156102b157600080fd5b506102956102c0366004611f1d565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102ea57600080fd5b506019546102fe906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b34801561032257600080fd5b50683635c9adc5dea000005b60405190815260200161026c565b34801561034857600080fd5b50610295610357366004611f90565b610703565b34801561036857600080fd5b506102fe61dead81565b34801561037e57600080fd5b5061039261038d366004611ffd565b61076c565b005b3480156103a057600080fd5b5061032e601d5481565b3480156103b657600080fd5b506040516009815260200161026c565b3480156103d257600080fd5b506103926103e1366004611f1d565b61080b565b3480156103f257600080fd5b50610392610401366004612104565b61087a565b34801561041257600080fd5b50601a546102fe906001600160a01b031681565b34801561043257600080fd5b506103926104413660046120eb565b6108cb565b34801561045257600080fd5b50610392610461366004611f1d565b610908565b34801561047257600080fd5b50610392610962565b34801561048757600080fd5b5061032e601e5481565b34801561049d57600080fd5b506103926104ac3660046120c9565b610b47565b3480156104bd57600080fd5b50610392610b8f565b3480156104d257600080fd5b5061032e6104e1366004611f1d565b610bb9565b3480156104f257600080fd5b50610392610bdb565b34801561050757600080fd5b506103926105163660046120eb565b610c4f565b34801561052757600080fd5b5061032e600a5481565b34801561053d57600080fd5b50610392610c92565b34801561055257600080fd5b5061032e601b5481565b34801561056857600080fd5b506103926105773660046120eb565b610cec565b34801561058857600080fd5b506000546001600160a01b03166102fe565b3480156105a657600080fd5b5061032e601c5481565b3480156105bc57600080fd5b506103926105cb366004612104565b610d36565b3480156105dc57600080fd5b506103926105eb3660046120c9565b610d87565b3480156105fc57600080fd5b5061029561060b366004611fd1565b610dcf565b34801561061c57600080fd5b5061039261062b366004612104565b610ddc565b34801561063c57600080fd5b5061032e61064b366004611f57565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068257600080fd5b506103926106913660046120eb565b610e2d565b3480156106a257600080fd5b506103926106b13660046120eb565b610e77565b3480156106c257600080fd5b506103926106d1366004611f1d565b610eb5565b3480156106e257600080fd5b5061032e60185481565b60006106f9338484610f9f565b5060015b92915050565b60006107108484846110c3565b610762843361075d85604051806060016040528060288152602001612304602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906117b0565b610f9f565b5060019392505050565b6000546001600160a01b0316331461079f5760405162461bcd60e51b81526004016107969061217b565b60405180910390fd5b60005b8151811015610807576001600960008484815181106107c3576107c36122c2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107ff81612291565b9150506107a2565b5050565b6000546001600160a01b031633146108355760405162461bcd60e51b81526004016107969061217b565b6001600160a01b03811660009081526009602052604090205460ff1615610877576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108a45760405162461bcd60e51b81526004016107969061217b565b60018211156108b257600080fd5b60018111156108c057600080fd5b600d91909155600f55565b6000546001600160a01b031633146108f55760405162461bcd60e51b81526004016107969061217b565b600181111561090357600080fd5b601355565b6017546001600160a01b0316336001600160a01b03161461092857600080fd5b601780546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461098c5760405162461bcd60e51b81526004016107969061217b565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a249190611f3a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6c57600080fd5b505afa158015610a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa49190611f3a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610aec57600080fd5b505af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190611f3a565b601a80546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314610b715760405162461bcd60e51b81526004016107969061217b565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b031614610baf57600080fd5b47610877816117ea565b6001600160a01b0381166000908152600260205260408120546106fd90611824565b6000546001600160a01b03163314610c055760405162461bcd60e51b81526004016107969061217b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c795760405162461bcd60e51b81526004016107969061217b565b6611c37937e08000811015610c8d57600080fd5b601b55565b6000546001600160a01b03163314610cbc5760405162461bcd60e51b81526004016107969061217b565b601a54600160a01b900460ff1615610cd357600080fd5b601a805460ff60a01b1916600160a01b17905542600a55565b6017546001600160a01b0316336001600160a01b031614610d0c57600080fd5b610d1530610bb9565b8111158015610d245750600081115b610d2d57600080fd5b610877816118a8565b6000546001600160a01b03163314610d605760405162461bcd60e51b81526004016107969061217b565b6001821115610d6e57600080fd5b6013811115610d7c57600080fd5b600b91909155600c55565b6000546001600160a01b03163314610db15760405162461bcd60e51b81526004016107969061217b565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b60006106f93384846110c3565b6000546001600160a01b03163314610e065760405162461bcd60e51b81526004016107969061217b565b600d821115610e1457600080fd5b600d811115610e2257600080fd5b600e91909155601055565b6000546001600160a01b03163314610e575760405162461bcd60e51b81526004016107969061217b565b6004811115610e6557600080fd5b610e7181610e1061225b565b60185550565b6000546001600160a01b03163314610ea15760405162461bcd60e51b81526004016107969061217b565b601c54811015610eb057600080fd5b601c55565b6000546001600160a01b03163314610edf5760405162461bcd60e51b81526004016107969061217b565b6001600160a01b038116610f445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610796565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610796565b6001600160a01b0382166110625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610796565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610796565b6001600160a01b0382166111895760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610796565b600081116111eb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610796565b6001600160a01b03821660009081526009602052604090205460ff161561121157600080fd5b6001600160a01b03831660009081526009602052604090205460ff161561123757600080fd5b3360009081526009602052604090205460ff161561125457600080fd5b6000546001600160a01b0384811691161480159061128057506000546001600160a01b03838116911614155b156115f857601a54600160a01b900460ff166112de5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610796565b601a546001600160a01b03838116911614801561130957506019546001600160a01b03848116911614155b156113bb576001600160a01b038216301480159061133057506001600160a01b0383163014155b801561134a57506017546001600160a01b03838116911614155b801561136457506017546001600160a01b03848116911614155b156113bb57601b548111156113bb5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610796565b601a546001600160a01b038381169116148015906113e757506017546001600160a01b03838116911614155b80156113fc57506001600160a01b0382163014155b801561141357506001600160a01b03821661dead14155b156114f257601c548161142584610bb9565b61142f9190612221565b106114885760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610796565b601a54600160b81b900460ff16156114f257600a546114a8906078612221565b42116114f257601e548111156114f25760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b6044820152606401610796565b60006114fd30610bb9565b601d54909150811180801561151c5750601a54600160a81b900460ff16155b80156115365750601a546001600160a01b03868116911614155b801561154b5750601a54600160b01b900460ff165b801561157057506001600160a01b03851660009081526006602052604090205460ff16155b801561159557506001600160a01b03841660009081526006602052604090205460ff16155b156115f557601354600090156115d0576115c560646115bf60135486611a3190919063ffffffff16565b90611ab0565b90506115d081611af2565b6115e26115dd828561227a565b6118a8565b4780156115f2576115f2476117ea565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061163a57506001600160a01b03831660009081526006602052604090205460ff165b8061166c5750601a546001600160a01b0385811691161480159061166c5750601a546001600160a01b03848116911614155b156116795750600061179e565b601a546001600160a01b0385811691161480156116a457506019546001600160a01b03848116911614155b156116ff576001600160a01b03831660009081526004602052604090204290819055600d54601155600e54601255600a5414156116ff576001600160a01b0383166000908152600960205260409020805460ff191660011790555b601a546001600160a01b03848116911614801561172a57506019546001600160a01b03858116911614155b1561179e576001600160a01b0384166000908152600460205260409020541580159061177b57506018546001600160a01b038516600090815260046020526040902054429161177891612221565b10155b1561179157600b54601155600c5460125561179e565b600f546011556010546012555b6117aa84848484611aff565b50505050565b600081848411156117d45760405162461bcd60e51b81526004016107969190612126565b5060006117e1848661227a565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610807573d6000803e3d6000fd5b600060075482111561188b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610796565b6000611895611b33565b90506118a18382611ab0565b9392505050565b601a805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118f0576118f06122c2565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561194457600080fd5b505afa158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c9190611f3a565b8160018151811061198f5761198f6122c2565b6001600160a01b0392831660209182029290920101526019546119b59130911684610f9f565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906119ee9085906000908690309042906004016121b0565b600060405180830381600087803b158015611a0857600080fd5b505af1158015611a1c573d6000803e3d6000fd5b5050601a805460ff60a81b1916905550505050565b600082611a40575060006106fd565b6000611a4c838561225b565b905082611a598583612239565b146118a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610796565b60006118a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b56565b6108773061dead836110c3565b80611b0c57611b0c611b84565b611b17848484611bc9565b806117aa576117aa601454601155601554601255601654601355565b6000806000611b40611cc0565b9092509050611b4f8282611ab0565b9250505090565b60008183611b775760405162461bcd60e51b81526004016107969190612126565b5060006117e18486612239565b601154158015611b945750601254155b8015611ba05750601354155b15611ba757565b6011805460145560128054601555601380546016556000928390559082905555565b600080600080600080611bdb87611d02565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611c0d9087611d5f565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611c3c9086611da1565b6001600160a01b038916600090815260026020526040902055611c5e81611e00565b611c688483611e4a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cad91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea00000611cdc8282611ab0565b821015611cf957505060075492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611d1f8a601154601254611e6e565b9250925092506000611d2f611b33565b90506000806000611d428e878787611ebd565b919e509c509a509598509396509194505050505091939550919395565b60006118a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117b0565b600080611dae8385612221565b9050838110156118a15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610796565b6000611e0a611b33565b90506000611e188383611a31565b30600090815260026020526040902054909150611e359082611da1565b30600090815260026020526040902055505050565b600754611e579083611d5f565b600755600854611e679082611da1565b6008555050565b6000808080611e8260646115bf8989611a31565b90506000611e9560646115bf8a89611a31565b90506000611ead82611ea78b86611d5f565b90611d5f565b9992985090965090945050505050565b6000808080611ecc8886611a31565b90506000611eda8887611a31565b90506000611ee88888611a31565b90506000611efa82611ea78686611d5f565b939b939a50919850919650505050505050565b8035611f18816122ee565b919050565b600060208284031215611f2f57600080fd5b81356118a1816122ee565b600060208284031215611f4c57600080fd5b81516118a1816122ee565b60008060408385031215611f6a57600080fd5b8235611f75816122ee565b91506020830135611f85816122ee565b809150509250929050565b600080600060608486031215611fa557600080fd5b8335611fb0816122ee565b92506020840135611fc0816122ee565b929592945050506040919091013590565b60008060408385031215611fe457600080fd5b8235611fef816122ee565b946020939093013593505050565b6000602080838503121561201057600080fd5b823567ffffffffffffffff8082111561202857600080fd5b818501915085601f83011261203c57600080fd5b81358181111561204e5761204e6122d8565b8060051b604051601f19603f83011681018181108582111715612073576120736122d8565b604052828152858101935084860182860187018a101561209257600080fd5b600095505b838610156120bc576120a881611f0d565b855260019590950194938601938601612097565b5098975050505050505050565b6000602082840312156120db57600080fd5b813580151581146118a157600080fd5b6000602082840312156120fd57600080fd5b5035919050565b6000806040838503121561211757600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561215357858101830151858201604001528201612137565b81811115612165576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122005784516001600160a01b0316835293830193918301916001016121db565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612234576122346122ac565b500190565b60008261225657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612275576122756122ac565b500290565b60008282101561228c5761228c6122ac565b500390565b60006000198214156122a5576122a56122ac565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7fcabc57824830d728c09064ae60c8e92ee6069b45d0f0ab8874b124d375c6264736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102295760003560e01c806370a082311161012357806395d89b41116100ab578063dd62ed3e1161006f578063dd62ed3e14610630578063e0f9f6a014610676578063ea1644d514610696578063f2fde38b146106b6578063fe72c3c1146106d657600080fd5b806395d89b41146102355780639ec350ed146105b05780639f131571146105d0578063a9059cbb146105f0578063c55284901461061057600080fd5b80637c519ffb116100f25780637c519ffb146105315780637d1db4a514610546578063881dce601461055c5780638da5cb5b1461057c5780638f9a55c01461059a57600080fd5b806370a08231146104c6578063715018a6146104e657806374010ece146104fb578063790ca4131461051b57600080fd5b8063313ce567116101b15780635d098b38116101755780635d098b38146104465780635fb02f4d146104665780636b9cf5341461047b5780636d8aa8f8146104915780636fc3eaec146104b157600080fd5b8063313ce567146103aa57806333251a0b146103c657806338eea22d146103e657806349bd5a5e146104065780634bf2c7c91461042657600080fd5b806318160ddd116101f857806318160ddd1461031657806323b872dd1461033c57806327c8f8351461035c57806328bb665a146103725780632fd689e31461039457600080fd5b806306fdde0314610235578063095ea7b3146102755780630f3a325f146102a55780631694505e146102de57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b50604080518082018252600881526714d212509350525360c21b6020820152905161026c9190612126565b60405180910390f35b34801561028157600080fd5b50610295610290366004611fd1565b6106ec565b604051901515815260200161026c565b3480156102b157600080fd5b506102956102c0366004611f1d565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102ea57600080fd5b506019546102fe906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b34801561032257600080fd5b50683635c9adc5dea000005b60405190815260200161026c565b34801561034857600080fd5b50610295610357366004611f90565b610703565b34801561036857600080fd5b506102fe61dead81565b34801561037e57600080fd5b5061039261038d366004611ffd565b61076c565b005b3480156103a057600080fd5b5061032e601d5481565b3480156103b657600080fd5b506040516009815260200161026c565b3480156103d257600080fd5b506103926103e1366004611f1d565b61080b565b3480156103f257600080fd5b50610392610401366004612104565b61087a565b34801561041257600080fd5b50601a546102fe906001600160a01b031681565b34801561043257600080fd5b506103926104413660046120eb565b6108cb565b34801561045257600080fd5b50610392610461366004611f1d565b610908565b34801561047257600080fd5b50610392610962565b34801561048757600080fd5b5061032e601e5481565b34801561049d57600080fd5b506103926104ac3660046120c9565b610b47565b3480156104bd57600080fd5b50610392610b8f565b3480156104d257600080fd5b5061032e6104e1366004611f1d565b610bb9565b3480156104f257600080fd5b50610392610bdb565b34801561050757600080fd5b506103926105163660046120eb565b610c4f565b34801561052757600080fd5b5061032e600a5481565b34801561053d57600080fd5b50610392610c92565b34801561055257600080fd5b5061032e601b5481565b34801561056857600080fd5b506103926105773660046120eb565b610cec565b34801561058857600080fd5b506000546001600160a01b03166102fe565b3480156105a657600080fd5b5061032e601c5481565b3480156105bc57600080fd5b506103926105cb366004612104565b610d36565b3480156105dc57600080fd5b506103926105eb3660046120c9565b610d87565b3480156105fc57600080fd5b5061029561060b366004611fd1565b610dcf565b34801561061c57600080fd5b5061039261062b366004612104565b610ddc565b34801561063c57600080fd5b5061032e61064b366004611f57565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068257600080fd5b506103926106913660046120eb565b610e2d565b3480156106a257600080fd5b506103926106b13660046120eb565b610e77565b3480156106c257600080fd5b506103926106d1366004611f1d565b610eb5565b3480156106e257600080fd5b5061032e60185481565b60006106f9338484610f9f565b5060015b92915050565b60006107108484846110c3565b610762843361075d85604051806060016040528060288152602001612304602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906117b0565b610f9f565b5060019392505050565b6000546001600160a01b0316331461079f5760405162461bcd60e51b81526004016107969061217b565b60405180910390fd5b60005b8151811015610807576001600960008484815181106107c3576107c36122c2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107ff81612291565b9150506107a2565b5050565b6000546001600160a01b031633146108355760405162461bcd60e51b81526004016107969061217b565b6001600160a01b03811660009081526009602052604090205460ff1615610877576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108a45760405162461bcd60e51b81526004016107969061217b565b60018211156108b257600080fd5b60018111156108c057600080fd5b600d91909155600f55565b6000546001600160a01b031633146108f55760405162461bcd60e51b81526004016107969061217b565b600181111561090357600080fd5b601355565b6017546001600160a01b0316336001600160a01b03161461092857600080fd5b601780546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461098c5760405162461bcd60e51b81526004016107969061217b565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a249190611f3a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6c57600080fd5b505afa158015610a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa49190611f3a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610aec57600080fd5b505af1158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b249190611f3a565b601a80546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314610b715760405162461bcd60e51b81526004016107969061217b565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b031614610baf57600080fd5b47610877816117ea565b6001600160a01b0381166000908152600260205260408120546106fd90611824565b6000546001600160a01b03163314610c055760405162461bcd60e51b81526004016107969061217b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c795760405162461bcd60e51b81526004016107969061217b565b6611c37937e08000811015610c8d57600080fd5b601b55565b6000546001600160a01b03163314610cbc5760405162461bcd60e51b81526004016107969061217b565b601a54600160a01b900460ff1615610cd357600080fd5b601a805460ff60a01b1916600160a01b17905542600a55565b6017546001600160a01b0316336001600160a01b031614610d0c57600080fd5b610d1530610bb9565b8111158015610d245750600081115b610d2d57600080fd5b610877816118a8565b6000546001600160a01b03163314610d605760405162461bcd60e51b81526004016107969061217b565b6001821115610d6e57600080fd5b6013811115610d7c57600080fd5b600b91909155600c55565b6000546001600160a01b03163314610db15760405162461bcd60e51b81526004016107969061217b565b601a8054911515600160b81b0260ff60b81b19909216919091179055565b60006106f93384846110c3565b6000546001600160a01b03163314610e065760405162461bcd60e51b81526004016107969061217b565b600d821115610e1457600080fd5b600d811115610e2257600080fd5b600e91909155601055565b6000546001600160a01b03163314610e575760405162461bcd60e51b81526004016107969061217b565b6004811115610e6557600080fd5b610e7181610e1061225b565b60185550565b6000546001600160a01b03163314610ea15760405162461bcd60e51b81526004016107969061217b565b601c54811015610eb057600080fd5b601c55565b6000546001600160a01b03163314610edf5760405162461bcd60e51b81526004016107969061217b565b6001600160a01b038116610f445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610796565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610796565b6001600160a01b0382166110625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610796565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610796565b6001600160a01b0382166111895760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610796565b600081116111eb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610796565b6001600160a01b03821660009081526009602052604090205460ff161561121157600080fd5b6001600160a01b03831660009081526009602052604090205460ff161561123757600080fd5b3360009081526009602052604090205460ff161561125457600080fd5b6000546001600160a01b0384811691161480159061128057506000546001600160a01b03838116911614155b156115f857601a54600160a01b900460ff166112de5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610796565b601a546001600160a01b03838116911614801561130957506019546001600160a01b03848116911614155b156113bb576001600160a01b038216301480159061133057506001600160a01b0383163014155b801561134a57506017546001600160a01b03838116911614155b801561136457506017546001600160a01b03848116911614155b156113bb57601b548111156113bb5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610796565b601a546001600160a01b038381169116148015906113e757506017546001600160a01b03838116911614155b80156113fc57506001600160a01b0382163014155b801561141357506001600160a01b03821661dead14155b156114f257601c548161142584610bb9565b61142f9190612221565b106114885760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610796565b601a54600160b81b900460ff16156114f257600a546114a8906078612221565b42116114f257601e548111156114f25760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b6044820152606401610796565b60006114fd30610bb9565b601d54909150811180801561151c5750601a54600160a81b900460ff16155b80156115365750601a546001600160a01b03868116911614155b801561154b5750601a54600160b01b900460ff165b801561157057506001600160a01b03851660009081526006602052604090205460ff16155b801561159557506001600160a01b03841660009081526006602052604090205460ff16155b156115f557601354600090156115d0576115c560646115bf60135486611a3190919063ffffffff16565b90611ab0565b90506115d081611af2565b6115e26115dd828561227a565b6118a8565b4780156115f2576115f2476117ea565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061163a57506001600160a01b03831660009081526006602052604090205460ff165b8061166c5750601a546001600160a01b0385811691161480159061166c5750601a546001600160a01b03848116911614155b156116795750600061179e565b601a546001600160a01b0385811691161480156116a457506019546001600160a01b03848116911614155b156116ff576001600160a01b03831660009081526004602052604090204290819055600d54601155600e54601255600a5414156116ff576001600160a01b0383166000908152600960205260409020805460ff191660011790555b601a546001600160a01b03848116911614801561172a57506019546001600160a01b03858116911614155b1561179e576001600160a01b0384166000908152600460205260409020541580159061177b57506018546001600160a01b038516600090815260046020526040902054429161177891612221565b10155b1561179157600b54601155600c5460125561179e565b600f546011556010546012555b6117aa84848484611aff565b50505050565b600081848411156117d45760405162461bcd60e51b81526004016107969190612126565b5060006117e1848661227a565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610807573d6000803e3d6000fd5b600060075482111561188b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610796565b6000611895611b33565b90506118a18382611ab0565b9392505050565b601a805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118f0576118f06122c2565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561194457600080fd5b505afa158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c9190611f3a565b8160018151811061198f5761198f6122c2565b6001600160a01b0392831660209182029290920101526019546119b59130911684610f9f565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906119ee9085906000908690309042906004016121b0565b600060405180830381600087803b158015611a0857600080fd5b505af1158015611a1c573d6000803e3d6000fd5b5050601a805460ff60a81b1916905550505050565b600082611a40575060006106fd565b6000611a4c838561225b565b905082611a598583612239565b146118a15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610796565b60006118a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b56565b6108773061dead836110c3565b80611b0c57611b0c611b84565b611b17848484611bc9565b806117aa576117aa601454601155601554601255601654601355565b6000806000611b40611cc0565b9092509050611b4f8282611ab0565b9250505090565b60008183611b775760405162461bcd60e51b81526004016107969190612126565b5060006117e18486612239565b601154158015611b945750601254155b8015611ba05750601354155b15611ba757565b6011805460145560128054601555601380546016556000928390559082905555565b600080600080600080611bdb87611d02565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611c0d9087611d5f565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611c3c9086611da1565b6001600160a01b038916600090815260026020526040902055611c5e81611e00565b611c688483611e4a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cad91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea00000611cdc8282611ab0565b821015611cf957505060075492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611d1f8a601154601254611e6e565b9250925092506000611d2f611b33565b90506000806000611d428e878787611ebd565b919e509c509a509598509396509194505050505091939550919395565b60006118a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117b0565b600080611dae8385612221565b9050838110156118a15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610796565b6000611e0a611b33565b90506000611e188383611a31565b30600090815260026020526040902054909150611e359082611da1565b30600090815260026020526040902055505050565b600754611e579083611d5f565b600755600854611e679082611da1565b6008555050565b6000808080611e8260646115bf8989611a31565b90506000611e9560646115bf8a89611a31565b90506000611ead82611ea78b86611d5f565b90611d5f565b9992985090965090945050505050565b6000808080611ecc8886611a31565b90506000611eda8887611a31565b90506000611ee88888611a31565b90506000611efa82611ea78686611d5f565b939b939a50919850919650505050505050565b8035611f18816122ee565b919050565b600060208284031215611f2f57600080fd5b81356118a1816122ee565b600060208284031215611f4c57600080fd5b81516118a1816122ee565b60008060408385031215611f6a57600080fd5b8235611f75816122ee565b91506020830135611f85816122ee565b809150509250929050565b600080600060608486031215611fa557600080fd5b8335611fb0816122ee565b92506020840135611fc0816122ee565b929592945050506040919091013590565b60008060408385031215611fe457600080fd5b8235611fef816122ee565b946020939093013593505050565b6000602080838503121561201057600080fd5b823567ffffffffffffffff8082111561202857600080fd5b818501915085601f83011261203c57600080fd5b81358181111561204e5761204e6122d8565b8060051b604051601f19603f83011681018181108582111715612073576120736122d8565b604052828152858101935084860182860187018a101561209257600080fd5b600095505b838610156120bc576120a881611f0d565b855260019590950194938601938601612097565b5098975050505050505050565b6000602082840312156120db57600080fd5b813580151581146118a157600080fd5b6000602082840312156120fd57600080fd5b5035919050565b6000806040838503121561211757600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561215357858101830151858201604001528201612137565b81811115612165576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122005784516001600160a01b0316835293830193918301916001016121db565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612234576122346122ac565b500190565b60008261225657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612275576122756122ac565b500290565b60008282101561228c5761228c6122ac565b500390565b60006000198214156122a5576122a56122ac565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7fcabc57824830d728c09064ae60c8e92ee6069b45d0f0ab8874b124d375c6264736f6c63430008070033
Deployed Bytecode Sourcemap
4175:16230:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6733:83;;;;;;;;;;-1:-1:-1;6803:5:0;;;;;;;;;;;-1:-1:-1;;;6803:5:0;;;;6733:83;;;;6803:5;6733:83;:::i;:::-;;;;;;;;7658:193;;;;;;;;;;-1:-1:-1;7658:193:0;;;;;:::i;:::-;;:::i;:::-;;;4370:14:1;;4363:22;4345:41;;4333:2;4318:18;7658:193:0;4205:187:1;15008:105:0;;;;;;;;;;-1:-1:-1;15008:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;15088:17:0;15065:4;15088:17;;;:9;:17;;;;;;;;;15008:105;5755:41;;;;;;;;;;-1:-1:-1;5755:41:0;;;;-1:-1:-1;;;;;5755:41:0;;;;;;-1:-1:-1;;;;;3852:32:1;;;3834:51;;3822:2;3807:18;5755:41:0;3688:203:1;7010:95:0;;;;;;;;;;-1:-1:-1;4781:12:0;7010:95;;;10802:25:1;;;10790:2;10775:18;7010:95:0;10656:177:1;7859:446:0;;;;;;;;;;-1:-1:-1;7859:446:0;;;;;:::i;:::-;;:::i;5623:80::-;;;;;;;;;;;;5661:42;5623:80;;14650:192;;;;;;;;;;-1:-1:-1;14650:192:0;;;;;:::i;:::-;;:::i;:::-;;6098:49;;;;;;;;;;;;;;;;6919:83;;;;;;;;;;-1:-1:-1;6919:83:0;;4404:1;11965:36:1;;11953:2;11938:18;6919:83:0;11823:184:1;14850:150:0;;;;;;;;;;-1:-1:-1;14850:150:0;;;;;:::i;:::-;;:::i;19475:291::-;;;;;;;;;;-1:-1:-1;19475:291:0;;;;;:::i;:::-;;:::i;5803:28::-;;;;;;;;;;-1:-1:-1;5803:28:0;;;;-1:-1:-1;;;;;5803:28:0;;;19774:137;;;;;;;;;;-1:-1:-1;19774:137:0;;;;;:::i;:::-;;:::i;14053:235::-;;;;;;;;;;-1:-1:-1;14053:235:0;;;;;:::i;:::-;;:::i;12944:348::-;;;;;;;;;;;;;:::i;6154:47::-;;;;;;;;;;;;;;;;18745:101;;;;;;;;;;-1:-1:-1;18745:101:0;;;;;:::i;:::-;;:::i;15121:196::-;;;;;;;;;;;;;:::i;7113:138::-;;;;;;;;;;-1:-1:-1;7113:138:0;;;;;:::i;:::-;;:::i;1654:148::-;;;;;;;;;;;;;:::i;18858:156::-;;;;;;;;;;-1:-1:-1;18858:156:0;;;;;:::i;:::-;;:::i;4938:25::-;;;;;;;;;;;;;;;;13898:147;;;;;;;;;;;;;:::i;5997:42::-;;;;;;;;;;;;;;;;14433:209;;;;;;;;;;-1:-1:-1;14433:209:0;;;;;:::i;:::-;;:::i;1440:79::-;;;;;;;;;;-1:-1:-1;1478:7:0;1505:6;-1:-1:-1;;;;;1505:6:0;1440:79;;6047:44;;;;;;;;;;;;;;;;19919:311;;;;;;;;;;-1:-1:-1;19919:311:0;;;;;:::i;:::-;;:::i;14296:129::-;;;;;;;;;;-1:-1:-1;14296:129:0;;;;;:::i;:::-;;:::i;7259:199::-;;;;;;;;;;-1:-1:-1;7259:199:0;;;;;:::i;:::-;;:::i;19202:265::-;;;;;;;;;;-1:-1:-1;19202:265:0;;;;;:::i;:::-;;:::i;7466:184::-;;;;;;;;;;-1:-1:-1;7466:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7615:18:0;;;7583:7;7615:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7466:184;20238:162;;;;;;;;;;-1:-1:-1;20238:162:0;;;;;:::i;:::-;;:::i;19026:168::-;;;;;;;;;;-1:-1:-1;19026:168:0;;;;;:::i;:::-;;:::i;1814:244::-;;;;;;;;;;-1:-1:-1;1814:244:0;;;;;:::i;:::-;;:::i;5712:36::-;;;;;;;;;;;;;;;;7658:193;7760:4;7782:39;279:10;7805:7;7814:6;7782:8;:39::i;:::-;-1:-1:-1;7839:4:0;7658:193;;;;;:::o;7859:446::-;7991:4;8008:36;8018:6;8026:9;8037:6;8008:9;:36::i;:::-;8055:220;8078:6;279:10;8126:138;8182:6;8126:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8126:19:0;;;;;;:11;:19;;;;;;;;279:10;8126:33;;;;;;;;;;:37;:138::i;:::-;8055:8;:220::i;:::-;-1:-1:-1;8293:4:0;7859:446;;;;;:::o;14650:192::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;;;;;;;;;14729:9:::1;14725:110;14746:7;:14;14743:1;:17;14725:110;;;14805:4;14781:9;:21;14791:7;14799:1;14791:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14781:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14781:21:0;:28;;-1:-1:-1;;14781:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14762:3;::::1;::::0;::::1;:::i;:::-;;;;14725:110;;;;14650:192:::0;:::o;14850:150::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14922:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14918:75;;;-1:-1:-1::0;;;;;14956:17:0;::::1;14976:5;14956:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14956:25:0::1;::::0;;14918:75:::1;14850:150:::0;:::o;19475:291::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;19614:1:::1;19598:12;:17;;19569:47;;;::::0;::::1;;19674:1;19657:13;:18;;19627:49;;;::::0;::::1;;19687:14;:29:::0;;;;19727:15:::1;:31:::0;19475:291::o;19774:137::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;19873:1:::1;19863:6;:11;;19840:35;;;::::0;::::1;;19886:8;:17:::0;19774:137::o;14053:235::-;14151:17;;-1:-1:-1;;;;;14151:17:0;279:10;-1:-1:-1;;;;;14135:33:0;;14127:42;;;;;;14180:17;:45;;-1:-1:-1;;;;;14180:45:0;;;-1:-1:-1;;;;;;14180:45:0;;;;;;;:17;14236:37;;;:18;:37;;;;;:44;;-1:-1:-1;;14236:44:0;14180:45;14236:44;;;14053:235::o;12944:348::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;13111:15:::1;:34:::0;;-1:-1:-1;;;;;;13111:34:0::1;13057:42;13111:34:::0;;::::1;::::0;;;13190:26:::1;::::0;;-1:-1:-1;;;13190:26:0;;;;13057:42;;13190:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;13057:42;13190:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13172:70:0::1;;13251:4;13258:16;-1:-1:-1::0;;;;;13258:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13172:110;::::0;-1:-1:-1;;;;;;13172:110:0::1;::::0;;;;;;-1:-1:-1;;;;;4126:15:1;;;13172:110:0::1;::::0;::::1;4108:34:1::0;4178:15;;4158:18;;;4151:43;4043:18;;13172:110:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13156:13;:126:::0;;-1:-1:-1;;;;;;13156:126:0::1;-1:-1:-1::0;;;;;13156:126:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;12944:348:0:o;18745:101::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;18812:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18812:26:0::1;-1:-1:-1::0;;;;18812:26:0;;::::1;::::0;;;::::1;::::0;;18745:101::o;15121:196::-;15187:17;;-1:-1:-1;;;;;15187:17:0;279:10;-1:-1:-1;;;;;15171:33:0;;15163:42;;;;;;15245:21;15277:32;15245:21;15277:12;:32::i;7113:138::-;-1:-1:-1;;;;;7226:16:0;;7179:7;7226:16;;;:7;:16;;;;;;7206:37;;:19;:37::i;1654:148::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;1761:1:::1;1745:6:::0;;1724:40:::1;::::0;-1:-1:-1;;;;;1745:6:0;;::::1;::::0;1724:40:::1;::::0;1761:1;;1724:40:::1;1792:1;1775:19:::0;;-1:-1:-1;;;;;;1775:19:0::1;::::0;;1654:148::o;18858:156::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;18957:11:::1;18942;:26;;18934:35;;;::::0;::::1;;18980:12;:26:::0;18858:156::o;13898:147::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;13957:11:::1;::::0;-1:-1:-1;;;13957:11:0;::::1;;;13956:12;13948:21;;;::::0;::::1;;13980:11;:18:::0;;-1:-1:-1;;;;13980:18:0::1;-1:-1:-1::0;;;13980:18:0::1;::::0;;14022:15:::1;14009:10;:28:::0;13898:147::o;14433:209::-;14513:17;;-1:-1:-1;;;;;14513:17:0;279:10;-1:-1:-1;;;;;14497:33:0;;14489:42;;;;;;14560:24;14578:4;14560:9;:24::i;:::-;14550:6;:34;;:48;;;;;14597:1;14588:6;:10;14550:48;14542:57;;;;;;14610:24;14627:6;14610:16;:24::i;19919:311::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;20073:1:::1;20053:16;:21;;20020:55;;;::::0;::::1;;20135:2;20117:14;:20;;20086:52;;;::::0;::::1;;20149:14;:33:::0;;;;20193:12:::1;:29:::0;19919:311::o;14296:129::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;14379:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;14379:38:0::1;-1:-1:-1::0;;;;14379:38:0;;::::1;::::0;;;::::1;::::0;;14296:129::o;7259:199::-;7364:4;7386:42;279:10;7410:9;7421:6;7386:9;:42::i;19202:265::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;19329:2:::1;19316:9;:15;;19290:42;;;::::0;::::1;;19384:2;19370:10;:16;;19343:44;;;::::0;::::1;;19398:12;:24:::0;;;;19433:13:::1;:26:::0;19202:265::o;20238:162::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;20348:1:::1;20335:9;:14;;20309:41;;;::::0;::::1;;20373:19;:9:::0;20385:7:::1;20373:19;:::i;:::-;20361:9;:31:::0;-1:-1:-1;20238:162:0:o;19026:168::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;19130:14:::1;;19113:13;:31;;19105:40;;;::::0;::::1;;19156:14;:30:::0;19026:168::o;1814:244::-;1567:6;;-1:-1:-1;;;;;1567:6:0;279:10;1567:22;1559:67;;;;-1:-1:-1;;;1559:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1903:22:0;::::1;1895:73;;;::::0;-1:-1:-1;;;1895:73:0;;6960:2:1;1895:73:0::1;::::0;::::1;6942:21:1::0;6999:2;6979:18;;;6972:30;7038:34;7018:18;;;7011:62;-1:-1:-1;;;7089:18:1;;;7082:36;7135:19;;1895:73:0::1;6758:402:1::0;1895:73:0::1;2005:6;::::0;;1984:38:::1;::::0;-1:-1:-1;;;;;1984:38:0;;::::1;::::0;2005:6;::::1;::::0;1984:38:::1;::::0;::::1;2033:6;:17:::0;;-1:-1:-1;;;;;;2033:17:0::1;-1:-1:-1::0;;;;;2033:17:0;;;::::1;::::0;;;::::1;::::0;;1814:244::o;9124:369::-;-1:-1:-1;;;;;9251:19:0;;9243:68;;;;-1:-1:-1;;;9243:68:0;;10453:2:1;9243:68:0;;;10435:21:1;10492:2;10472:18;;;10465:30;10531:34;10511:18;;;10504:62;-1:-1:-1;;;10582:18:1;;;10575:34;10626:19;;9243:68:0;10251:400:1;9243:68:0;-1:-1:-1;;;;;9330:21:0;;9322:68;;;;-1:-1:-1;;;9322:68:0;;7367:2:1;9322:68:0;;;7349:21:1;7406:2;7386:18;;;7379:30;7445:34;7425:18;;;7418:62;-1:-1:-1;;;7496:18:1;;;7489:32;7538:19;;9322:68:0;7165:398:1;9322:68:0;-1:-1:-1;;;;;9401:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9453:32;;10802:25:1;;;9453:32:0;;10775:18:1;9453:32:0;;;;;;;9124:369;;;:::o;9501:3309::-;-1:-1:-1;;;;;9623:18:0;;9615:68;;;;-1:-1:-1;;;9615:68:0;;9643:2:1;9615:68:0;;;9625:21:1;9682:2;9662:18;;;9655:30;9721:34;9701:18;;;9694:62;-1:-1:-1;;;9772:18:1;;;9765:35;9817:19;;9615:68:0;9441:401:1;9615:68:0;-1:-1:-1;;;;;9702:16:0;;9694:64;;;;-1:-1:-1;;;9694:64:0;;5435:2:1;9694:64:0;;;5417:21:1;5474:2;5454:18;;;5447:30;5513:34;5493:18;;;5486:62;-1:-1:-1;;;5564:18:1;;;5557:33;5607:19;;9694:64:0;5233:399:1;9694:64:0;9786:1;9777:6;:10;9769:64;;;;-1:-1:-1;;;9769:64:0;;9233:2:1;9769:64:0;;;9215:21:1;9272:2;9252:18;;;9245:30;9311:34;9291:18;;;9284:62;-1:-1:-1;;;9362:18:1;;;9355:39;9411:19;;9769:64:0;9031:405:1;9769:64:0;-1:-1:-1;;;;;9853:13:0;;;;;;:9;:13;;;;;;;;9852:14;9844:23;;;;;;-1:-1:-1;;;;;9887:15:0;;;;;;:9;:15;;;;;;;;9886:16;9878:25;;;;;;279:10;9923:23;;;;:9;:23;;;;;;;;9922:24;9914:33;;;;;;1478:7;1505:6;-1:-1:-1;;;;;9964:15:0;;;1505:6;;9964:15;;;;:32;;-1:-1:-1;1478:7:0;1505:6;-1:-1:-1;;;;;9983:13:0;;;1505:6;;9983:13;;9964:32;9960:1780;;;10032:11;;-1:-1:-1;;;10032:11:0;;;;10027:87;;10064:34;;-1:-1:-1;;;10064:34:0;;5839:2:1;10064:34:0;;;5821:21:1;5878:2;5858:18;;;5851:30;5917:26;5897:18;;;5890:54;5961:18;;10064:34:0;5637:348:1;10027:87:0;10152:13;;-1:-1:-1;;;;;10146:19:0;;;10152:13;;10146:19;:55;;;;-1:-1:-1;10185:15:0;;-1:-1:-1;;;;;10169:32:0;;;10185:15;;10169:32;;10146:55;10142:307;;;-1:-1:-1;;;;;10226:19:0;;10240:4;10226:19;;;;:44;;-1:-1:-1;;;;;;10249:21:0;;10265:4;10249:21;;10226:44;:71;;;;-1:-1:-1;10280:17:0;;-1:-1:-1;;;;;10274:23:0;;;10280:17;;10274:23;;10226:71;:100;;;;-1:-1:-1;10309:17:0;;-1:-1:-1;;;;;10301:25:0;;;10309:17;;10301:25;;10226:100;10222:212;;;10369:12;;10359:6;:22;;10351:63;;;;-1:-1:-1;;;10351:63:0;;6603:2:1;10351:63:0;;;6585:21:1;6642:2;6622:18;;;6615:30;6681;6661:18;;;6654:58;6729:18;;10351:63:0;6401:352:1;10351:63:0;10475:13;;-1:-1:-1;;;;;10469:19:0;;;10475:13;;10469:19;;;;:46;;-1:-1:-1;10498:17:0;;-1:-1:-1;;;;;10492:23:0;;;10498:17;;10492:23;;10469:46;:69;;;;-1:-1:-1;;;;;;10519:19:0;;10533:4;10519:19;;10469:69;:90;;;;-1:-1:-1;;;;;;10542:17:0;;5661:42;10542:17;;10469:90;10465:454;;;10613:14;;10604:6;10588:13;10598:2;10588:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10580:87;;;;-1:-1:-1;;;10580:87:0;;10049:2:1;10580:87:0;;;10031:21:1;10088:2;10068:18;;;10061:30;10127:34;10107:18;;;10100:62;-1:-1:-1;;;10178:18:1;;;10171:33;10221:19;;10580:87:0;9847:399:1;10580:87:0;10690:17;;-1:-1:-1;;;10690:17:0;;;;10686:218;;;10755:10;;:22;;10768:9;10755:22;:::i;:::-;10736:15;:41;10732:153;;10824:17;;10814:6;:27;;10806:55;;;;-1:-1:-1;;;10806:55:0;;7770:2:1;10806:55:0;;;7752:21:1;7809:2;7789:18;;;7782:30;-1:-1:-1;;;7828:18:1;;;7821:45;7883:18;;10806:55:0;7568:339:1;10806:55:0;10947:28;10978:24;10996:4;10978:9;:24::i;:::-;11055:19;;10947:55;;-1:-1:-1;11032:42:0;;;11107:18;;;;-1:-1:-1;11119:6:0;;-1:-1:-1;;;11119:6:0;;;;11118:7;11107:18;:43;;;;-1:-1:-1;11137:13:0;;-1:-1:-1;;;;;11129:21:0;;;11137:13;;11129:21;;11107:43;:58;;;;-1:-1:-1;11154:11:0;;-1:-1:-1;;;11154:11:0;;;;11107:58;:87;;;;-1:-1:-1;;;;;;11170:24:0;;;;;;:18;:24;;;;;;;;11169:25;11107:87;:114;;;;-1:-1:-1;;;;;;11199:22:0;;;;;;:18;:22;;;;;;;;11198:23;11107:114;11103:626;;;11288:8;;11242:19;;11288:12;11284:166;;11339:45;11378:5;11339:34;11364:8;;11339:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11325:59;;11407:23;11418:11;11407:10;:23::i;:::-;11468:52;11485:34;11508:11;11485:20;:34;:::i;:::-;11468:16;:52::i;:::-;11568:21;11612:22;;11608:106;;11659:35;11672:21;11659:12;:35::i;:::-;11223:506;;11103:626;9998:1742;;9960:1780;-1:-1:-1;;;;;11797:24:0;;11760:12;11797:24;;;:18;:24;;;;;;11775:4;;11797:24;;;:50;;-1:-1:-1;;;;;;11825:22:0;;;;;;:18;:22;;;;;;;;11797:50;11796:102;;;-1:-1:-1;11861:13:0;;-1:-1:-1;;;;;11853:21:0;;;11861:13;;11853:21;;;;:44;;-1:-1:-1;11884:13:0;;-1:-1:-1;;;;;11878:19:0;;;11884:13;;11878:19;;11853:44;11792:957;;;-1:-1:-1;11925:5:0;11792:957;;;11974:13;;-1:-1:-1;;;;;11966:21:0;;;11974:13;;11966:21;:55;;;;-1:-1:-1;12005:15:0;;-1:-1:-1;;;;;11991:30:0;;;12005:15;;11991:30;;11966:55;11963:350;;;-1:-1:-1;;;;;12046:11:0;;;;;;:7;:11;;;;;12060:15;12046:29;;;;12110:14;;12098:9;:26;12157:12;;12147:7;:22;12215:10;;12196:29;12192:106;;;-1:-1:-1;;;;;12254:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12254:20:0;12270:4;12254:20;;;12192:106;12343:13;;-1:-1:-1;;;;;12337:19:0;;;12343:13;;12337:19;:55;;;;-1:-1:-1;12376:15:0;;-1:-1:-1;;;;;12360:32:0;;;12376:15;;12360:32;;12337:55;12333:405;;;-1:-1:-1;;;;;12417:13:0;;;;;;:7;:13;;;;;;:18;;;;:68;;-1:-1:-1;12456:9:0;;-1:-1:-1;;;;;12440:13:0;;;;;;:7;:13;;;;;;12469:15;;12440:25;;;:::i;:::-;:44;;12417:68;12413:310;;;12522:14;;12510:9;:26;12569:12;;12559:7;:22;12413:310;;;12642:15;;12630:9;:27;12690:13;;12680:7;:23;12413:310;12761:41;12776:4;12782:2;12786:6;12794:7;12761:14;:41::i;:::-;9604:3206;9501:3309;;;:::o;2426:224::-;2546:7;2582:12;2574:6;;;;2566:29;;;;-1:-1:-1;;;2566:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2606:9:0;2618:5;2622:1;2618;:5;:::i;:::-;2606:17;2426:224;-1:-1:-1;;;;;2426:224:0:o;13791:99::-;13848:17;;:34;;-1:-1:-1;;;;;13848:17:0;;;;:34;;;;;13875:6;;13848:17;:34;:17;:34;13875:6;13848:17;:34;;;;;;;;;;;;;;;;;;;8313:323;8408:7;8466;;8455;:18;;8433:110;;;;-1:-1:-1;;;8433:110:0;;6192:2:1;8433:110:0;;;6174:21:1;6231:2;6211:18;;;6204:30;6270:34;6250:18;;;6243:62;-1:-1:-1;;;6321:18:1;;;6314:40;6371:19;;8433:110:0;5990:406:1;8433:110:0;8554:19;8576:10;:8;:10::i;:::-;8554:32;-1:-1:-1;8604:24:0;:7;8554:32;8604:11;:24::i;:::-;8597:31;8313:323;-1:-1:-1;;;8313:323:0:o;13300:483::-;6296:6;:13;;-1:-1:-1;;;;6296:13:0;-1:-1:-1;;;6296:13:0;;;13402:16:::1;::::0;;13416:1:::1;13402:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13402:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13402:16:0::1;13378:40;;13447:4;13429;13434:1;13429:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13429:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13473:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13473:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13429:7;;13473:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13463:4;13468:1;13463:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13463:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13538:15:::1;::::0;13506:62:::1;::::0;13523:4:::1;::::0;13538:15:::1;13556:11:::0;13506:8:::1;:62::i;:::-;13579:15;::::0;:196:::1;::::0;-1:-1:-1;;;13579:196:0;;-1:-1:-1;;;;;13579:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13660:11;;13579:15:::1;::::0;13702:4;;13729::::1;::::0;13749:15:::1;::::0;13579:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6332:6:0;:14;;-1:-1:-1;;;;6332:14:0;;;-1:-1:-1;;;;13300:483:0:o;2658:246::-;2716:7;2740:6;2736:47;;-1:-1:-1;2770:1:0;2763:8;;2736:47;2793:9;2805:5;2809:1;2805;:5;:::i;:::-;2793:17;-1:-1:-1;2838:1:0;2829:5;2833:1;2793:17;2829:5;:::i;:::-;:10;2821:56;;;;-1:-1:-1;;;2821:56:0;;8470:2:1;2821:56:0;;;8452:21:1;8509:2;8489:18;;;8482:30;8548:34;8528:18;;;8521:62;-1:-1:-1;;;8599:18:1;;;8592:31;8640:19;;2821:56:0;8268:397:1;2912:132:0;2970:7;2997:39;3001:1;3004;2997:39;;;;;;;;;;;;;;;;;:3;:39::i;12818:118::-;12878:50;12896:4;5661:42;12916:11;12878:9;:50::i;15325:282::-;15481:7;15476:28;;15490:14;:12;:14::i;:::-;15515:44;15533:6;15541:9;15552:6;15515:17;:44::i;:::-;15575:7;15570:29;;15584:15;9017:17;;9005:9;:29;9055:15;;9045:7;:25;9092:16;;9081:8;:27;8961:155;18300:166;18342:7;18363:15;18380;18399:19;:17;:19::i;:::-;18362:56;;-1:-1:-1;18362:56:0;-1:-1:-1;18438:20:0;18362:56;;18438:11;:20::i;:::-;18431:27;;;;18300:166;:::o;3052:223::-;3172:7;3207:12;3200:5;3192:28;;;;-1:-1:-1;;;3192:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3231:9:0;3243:5;3247:1;3243;:5;:::i;8644:309::-;8691:9;;:14;:30;;;;-1:-1:-1;8709:7:0;;:12;8691:30;:47;;;;-1:-1:-1;8725:8:0;;:13;8691:47;8687:60;;;8644:309::o;8687:60::-;8783:9;;;8763:17;:29;8821:7;;;8803:15;:25;8858:8;;;8839:16;:27;-1:-1:-1;8887:13:0;;;;8911:11;;;;8933:12;8644:309::o;15615:610::-;15762:15;15792:23;15830:12;15857:23;15895:12;15922:13;15949:19;15960:7;15949:10;:19::i;:::-;-1:-1:-1;;;;;15997:15:0;;;;;;:7;:15;;;;;;15747:221;;-1:-1:-1;15747:221:0;;-1:-1:-1;15747:221:0;;-1:-1:-1;15747:221:0;-1:-1:-1;15747:221:0;-1:-1:-1;15747:221:0;-1:-1:-1;15997:28:0;;15747:221;15997:19;:28::i;:::-;-1:-1:-1;;;;;15979:15:0;;;;;;;:7;:15;;;;;;:46;;;;16057:18;;;;;;;:39;;16080:15;16057:22;:39::i;:::-;-1:-1:-1;;;;;16036:18:0;;;;;;:7;:18;;;;;:60;16107:16;16117:5;16107:9;:16::i;:::-;16134:23;16146:4;16152;16134:11;:23::i;:::-;16190:9;-1:-1:-1;;;;;16173:44:0;16182:6;-1:-1:-1;;;;;16173:44:0;;16201:15;16173:44;;;;10802:25:1;;10790:2;10775:18;;10656:177;16173:44:0;;;;;;;;15736:489;;;;;;15615:610;;;:::o;18474:263::-;18572:7;;18525;;;;4781:12;18640:20;18572:7;4781:12;18640:11;:20::i;:::-;18630:7;:30;18626:61;;;-1:-1:-1;;18670:7:0;;;4781:12;;-1:-1:-1;18474:263:0;-1:-1:-1;18474:263:0:o;18626:61::-;18712:7;;18721;;-1:-1:-1;18474:263:0;-1:-1:-1;18474:263:0:o;16644:625::-;16744:7;16766;16788;16810;16832;16854;16890:23;16915:12;16929:13;16959:40;16971:7;16980:9;;16991:7;;16959:11;:40::i;:::-;16889:110;;;;;;17010:19;17032:10;:8;:10::i;:::-;17010:32;;17054:15;17071:23;17096:12;17125:46;17137:7;17146:4;17152:5;17159:11;17125;:46::i;:::-;17053:118;;-1:-1:-1;17053:118:0;-1:-1:-1;17053:118:0;-1:-1:-1;17232:15:0;;-1:-1:-1;17249:4:0;;-1:-1:-1;17255:5:0;;-1:-1:-1;;;;;16644:625:0;;;;;;;:::o;2282:136::-;2340:7;2367:43;2371:1;2374;2367:43;;;;;;;;;;;;;;;;;:3;:43::i;2095:179::-;2153:7;;2185:5;2189:1;2185;:5;:::i;:::-;2173:17;;2214:1;2209;:6;;2201:46;;;;-1:-1:-1;;;2201:46:0;;8114:2:1;2201:46:0;;;8096:21:1;8153:2;8133:18;;;8126:30;8192:29;8172:18;;;8165:57;8239:18;;2201:46:0;7912:351:1;16233:211:0;16286:19;16308:10;:8;:10::i;:::-;16286:32;-1:-1:-1;16329:13:0;16345:22;:5;16286:32;16345:9;:22::i;:::-;16419:4;16403:22;;;;:7;:22;;;;;;16329:38;;-1:-1:-1;16403:33:0;;16329:38;16403:26;:33::i;:::-;16394:4;16378:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16233:211:0:o;16452:147::-;16530:7;;:17;;16542:4;16530:11;:17::i;:::-;16520:7;:27;16571:10;;:20;;16586:4;16571:14;:20::i;:::-;16558:10;:33;-1:-1:-1;;16452:147:0:o;17277:471::-;17446:7;;;;17540:30;17566:3;17540:21;:7;17552:8;17540:11;:21::i;:30::-;17525:45;-1:-1:-1;17581:13:0;17597:28;17621:3;17597:19;:7;17609:6;17597:11;:19::i;:28::-;17581:44;-1:-1:-1;17636:23:0;17662:28;17581:44;17662:17;:7;17674:4;17662:11;:17::i;:::-;:21;;:28::i;:::-;17636:54;17728:4;;-1:-1:-1;17734:5:0;;-1:-1:-1;17277:471:0;;-1:-1:-1;;;;;17277:471:0:o;17756:536::-;17950:7;;;;18047:24;:7;18059:11;18047;:24::i;:::-;18029:42;-1:-1:-1;18082:12:0;18097:21;:4;18106:11;18097:8;:21::i;:::-;18082:36;-1:-1:-1;18129:13:0;18145:22;:5;18155:11;18145:9;:22::i;:::-;18129:38;-1:-1:-1;18178:23:0;18204:28;18129:38;18204:17;:7;18216:4;18204:11;:17::i;:28::-;18253:7;;;;-1:-1:-1;18279:4:0;;-1:-1:-1;17756:536:0;;-1:-1:-1;;;;;;;17756:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:273::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3189:5;3182:13;3175:21;3168:5;3165:32;3155:60;;3211:1;3208;3201:12;3250:180;3309:6;3362:2;3350:9;3341:7;3337:23;3333:32;3330:52;;;3378:1;3375;3368:12;3330:52;-1:-1:-1;3401:23:1;;3250:180;-1:-1:-1;3250:180:1:o;3435:248::-;3503:6;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;-1:-1:-1;;3603:23:1;;;3673:2;3658:18;;;3645:32;;-1:-1:-1;3435:248:1:o;4631:597::-;4743:4;4772:2;4801;4790:9;4783:21;4833:6;4827:13;4876:6;4871:2;4860:9;4856:18;4849:34;4901:1;4911:140;4925:6;4922:1;4919:13;4911:140;;;5020:14;;;5016:23;;5010:30;4986:17;;;5005:2;4982:26;4975:66;4940:10;;4911:140;;;5069:6;5066:1;5063:13;5060:91;;;5139:1;5134:2;5125:6;5114:9;5110:22;5106:31;5099:42;5060:91;-1:-1:-1;5212:2:1;5191:15;-1:-1:-1;;5187:29:1;5172:45;;;;5219:2;5168:54;;4631:597;-1:-1:-1;;;4631:597:1:o;8670:356::-;8872:2;8854:21;;;8891:18;;;8884:30;8950:34;8945:2;8930:18;;8923:62;9017:2;9002:18;;8670:356::o;10838:980::-;11100:4;11148:3;11137:9;11133:19;11179:6;11168:9;11161:25;11205:2;11243:6;11238:2;11227:9;11223:18;11216:34;11286:3;11281:2;11270:9;11266:18;11259:31;11310:6;11345;11339:13;11376:6;11368;11361:22;11414:3;11403:9;11399:19;11392:26;;11453:2;11445:6;11441:15;11427:29;;11474:1;11484:195;11498:6;11495:1;11492:13;11484:195;;;11563:13;;-1:-1:-1;;;;;11559:39:1;11547:52;;11654:15;;;;11619:12;;;;11595:1;11513:9;11484:195;;;-1:-1:-1;;;;;;;11735:32:1;;;;11730:2;11715:18;;11708:60;-1:-1:-1;;;11799:3:1;11784:19;11777:35;11696:3;10838:980;-1:-1:-1;;;10838:980:1:o;12012:128::-;12052:3;12083:1;12079:6;12076:1;12073:13;12070:39;;;12089:18;;:::i;:::-;-1:-1:-1;12125:9:1;;12012:128::o;12145:217::-;12185:1;12211;12201:132;;12255:10;12250:3;12246:20;12243:1;12236:31;12290:4;12287:1;12280:15;12318:4;12315:1;12308:15;12201:132;-1:-1:-1;12347:9:1;;12145:217::o;12367:168::-;12407:7;12473:1;12469;12465:6;12461:14;12458:1;12455:21;12450:1;12443:9;12436:17;12432:45;12429:71;;;12480:18;;:::i;:::-;-1:-1:-1;12520:9:1;;12367:168::o;12540:125::-;12580:4;12608:1;12605;12602:8;12599:34;;;12613:18;;:::i;:::-;-1:-1:-1;12650:9:1;;12540:125::o;12670:135::-;12709:3;-1:-1:-1;;12730:17:1;;12727:43;;;12750:18;;:::i;:::-;-1:-1:-1;12797:1:1;12786:13;;12670:135::o;12810:127::-;12871:10;12866:3;12862:20;12859:1;12852:31;12902:4;12899:1;12892:15;12926:4;12923:1;12916:15;12942:127;13003:10;12998:3;12994:20;12991:1;12984:31;13034:4;13031:1;13024:15;13058:4;13055:1;13048:15;13074:127;13135:10;13130:3;13126:20;13123:1;13116:31;13166:4;13163:1;13156:15;13190:4;13187:1;13180:15;13206:131;-1:-1:-1;;;;;13281:31:1;;13271:42;;13261:70;;13327:1;13324;13317:12
Swarm Source
ipfs://b7fcabc57824830d728c09064ae60c8e92ee6069b45d0f0ab8874b124d375c62
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.