ERC-20
Overview
Max Total Supply
10,000,000 HMU
Holders
71
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 HMUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HMU
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-23 */ // SPDX-License-Identifier: MIT /* Telegram: https://t.me/hmuportal Twitter: https://twitter.com/hitmeupeth Website: Hmueth.com */ pragma solidity ^0.8.9; 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 internal _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 HMU is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "HMU"; string private constant _symbol = "HMU"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromMax; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**7; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 15; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 60; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xb21361246C1Ec76F00030f51BA55e2190Ce2bA85); address payable private _marketingAddress = payable(0xb21361246C1Ec76F00030f51BA55e2190Ce2bA85); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal.mul(2).div(100); uint256 public _maxWalletSize = _tTotal.mul(2).div(100); uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000); event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromMax[owner()] = true; _isExcludedFromMax[address(this)] = true; _isExcludedFromMax[_developmentAddress] = true; _isExcludedFromMax[_marketingAddress] = 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) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } if (!_isExcludedFromMax[from]){ require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); } require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair && !_isExcludedFromMax[to]) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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.mul(4).div(5)); _developmentAddress.transfer(amount.mul(1).div(5)); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } 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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be between 0% and 0%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 99, "Buy tax must be between 0% and 99%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be between 0% and 0%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 1000, "Sell tax must be between 0% and 1000%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function exemptedFromMax() public onlyOwner { } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 amountPercent) public onlyOwner { require(amountPercent>0); _maxTxAmount = (_tTotal * amountPercent ) / 100; } function setMaxWalletSize(uint256 amountPercent) public onlyOwner { require(amountPercent>0); _maxWalletSize = (_tTotal * amountPercent ) / 100; } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function excludeMultipleAccountsFromMax(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromMax[accounts[i]] = excluded; } } }
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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exemptedFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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
608060405262000019662386f26fc100006000196200053a565b620000279060001962000567565b60075560006009819055600f600a819055600b829055603c600c819055600d839055600e8190559190556010556013805473b21361246c1ec76f00030f51ba55e2190ce2ba856001600160a01b0319918216811790925560148054909116909117905560168054600160b01b61ffff60a81b19909116179055620000da6064620000c6662386f26fc10000600262000407602090811b6200108417901c565b6200049e60201b6200110d1790919060201c565b601755620001056064620000c66002662386f26fc100006200040760201b620010841790919060201c565b601855620001316103e8620000c66001662386f26fc100006200040760201b620010841790919060201c565b6019553480156200014157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000225919062000581565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000581565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000581565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530808652838620805483168417905560138054881687528487208054841685179055601480548916885285882080548516861790558754891688526006875285882080548516861790559187528487208054841685179055548716865283862080548316841790555490951684528184208054909516179093559151662386f26fc10000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200063d565b6000826000036200041b5750600062000498565b6000620004298385620005ac565b905082620004388583620005ce565b14620004955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200049583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004e860201b60201c565b600081836200050c5760405162461bcd60e51b81526004016200048c9190620005e5565b5060006200051b8486620005ce565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200054c576200054c62000524565b500690565b634e487b7160e01b600052601160045260246000fd5b6000828210156200057c576200057c62000551565b500390565b6000602082840312156200059457600080fd5b81516001600160a01b03811681146200049557600080fd5b6000816000190483118215151615620005c957620005c962000551565b500290565b600082620005e057620005e062000524565b500490565b600060208083528351808285015260005b818110156200061457858101830151858201604001528201620005f6565b8181111562000627576000604083870101525b50601f01601f1916929092016040019392505050565b61237c806200064d6000396000f3fe6080604052600436106102015760003560e01c806374010ece1161011d57806398a5c315116100b0578063c3c8cd801161007f578063dd62ed3e11610064578063dd62ed3e146105b8578063ea1644d5146105fe578063f2fde38b1461061e57600080fd5b8063c3c8cd8014610583578063c492f0461461059857600080fd5b806398a5c315146104f3578063a2a957bb14610513578063a9059cbb14610533578063bfd792841461055357600080fd5b80638da5cb5b116100ec5780638da5cb5b1461049f5780638f70ccf7146104bd5780638f9a55c0146104dd57806395d89b411461022f57600080fd5b806374010ece14610427578063751039fc146104475780637d1db4a51461045c5780637f2feddc1461047257600080fd5b80633654c531116101955780636d8aa8f8116101645780636d8aa8f8146103bd5780636fc3eaec146103dd57806370a08231146103f2578063715018a61461041257600080fd5b80633654c5311461034857806341c6ee381461035d57806349bd5a5e1461037d5780636b9990531461039d57600080fd5b806318160ddd116101d157806318160ddd146102d257806323b872dd146102f65780632fd689e314610316578063313ce5671461032c57600080fd5b8062b8cf2a1461020d57806306fdde031461022f578063095ea7b31461026a5780631694505e1461029a57600080fd5b3661020857005b600080fd5b34801561021957600080fd5b5061022d610228366004611ee4565b61063e565b005b34801561023b57600080fd5b506040805180820182526003815262484d5560e81b602082015290516102619190611fa9565b60405180910390f35b34801561027657600080fd5b5061028a610285366004611ffe565b6106f7565b6040519015158152602001610261565b3480156102a657600080fd5b506015546102ba906001600160a01b031681565b6040516001600160a01b039091168152602001610261565b3480156102de57600080fd5b50662386f26fc100005b604051908152602001610261565b34801561030257600080fd5b5061028a61031136600461202a565b61070e565b34801561032257600080fd5b506102e860195481565b34801561033857600080fd5b5060405160098152602001610261565b34801561035457600080fd5b5061022d610777565b34801561036957600080fd5b5061022d61037836600461207b565b6107c1565b34801561038957600080fd5b506016546102ba906001600160a01b031681565b3480156103a957600080fd5b5061022d6103b83660046120ff565b610880565b3480156103c957600080fd5b5061022d6103d836600461211c565b6108e9565b3480156103e957600080fd5b5061022d61096a565b3480156103fe57600080fd5b506102e861040d3660046120ff565b6109b5565b34801561041e57600080fd5b5061022d6109d7565b34801561043357600080fd5b5061022d610442366004612137565b610a76565b34801561045357600080fd5b5061022d610aee565b34801561046857600080fd5b506102e860175481565b34801561047e57600080fd5b506102e861048d3660046120ff565b60126020526000908152604090205481565b3480156104ab57600080fd5b506000546001600160a01b03166102ba565b3480156104c957600080fd5b5061022d6104d836600461211c565b610b48565b3480156104e957600080fd5b506102e860185481565b3480156104ff57600080fd5b5061022d61050e366004612137565b610bbf565b34801561051f57600080fd5b5061022d61052e366004612150565b610c0c565b34801561053f57600080fd5b5061028a61054e366004611ffe565b610ddd565b34801561055f57600080fd5b5061028a61056e3660046120ff565b60116020526000908152604090205460ff1681565b34801561058f57600080fd5b5061022d610dea565b3480156105a457600080fd5b5061022d6105b336600461207b565b610e3e565b3480156105c457600080fd5b506102e86105d3366004612182565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561060a57600080fd5b5061022d610619366004612137565b610ef7565b34801561062a57600080fd5b5061022d6106393660046120ff565b610f6f565b6000546001600160a01b0316331461068b5760405162461bcd60e51b8152602060048201819052602482015260008051602061232783398151915260448201526064015b60405180910390fd5b60005b81518110156106f3576001601160008484815181106106af576106af6121bb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106eb816121e7565b91505061068e565b5050565b600061070433848461114f565b5060015b92915050565b600061071b848484611273565b61076d8433610768856040518060600160405280602881526020016122ff602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906117f6565b61114f565b5060019392505050565b6000546001600160a01b031633146107bf5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b565b6000546001600160a01b031633146108095760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60005b8281101561087a57816006600086868581811061082b5761082b6121bb565b905060200201602081019061084091906120ff565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610872816121e7565b91505061080c565b50505050565b6000546001600160a01b031633146108c85760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146109315760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60168054911515600160b01b027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061099f57506014546001600160a01b0316336001600160a01b0316145b6109a857600080fd5b476109b281611830565b50565b6001600160a01b038116600090815260026020526040812054610708906118c5565b6000546001600160a01b03163314610a1f5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610abe5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60008111610acb57600080fd5b6064610ade82662386f26fc10000612200565b610ae8919061221f565b60175550565b6000546001600160a01b03163314610b365760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b662386f26fc100006017819055601855565b6000546001600160a01b03163314610b905760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60168054911515600160a01b0274ff000000000000000000000000000000000000000019909216919091179055565b6000546001600160a01b03163314610c075760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b601955565b6000546001600160a01b03163314610c545760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b8315610cb05760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420302560d81b6064820152608401610682565b6063821115610d0c5760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642039604482015261392560f01b6064820152608401610682565b8215610d695760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420302560d01b6064820152608401610682565b6103e8811115610dc95760405162461bcd60e51b815260206004820152602560248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015264313030302560d81b6064820152608401610682565b600993909355600b91909155600a55600c55565b6000610704338484611273565b6013546001600160a01b0316336001600160a01b03161480610e1f57506014546001600160a01b0316336001600160a01b0316145b610e2857600080fd5b6000610e33306109b5565b90506109b281611942565b6000546001600160a01b03163314610e865760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60005b8281101561087a578160056000868685818110610ea857610ea86121bb565b9050602002016020810190610ebd91906120ff565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610eef816121e7565b915050610e89565b6000546001600160a01b03163314610f3f5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60008111610f4c57600080fd5b6064610f5f82662386f26fc10000612200565b610f69919061221f565b60185550565b6000546001600160a01b03163314610fb75760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b6001600160a01b03811661101c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610682565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60008260000361109657506000610708565b60006110a28385612200565b9050826110af858361221f565b146111065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610682565b9392505050565b600061110683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611abc565b6001600160a01b0383166111b15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610682565b6001600160a01b0382166112125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610682565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610682565b6001600160a01b0382166113395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610682565b6000811161139b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610682565b6000546001600160a01b038481169116148015906113c757506000546001600160a01b03838116911614155b156116ef57601654600160a01b900460ff16611460576000546001600160a01b038481169116146114605760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610682565b6001600160a01b03831660009081526006602052604090205460ff166114d2576017548111156114d25760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610682565b6001600160a01b03831660009081526011602052604090205460ff1615801561151457506001600160a01b03821660009081526011602052604090205460ff16155b61156c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610682565b6016546001600160a01b038381169116148015906115a357506001600160a01b03821660009081526006602052604090205460ff16155b1561161857601854816115b5846109b5565b6115bf9190612241565b106116185760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610682565b6000611623306109b5565b60195460175491925082101590821061163c5760175491505b8080156116535750601654600160a81b900460ff16155b801561166d57506016546001600160a01b03868116911614155b80156116825750601654600160b01b900460ff165b80156116a757506001600160a01b03851660009081526005602052604090205460ff16155b80156116cc57506001600160a01b03841660009081526005602052604090205460ff16155b156116ec576116da82611942565b4780156116ea576116ea47611830565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061173157506001600160a01b03831660009081526005602052604090205460ff165b8061176357506016546001600160a01b0385811691161480159061176357506016546001600160a01b03848116911614155b15611770575060006117ea565b6016546001600160a01b03858116911614801561179b57506015546001600160a01b03848116911614155b156117ad57600954600d55600a54600e555b6016546001600160a01b0384811691161480156117d857506015546001600160a01b03858116911614155b156117ea57600b54600d55600c54600e555b61087a84848484611aea565b6000818484111561181a5760405162461bcd60e51b81526004016106829190611fa9565b5060006118278486612259565b95945050505050565b6014546001600160a01b03166108fc611855600561184f856004611084565b9061110d565b6040518115909202916000818181858888f1935050505015801561187d573d6000803e3d6000fd5b506013546001600160a01b03166108fc61189d600561184f856001611084565b6040518115909202916000818181858888f193505050501580156106f3573d6000803e3d6000fd5b600060075482111561192c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610682565b6000611936611b18565b9050611106838261110d565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061198a5761198a6121bb565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a079190612270565b81600181518110611a1a57611a1a6121bb565b6001600160a01b039283166020918202929092010152601554611a40913091168461114f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a7990859060009086903090429060040161228d565b600060405180830381600087803b158015611a9357600080fd5b505af1158015611aa7573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b60008183611add5760405162461bcd60e51b81526004016106829190611fa9565b506000611827848661221f565b80611af757611af7611b3b565b611b02848484611b69565b8061087a5761087a600f54600d55601054600e55565b6000806000611b25611c60565b9092509050611b34828261110d565b9250505090565b600d54158015611b4b5750600e54155b15611b5257565b600d8054600f55600e805460105560009182905555565b600080600080600080611b7b87611c9e565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611bad9087611cfb565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bdc9086611d3d565b6001600160a01b038916600090815260026020526040902055611bfe81611d9c565b611c088483611de6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c4d91815260200190565b60405180910390a3505050505050505050565b6007546000908190662386f26fc10000611c7a828261110d565b821015611c9557505060075492662386f26fc1000092509050565b90939092509050565b6000806000806000806000806000611cbb8a600d54600e54611e0a565b9250925092506000611ccb611b18565b90506000806000611cde8e878787611e59565b919e509c509a509598509396509194505050505091939550919395565b600061110683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117f6565b600080611d4a8385612241565b9050838110156111065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610682565b6000611da6611b18565b90506000611db48383611084565b30600090815260026020526040902054909150611dd19082611d3d565b30600090815260026020526040902055505050565b600754611df39083611cfb565b600755600854611e039082611d3d565b6008555050565b6000808080611e1e606461184f8989611084565b90506000611e31606461184f8a89611084565b90506000611e4982611e438b86611cfb565b90611cfb565b9992985090965090945050505050565b6000808080611e688886611084565b90506000611e768887611084565b90506000611e848888611084565b90506000611e9682611e438686611cfb565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109b257600080fd5b8035611edf81611ebf565b919050565b60006020808385031215611ef757600080fd5b823567ffffffffffffffff80821115611f0f57600080fd5b818501915085601f830112611f2357600080fd5b813581811115611f3557611f35611ea9565b8060051b604051601f19603f83011681018181108582111715611f5a57611f5a611ea9565b604052918252848201925083810185019188831115611f7857600080fd5b938501935b82851015611f9d57611f8e85611ed4565b84529385019392850192611f7d565b98975050505050505050565b600060208083528351808285015260005b81811015611fd657858101830151858201604001528201611fba565b81811115611fe8576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561201157600080fd5b823561201c81611ebf565b946020939093013593505050565b60008060006060848603121561203f57600080fd5b833561204a81611ebf565b9250602084013561205a81611ebf565b929592945050506040919091013590565b80358015158114611edf57600080fd5b60008060006040848603121561209057600080fd5b833567ffffffffffffffff808211156120a857600080fd5b818601915086601f8301126120bc57600080fd5b8135818111156120cb57600080fd5b8760208260051b85010111156120e057600080fd5b6020928301955093506120f6918601905061206b565b90509250925092565b60006020828403121561211157600080fd5b813561110681611ebf565b60006020828403121561212e57600080fd5b6111068261206b565b60006020828403121561214957600080fd5b5035919050565b6000806000806080858703121561216657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561219557600080fd5b82356121a081611ebf565b915060208301356121b081611ebf565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121f9576121f96121d1565b5060010190565b600081600019048311821515161561221a5761221a6121d1565b500290565b60008261223c57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612254576122546121d1565b500190565b60008282101561226b5761226b6121d1565b500390565b60006020828403121561228257600080fd5b815161110681611ebf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122dd5784516001600160a01b0316835293830193918301916001016122b8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209c86a2889d0e1ef08c13ea9a527f816570005436040291e1929689718d47bbef64736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102015760003560e01c806374010ece1161011d57806398a5c315116100b0578063c3c8cd801161007f578063dd62ed3e11610064578063dd62ed3e146105b8578063ea1644d5146105fe578063f2fde38b1461061e57600080fd5b8063c3c8cd8014610583578063c492f0461461059857600080fd5b806398a5c315146104f3578063a2a957bb14610513578063a9059cbb14610533578063bfd792841461055357600080fd5b80638da5cb5b116100ec5780638da5cb5b1461049f5780638f70ccf7146104bd5780638f9a55c0146104dd57806395d89b411461022f57600080fd5b806374010ece14610427578063751039fc146104475780637d1db4a51461045c5780637f2feddc1461047257600080fd5b80633654c531116101955780636d8aa8f8116101645780636d8aa8f8146103bd5780636fc3eaec146103dd57806370a08231146103f2578063715018a61461041257600080fd5b80633654c5311461034857806341c6ee381461035d57806349bd5a5e1461037d5780636b9990531461039d57600080fd5b806318160ddd116101d157806318160ddd146102d257806323b872dd146102f65780632fd689e314610316578063313ce5671461032c57600080fd5b8062b8cf2a1461020d57806306fdde031461022f578063095ea7b31461026a5780631694505e1461029a57600080fd5b3661020857005b600080fd5b34801561021957600080fd5b5061022d610228366004611ee4565b61063e565b005b34801561023b57600080fd5b506040805180820182526003815262484d5560e81b602082015290516102619190611fa9565b60405180910390f35b34801561027657600080fd5b5061028a610285366004611ffe565b6106f7565b6040519015158152602001610261565b3480156102a657600080fd5b506015546102ba906001600160a01b031681565b6040516001600160a01b039091168152602001610261565b3480156102de57600080fd5b50662386f26fc100005b604051908152602001610261565b34801561030257600080fd5b5061028a61031136600461202a565b61070e565b34801561032257600080fd5b506102e860195481565b34801561033857600080fd5b5060405160098152602001610261565b34801561035457600080fd5b5061022d610777565b34801561036957600080fd5b5061022d61037836600461207b565b6107c1565b34801561038957600080fd5b506016546102ba906001600160a01b031681565b3480156103a957600080fd5b5061022d6103b83660046120ff565b610880565b3480156103c957600080fd5b5061022d6103d836600461211c565b6108e9565b3480156103e957600080fd5b5061022d61096a565b3480156103fe57600080fd5b506102e861040d3660046120ff565b6109b5565b34801561041e57600080fd5b5061022d6109d7565b34801561043357600080fd5b5061022d610442366004612137565b610a76565b34801561045357600080fd5b5061022d610aee565b34801561046857600080fd5b506102e860175481565b34801561047e57600080fd5b506102e861048d3660046120ff565b60126020526000908152604090205481565b3480156104ab57600080fd5b506000546001600160a01b03166102ba565b3480156104c957600080fd5b5061022d6104d836600461211c565b610b48565b3480156104e957600080fd5b506102e860185481565b3480156104ff57600080fd5b5061022d61050e366004612137565b610bbf565b34801561051f57600080fd5b5061022d61052e366004612150565b610c0c565b34801561053f57600080fd5b5061028a61054e366004611ffe565b610ddd565b34801561055f57600080fd5b5061028a61056e3660046120ff565b60116020526000908152604090205460ff1681565b34801561058f57600080fd5b5061022d610dea565b3480156105a457600080fd5b5061022d6105b336600461207b565b610e3e565b3480156105c457600080fd5b506102e86105d3366004612182565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561060a57600080fd5b5061022d610619366004612137565b610ef7565b34801561062a57600080fd5b5061022d6106393660046120ff565b610f6f565b6000546001600160a01b0316331461068b5760405162461bcd60e51b8152602060048201819052602482015260008051602061232783398151915260448201526064015b60405180910390fd5b60005b81518110156106f3576001601160008484815181106106af576106af6121bb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106eb816121e7565b91505061068e565b5050565b600061070433848461114f565b5060015b92915050565b600061071b848484611273565b61076d8433610768856040518060600160405280602881526020016122ff602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906117f6565b61114f565b5060019392505050565b6000546001600160a01b031633146107bf5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b565b6000546001600160a01b031633146108095760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60005b8281101561087a57816006600086868581811061082b5761082b6121bb565b905060200201602081019061084091906120ff565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610872816121e7565b91505061080c565b50505050565b6000546001600160a01b031633146108c85760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146109315760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60168054911515600160b01b027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061099f57506014546001600160a01b0316336001600160a01b0316145b6109a857600080fd5b476109b281611830565b50565b6001600160a01b038116600090815260026020526040812054610708906118c5565b6000546001600160a01b03163314610a1f5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610abe5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60008111610acb57600080fd5b6064610ade82662386f26fc10000612200565b610ae8919061221f565b60175550565b6000546001600160a01b03163314610b365760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b662386f26fc100006017819055601855565b6000546001600160a01b03163314610b905760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60168054911515600160a01b0274ff000000000000000000000000000000000000000019909216919091179055565b6000546001600160a01b03163314610c075760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b601955565b6000546001600160a01b03163314610c545760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b8315610cb05760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420302560d81b6064820152608401610682565b6063821115610d0c5760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642039604482015261392560f01b6064820152608401610682565b8215610d695760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420302560d01b6064820152608401610682565b6103e8811115610dc95760405162461bcd60e51b815260206004820152602560248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015264313030302560d81b6064820152608401610682565b600993909355600b91909155600a55600c55565b6000610704338484611273565b6013546001600160a01b0316336001600160a01b03161480610e1f57506014546001600160a01b0316336001600160a01b0316145b610e2857600080fd5b6000610e33306109b5565b90506109b281611942565b6000546001600160a01b03163314610e865760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60005b8281101561087a578160056000868685818110610ea857610ea86121bb565b9050602002016020810190610ebd91906120ff565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610eef816121e7565b915050610e89565b6000546001600160a01b03163314610f3f5760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b60008111610f4c57600080fd5b6064610f5f82662386f26fc10000612200565b610f69919061221f565b60185550565b6000546001600160a01b03163314610fb75760405162461bcd60e51b815260206004820181905260248201526000805160206123278339815191526044820152606401610682565b6001600160a01b03811661101c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610682565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60008260000361109657506000610708565b60006110a28385612200565b9050826110af858361221f565b146111065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610682565b9392505050565b600061110683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611abc565b6001600160a01b0383166111b15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610682565b6001600160a01b0382166112125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610682565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610682565b6001600160a01b0382166113395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610682565b6000811161139b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610682565b6000546001600160a01b038481169116148015906113c757506000546001600160a01b03838116911614155b156116ef57601654600160a01b900460ff16611460576000546001600160a01b038481169116146114605760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610682565b6001600160a01b03831660009081526006602052604090205460ff166114d2576017548111156114d25760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610682565b6001600160a01b03831660009081526011602052604090205460ff1615801561151457506001600160a01b03821660009081526011602052604090205460ff16155b61156c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610682565b6016546001600160a01b038381169116148015906115a357506001600160a01b03821660009081526006602052604090205460ff16155b1561161857601854816115b5846109b5565b6115bf9190612241565b106116185760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610682565b6000611623306109b5565b60195460175491925082101590821061163c5760175491505b8080156116535750601654600160a81b900460ff16155b801561166d57506016546001600160a01b03868116911614155b80156116825750601654600160b01b900460ff165b80156116a757506001600160a01b03851660009081526005602052604090205460ff16155b80156116cc57506001600160a01b03841660009081526005602052604090205460ff16155b156116ec576116da82611942565b4780156116ea576116ea47611830565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061173157506001600160a01b03831660009081526005602052604090205460ff165b8061176357506016546001600160a01b0385811691161480159061176357506016546001600160a01b03848116911614155b15611770575060006117ea565b6016546001600160a01b03858116911614801561179b57506015546001600160a01b03848116911614155b156117ad57600954600d55600a54600e555b6016546001600160a01b0384811691161480156117d857506015546001600160a01b03858116911614155b156117ea57600b54600d55600c54600e555b61087a84848484611aea565b6000818484111561181a5760405162461bcd60e51b81526004016106829190611fa9565b5060006118278486612259565b95945050505050565b6014546001600160a01b03166108fc611855600561184f856004611084565b9061110d565b6040518115909202916000818181858888f1935050505015801561187d573d6000803e3d6000fd5b506013546001600160a01b03166108fc61189d600561184f856001611084565b6040518115909202916000818181858888f193505050501580156106f3573d6000803e3d6000fd5b600060075482111561192c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610682565b6000611936611b18565b9050611106838261110d565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061198a5761198a6121bb565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a079190612270565b81600181518110611a1a57611a1a6121bb565b6001600160a01b039283166020918202929092010152601554611a40913091168461114f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a7990859060009086903090429060040161228d565b600060405180830381600087803b158015611a9357600080fd5b505af1158015611aa7573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b60008183611add5760405162461bcd60e51b81526004016106829190611fa9565b506000611827848661221f565b80611af757611af7611b3b565b611b02848484611b69565b8061087a5761087a600f54600d55601054600e55565b6000806000611b25611c60565b9092509050611b34828261110d565b9250505090565b600d54158015611b4b5750600e54155b15611b5257565b600d8054600f55600e805460105560009182905555565b600080600080600080611b7b87611c9e565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611bad9087611cfb565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bdc9086611d3d565b6001600160a01b038916600090815260026020526040902055611bfe81611d9c565b611c088483611de6565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c4d91815260200190565b60405180910390a3505050505050505050565b6007546000908190662386f26fc10000611c7a828261110d565b821015611c9557505060075492662386f26fc1000092509050565b90939092509050565b6000806000806000806000806000611cbb8a600d54600e54611e0a565b9250925092506000611ccb611b18565b90506000806000611cde8e878787611e59565b919e509c509a509598509396509194505050505091939550919395565b600061110683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117f6565b600080611d4a8385612241565b9050838110156111065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610682565b6000611da6611b18565b90506000611db48383611084565b30600090815260026020526040902054909150611dd19082611d3d565b30600090815260026020526040902055505050565b600754611df39083611cfb565b600755600854611e039082611d3d565b6008555050565b6000808080611e1e606461184f8989611084565b90506000611e31606461184f8a89611084565b90506000611e4982611e438b86611cfb565b90611cfb565b9992985090965090945050505050565b6000808080611e688886611084565b90506000611e768887611084565b90506000611e848888611084565b90506000611e9682611e438686611cfb565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109b257600080fd5b8035611edf81611ebf565b919050565b60006020808385031215611ef757600080fd5b823567ffffffffffffffff80821115611f0f57600080fd5b818501915085601f830112611f2357600080fd5b813581811115611f3557611f35611ea9565b8060051b604051601f19603f83011681018181108582111715611f5a57611f5a611ea9565b604052918252848201925083810185019188831115611f7857600080fd5b938501935b82851015611f9d57611f8e85611ed4565b84529385019392850192611f7d565b98975050505050505050565b600060208083528351808285015260005b81811015611fd657858101830151858201604001528201611fba565b81811115611fe8576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561201157600080fd5b823561201c81611ebf565b946020939093013593505050565b60008060006060848603121561203f57600080fd5b833561204a81611ebf565b9250602084013561205a81611ebf565b929592945050506040919091013590565b80358015158114611edf57600080fd5b60008060006040848603121561209057600080fd5b833567ffffffffffffffff808211156120a857600080fd5b818601915086601f8301126120bc57600080fd5b8135818111156120cb57600080fd5b8760208260051b85010111156120e057600080fd5b6020928301955093506120f6918601905061206b565b90509250925092565b60006020828403121561211157600080fd5b813561110681611ebf565b60006020828403121561212e57600080fd5b6111068261206b565b60006020828403121561214957600080fd5b5035919050565b6000806000806080858703121561216657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561219557600080fd5b82356121a081611ebf565b915060208301356121b081611ebf565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121f9576121f96121d1565b5060010190565b600081600019048311821515161561221a5761221a6121d1565b500290565b60008261223c57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612254576122546121d1565b500190565b60008282101561226b5761226b6121d1565b500390565b60006020828403121561228257600080fd5b815161110681611ebf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122dd5784516001600160a01b0316835293830193918301916001016122b8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209c86a2889d0e1ef08c13ea9a527f816570005436040291e1929689718d47bbef64736f6c634300080f0033
Deployed Bytecode Sourcemap
4202:14834:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13365:169;;;;;;;;;;-1:-1:-1;13365:169:0;;;;;:::i;:::-;;:::i;:::-;;6979:83;;;;;;;;;;-1:-1:-1;7049:5:0;;;;;;;;;;;-1:-1:-1;;;7049:5:0;;;;6979:83;;;;7049:5;6979:83;:::i;:::-;;;;;;;;7911:193;;;;;;;;;;-1:-1:-1;7911:193:0;;;;;:::i;:::-;;:::i;:::-;;;2657:14:1;;2650:22;2632:41;;2620:2;2605:18;7911:193:0;2492:187:1;5588:41:0;;;;;;;;;;-1:-1:-1;5588:41:0;;;;-1:-1:-1;;;;;5588:41:0;;;;;;-1:-1:-1;;;;;2874:55:1;;;2856:74;;2844:2;2829:18;5588:41:0;2684:252:1;7259:95:0;;;;;;;;;;-1:-1:-1;4800:18:0;7259:95;;;3087:25:1;;;3075:2;3060:18;7259:95:0;2941:177:1;8113:446:0;;;;;;;;;;-1:-1:-1;8113:446:0;;;;;:::i;:::-;;:::i;5903:61::-;;;;;;;;;;;;;;;;7167:83;;;;;;;;;;-1:-1:-1;7167:83:0;;4415:1;3726:36:1;;3714:2;3699:18;7167:83:0;3584:184:1;17905:54:0;;;;;;;;;;;;;:::i;18798:233::-;;;;;;;;;;-1:-1:-1;18798:233:0;;;;;:::i;:::-;;:::i;5636:28::-;;;;;;;;;;-1:-1:-1;5636:28:0;;;;-1:-1:-1;;;;;5636:28:0;;;13543:92;;;;;;;;;;-1:-1:-1;13543:92:0;;;;;:::i;:::-;;:::i;17968:101::-;;;;;;;;;;-1:-1:-1;17968:101:0;;;;;:::i;:::-;;:::i;13121:235::-;;;;;;;;;;;;;:::i;7363:138::-;;;;;;;;;;-1:-1:-1;7363:138:0;;;;;:::i;:::-;;:::i;1676:148::-;;;;;;;;;;;;;:::i;18078:166::-;;;;;;;;;;-1:-1:-1;18078:166:0;;;;;:::i;:::-;;:::i;18429:118::-;;;;;;;;;;;;;:::i;5780:53::-;;;;;;;;;;;;;;;;5327:43;;;;;;;;;;-1:-1:-1;5327:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1460:79;;;;;;;;;;-1:-1:-1;1498:7:0;1525:6;-1:-1:-1;;;;;1525:6:0;1460:79;;12766:101;;;;;;;;;;-1:-1:-1;12766:101:0;;;;;:::i;:::-;;:::i;5840:55::-;;;;;;;;;;;;;;;;17758:139;;;;;;;;;;-1:-1:-1;17758:139:0;;;;;:::i;:::-;;:::i;17052:697::-;;;;;;;;;;-1:-1:-1;17052:697:0;;;;;:::i;:::-;;:::i;7510:199::-;;;;;;;;;;-1:-1:-1;7510:199:0;;;;;:::i;:::-;;:::i;5289:36::-;;;;;;;;;;-1:-1:-1;5289:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12876:236;;;;;;;;;;;;;:::i;18556:234::-;;;;;;;;;;-1:-1:-1;18556:234:0;;;;;:::i;:::-;;:::i;7718:184::-;;;;;;;;;;-1:-1:-1;7718:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7867:18:0;;;7835:7;7867:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7718:184;18252:169;;;;;;;;;;-1:-1:-1;18252:169:0;;;;;:::i;:::-;;:::i;1833:244::-;;;;;;;;;;-1:-1:-1;1833:244:0;;;;;:::i;:::-;;:::i;13365:169::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;;;;;;;;;13441:9:::1;13436:91;13460:5;:12;13456:1;:16;13436:91;;;13511:4;13494;:14;13499:5;13505:1;13499:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13494:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13494:14:0;:21;;-1:-1:-1;;13494:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13474:3;::::1;::::0;::::1;:::i;:::-;;;;13436:91;;;;13365:169:::0;:::o;7911:193::-;8013:4;8035:39;288:10;8058:7;8067:6;8035:8;:39::i;:::-;-1:-1:-1;8092:4:0;7911:193;;;;;:::o;8113:446::-;8245:4;8262:36;8272:6;8280:9;8291:6;8262:9;:36::i;:::-;8309:220;8332:6;288:10;8380:138;8436:6;8380:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8380:19:0;;;;;;:11;:19;;;;;;;;288:10;8380:33;;;;;;;;;;:37;:138::i;:::-;8309:8;:220::i;:::-;-1:-1:-1;8547:4:0;8113:446;;;;;:::o;17905:54::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;17905:54::o;18798:233::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;18914:9:::1;18910:114;18929:19:::0;;::::1;18910:114;;;19004:8;18970:18;:31;18989:8;;18998:1;18989:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18970:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18970:31:0;:42;;-1:-1:-1;;18970:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18950:3;::::1;::::0;::::1;:::i;:::-;;;;18910:114;;;;18798:233:::0;;;:::o;13543:92::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;-1:-1:-1;;;;;13607:12:0::1;13622:5;13607:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13607:20:0::1;::::0;;13543:92::o;17968:101::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;18035:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18035:26:0::1;::::0;;;::::1;::::0;;;::::1;::::0;;17968:101::o;13121:235::-;13187:19;;-1:-1:-1;;;;;13187:19:0;288:10;-1:-1:-1;;;;;13171:35:0;;:72;;;-1:-1:-1;13226:17:0;;-1:-1:-1;;;;;13226:17:0;288:10;-1:-1:-1;;;;;13210:33:0;;13171:72;13163:81;;;;;;13284:21;13316:32;13284:21;13316:12;:32::i;:::-;13152:204;13121:235::o;7363:138::-;-1:-1:-1;;;;;7476:16:0;;7429:7;7476:16;;;:7;:16;;;;;;7456:37;;:19;:37::i;1676:148::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;1783:1:::1;1767:6:::0;;1746:40:::1;::::0;-1:-1:-1;;;;;1767:6:0;;::::1;::::0;1746:40:::1;::::0;1783:1;;1746:40:::1;1814:1;1797:19:::0;;-1:-1:-1;;1797:19:0::1;::::0;;1676:148::o;18078:166::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;18176:1:::1;18162:13;:15;18154:24;;;::::0;::::1;;18233:3;18205:23;18215:13:::0;4800:18:::1;18205:23;:::i;:::-;18204:32;;;;:::i;:::-;18189:12;:47:::0;-1:-1:-1;18078:166:0:o;18429:118::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;4800:18:::1;18482:12;:22:::0;;;18515:14:::1;:24:::0;18429:118::o;12766:101::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;12833:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12833:26:0::1;-1:-1:-1::0;;12833:26:0;;::::1;::::0;;;::::1;::::0;;12766:101::o;17758:139::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;17849:19:::1;:40:::0;17758:139::o;17052:697::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;17216:18;;17186:90:::1;;;::::0;-1:-1:-1;;;17186:90:0;;7630:2:1;17186:90:0::1;::::0;::::1;7612:21:1::0;7669:2;7649:18;;;7642:30;7708:34;7688:18;;;7681:62;-1:-1:-1;;;7759:18:1;;;7752:35;7804:19;;17186:90:0::1;7428:401:1::0;17186:90:0::1;17330:2;17315:11;:17;;17287:84;;;::::0;-1:-1:-1;;;17287:84:0;;8036:2:1;17287:84:0::1;::::0;::::1;8018:21:1::0;8075:2;8055:18;;;8048:30;8114:34;8094:18;;;8087:62;-1:-1:-1;;;8165:18:1;;;8158:32;8207:19;;17287:84:0::1;7834:398:1::0;17287:84:0::1;17413:19:::0;;17382:93:::1;;;::::0;-1:-1:-1;;;17382:93:0;;8439:2:1;17382:93:0::1;::::0;::::1;8421:21:1::0;8478:2;8458:18;;;8451:30;8517:34;8497:18;;;8490:62;-1:-1:-1;;;8568:18:1;;;8561:36;8614:19;;17382:93:0::1;8237:402:1::0;17382:93:0::1;17531:4;17515:12;:20;;17486:91;;;::::0;-1:-1:-1;;;17486:91:0;;8846:2:1;17486:91:0::1;::::0;::::1;8828:21:1::0;8885:2;8865:18;;;8858:30;8924:34;8904:18;;;8897:62;-1:-1:-1;;;8975:18:1;;;8968:35;9020:19;;17486:91:0::1;8644:401:1::0;17486:91:0::1;17590:14;:30:::0;;;;17631:15:::1;:32:::0;;;;17674:12:::1;:26:::0;17711:13:::1;:28:::0;17052:697::o;7510:199::-;7615:4;7637:42;288:10;7661:9;7672:6;7637:9;:42::i;12876:236::-;12942:19;;-1:-1:-1;;;;;12942:19:0;288:10;-1:-1:-1;;;;;12926:35:0;;:72;;;-1:-1:-1;12981:17:0;;-1:-1:-1;;;;;12981:17:0;288:10;-1:-1:-1;;;;;12965:33:0;;12926:72;12918:81;;;;;;13010:23;13036:24;13054:4;13036:9;:24::i;:::-;13010:50;;13071:33;13088:15;13071:16;:33::i;18556:234::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;18673:9:::1;18669:114;18688:19:::0;;::::1;18669:114;;;18763:8;18729:18;:31;18748:8;;18757:1;18748:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18729:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18729:31:0;:42;;-1:-1:-1;;18729:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18709:3;::::1;::::0;::::1;:::i;:::-;;;;18669:114;;18252:169:::0;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;18351:1:::1;18337:13;:15;18329:24;;;::::0;::::1;;18410:3;18382:23;18392:13:::0;4800:18:::1;18382:23;:::i;:::-;18381:32;;;;:::i;:::-;18364:14;:49:::0;-1:-1:-1;18252:169:0:o;1833:244::-;1588:6;;-1:-1:-1;;;;;1588:6:0;288:10;1588:22;1580:67;;;;-1:-1:-1;;;1580:67:0;;6470:2:1;1580:67:0;;;6452:21:1;;;6489:18;;;6482:30;-1:-1:-1;;;;;;;;;;;6528:18:1;;;6521:62;6600:18;;1580:67:0;6268:356:1;1580:67:0;-1:-1:-1;;;;;1922:22:0;::::1;1914:73;;;::::0;-1:-1:-1;;;1914:73:0;;9252:2:1;1914:73:0::1;::::0;::::1;9234:21:1::0;9291:2;9271:18;;;9264:30;9330:34;9310:18;;;9303:62;-1:-1:-1;;;9381:18:1;;;9374:36;9427:19;;1914:73:0::1;9050:402:1::0;1914:73:0::1;2024:6;::::0;;2003:38:::1;::::0;-1:-1:-1;;;;;2003:38:0;;::::1;::::0;2024:6;::::1;::::0;2003:38:::1;::::0;::::1;2052:6;:17:::0;;-1:-1:-1;;2052:17:0::1;-1:-1:-1::0;;;;;2052:17:0;;;::::1;::::0;;;::::1;::::0;;1833:244::o;2677:246::-;2735:7;2759:1;2764;2759:6;2755:47;;-1:-1:-1;2789:1:0;2782:8;;2755:47;2812:9;2824:5;2828:1;2824;:5;:::i;:::-;2812:17;-1:-1:-1;2857:1:0;2848:5;2852:1;2812:17;2848:5;:::i;:::-;:10;2840:56;;;;-1:-1:-1;;;2840:56:0;;9659:2:1;2840:56:0;;;9641:21:1;9698:2;9678:18;;;9671:30;9737:34;9717:18;;;9710:62;-1:-1:-1;;;9788:18:1;;;9781:31;9829:19;;2840:56:0;9457:397:1;2840:56:0;2914:1;2677:246;-1:-1:-1;;;2677:246:0:o;2932:132::-;2990:7;3017:39;3021:1;3024;3017:39;;;;;;;;;;;;;;;;;:3;:39::i;9256:369::-;-1:-1:-1;;;;;9383:19:0;;9375:68;;;;-1:-1:-1;;;9375:68:0;;10061:2:1;9375:68:0;;;10043:21:1;10100:2;10080:18;;;10073:30;10139:34;10119:18;;;10112:62;-1:-1:-1;;;10190:18:1;;;10183:34;10234:19;;9375:68:0;9859:400:1;9375:68:0;-1:-1:-1;;;;;9462:21:0;;9454:68;;;;-1:-1:-1;;;9454:68:0;;10466:2:1;9454:68:0;;;10448:21:1;10505:2;10485:18;;;10478:30;10544:34;10524:18;;;10517:62;-1:-1:-1;;;10595:18:1;;;10588:32;10637:19;;9454:68:0;10264:398:1;9454:68:0;-1:-1:-1;;;;;9533:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9585:32;;3087:25:1;;;9585:32:0;;3060:18:1;9585:32:0;;;;;;;9256:369;;;:::o;9634:2448::-;-1:-1:-1;;;;;9756:18:0;;9748:68;;;;-1:-1:-1;;;9748:68:0;;10869:2:1;9748:68:0;;;10851:21:1;10908:2;10888:18;;;10881:30;10947:34;10927:18;;;10920:62;-1:-1:-1;;;10998:18:1;;;10991:35;11043:19;;9748:68:0;10667:401:1;9748:68:0;-1:-1:-1;;;;;9835:16:0;;9827:64;;;;-1:-1:-1;;;9827:64:0;;11275:2:1;9827:64:0;;;11257:21:1;11314:2;11294:18;;;11287:30;11353:34;11333:18;;;11326:62;-1:-1:-1;;;11404:18:1;;;11397:33;11447:19;;9827:64:0;11073:399:1;9827:64:0;9919:1;9910:6;:10;9902:64;;;;-1:-1:-1;;;9902:64:0;;11679:2:1;9902:64:0;;;11661:21:1;11718:2;11698:18;;;11691:30;11757:34;11737:18;;;11730:62;-1:-1:-1;;;11808:18:1;;;11801:39;11857:19;;9902:64:0;11477:405:1;9902:64:0;1498:7;1525:6;-1:-1:-1;;;;;9984:15:0;;;1525:6;;9984:15;;;;:32;;-1:-1:-1;1498:7:0;1525:6;-1:-1:-1;;;;;10003:13:0;;;1525:6;;10003:13;;9984:32;9980:1369;;;10074:11;;-1:-1:-1;;;10074:11:0;;;;10069:144;;1498:7;1525:6;-1:-1:-1;;;;;10114:15:0;;;1525:6;;10114:15;10106:91;;;;-1:-1:-1;;;10106:91:0;;12089:2:1;10106:91:0;;;12071:21:1;12128:2;12108:18;;;12101:30;12167:34;12147:18;;;12140:62;12238:33;12218:18;;;12211:61;12289:19;;10106:91:0;11887:427:1;10106:91:0;-1:-1:-1;;;;;10234:24:0;;;;;;:18;:24;;;;;;;;10229:128;;10296:12;;10286:6;:22;;10278:63;;;;-1:-1:-1;;;10278:63:0;;12521:2:1;10278:63:0;;;12503:21:1;12560:2;12540:18;;;12533:30;12599;12579:18;;;12572:58;12647:18;;10278:63:0;12319:352:1;10278:63:0;-1:-1:-1;;;;;10394:10:0;;;;;;:4;:10;;;;;;;;10393:11;:24;;;;-1:-1:-1;;;;;;10409:8:0;;;;;;:4;:8;;;;;;;;10408:9;10393:24;10385:72;;;;-1:-1:-1;;;10385:72:0;;12878:2:1;10385:72:0;;;12860:21:1;12917:2;12897:18;;;12890:30;12956:34;12936:18;;;12929:62;-1:-1:-1;;;13007:18:1;;;13000:33;13050:19;;10385:72:0;12676:399:1;10385:72:0;10484:13;;-1:-1:-1;;;;;10478:19:0;;;10484:13;;10478:19;;;;:46;;-1:-1:-1;;;;;;10502:22:0;;;;;;:18;:22;;;;;;;;10501:23;10478:46;10475:173;;;10578:14;;10569:6;10553:13;10563:2;10553:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10545:87;;;;-1:-1:-1;;;10545:87:0;;13415:2:1;10545:87:0;;;13397:21:1;13454:2;13434:18;;;13427:30;13493:34;13473:18;;;13466:62;-1:-1:-1;;;13544:18:1;;;13537:33;13587:19;;10545:87:0;13213:399:1;10545:87:0;10665:28;10696:24;10714:4;10696:9;:24::i;:::-;10774:19;;10838:12;;10665:55;;-1:-1:-1;10750:43:0;;;;10814:36;;10811:124;;10907:12;;10884:35;;10811:124;10956:7;:18;;;;-1:-1:-1;10968:6:0;;-1:-1:-1;;;10968:6:0;;;;10967:7;10956:18;:43;;;;-1:-1:-1;10986:13:0;;-1:-1:-1;;;;;10978:21:0;;;10986:13;;10978:21;;10956:43;:58;;;;-1:-1:-1;11003:11:0;;-1:-1:-1;;;11003:11:0;;;;10956:58;:87;;;;-1:-1:-1;;;;;;11019:24:0;;;;;;:18;:24;;;;;;;;11018:25;10956:87;:114;;;;-1:-1:-1;;;;;;11048:22:0;;;;;;:18;:22;;;;;;;;11047:23;10956:114;10952:386;;;11091:38;11108:20;11091:16;:38::i;:::-;11177:21;11221:22;;11217:106;;11268:35;11281:21;11268:12;:35::i;:::-;11072:266;10952:386;10018:1331;;9980:1369;-1:-1:-1;;;;;11428:24:0;;11363:12;11428:24;;;:18;:24;;;;;;11378:4;;11428:24;;;:50;;-1:-1:-1;;;;;;11456:22:0;;;;;;:18;:22;;;;;;;;11428:50;11427:102;;;-1:-1:-1;11492:13:0;;-1:-1:-1;;;;;11484:21:0;;;11492:13;;11484:21;;;;:44;;-1:-1:-1;11515:13:0;;-1:-1:-1;;;;;11509:19:0;;;11515:13;;11509:19;;11484:44;11423:597;;;-1:-1:-1;11556:5:0;11423:597;;;11640:13;;-1:-1:-1;;;;;11632:21:0;;;11640:13;;11632:21;:55;;;;-1:-1:-1;11671:15:0;;-1:-1:-1;;;;;11657:30:0;;;11671:15;;11657:30;;11632:55;11629:162;;;11720:14;;11708:9;:26;11763:12;;11753:7;:22;11629:162;11851:13;;-1:-1:-1;;;;;11845:19:0;;;11851:13;;11845:19;:55;;;;-1:-1:-1;11884:15:0;;-1:-1:-1;;;;;11868:32:0;;;11884:15;;11868:32;;11845:55;11841:165;;;11933:15;;11921:9;:27;11977:13;;11967:7;:23;11841:165;12033:41;12048:4;12054:2;12058:6;12066:7;12033:14;:41::i;2444:224::-;2564:7;2600:12;2592:6;;;;2584:29;;;;-1:-1:-1;;;2584:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2624:9:0;2636:5;2640:1;2636;:5;:::i;:::-;2624:17;2444:224;-1:-1:-1;;;;;2444:224:0:o;12583:174::-;12640:17;;-1:-1:-1;;;;;12640:17:0;:48;12667:20;12685:1;12667:13;:6;12678:1;12667:10;:13::i;:::-;:17;;:20::i;:::-;12640:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12699:19:0;;-1:-1:-1;;;;;12699:19:0;:50;12728:20;12746:1;12728:13;:6;12699:19;12728:10;:13::i;:20::-;12699:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8568:323;8663:7;8721;;8710;:18;;8688:110;;;;-1:-1:-1;;;8688:110:0;;13949:2:1;8688:110:0;;;13931:21:1;13988:2;13968:18;;;13961:30;14027:34;14007:18;;;14000:62;-1:-1:-1;;;14078:18:1;;;14071:40;14128:19;;8688:110:0;13747:406:1;8688:110:0;8809:19;8831:10;:8;:10::i;:::-;8809:32;-1:-1:-1;8859:24:0;:7;8809:32;8859:11;:24::i;12091:483::-;6059:6;:13;;-1:-1:-1;;;;6059:13:0;-1:-1:-1;;;6059:13:0;;;12193:16:::1;::::0;;12207:1:::1;12193:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12193:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12193:16:0::1;12169:40;;12238:4;12220;12225:1;12220:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12220:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12264:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12264:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12220:7;;12264:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12254:4;12259:1;12254:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12254:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12329:15:::1;::::0;12297:62:::1;::::0;12314:4:::1;::::0;12329:15:::1;12347:11:::0;12297:8:::1;:62::i;:::-;12370:15;::::0;:196:::1;::::0;-1:-1:-1;;;12370:196:0;;-1:-1:-1;;;;;12370:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12451:11;;12370:15:::1;::::0;12493:4;;12520::::1;::::0;12540:15:::1;::::0;12370:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6095:6:0;:14;;-1:-1:-1;;;;6095:14:0;;;-1:-1:-1;;;;12091:483:0:o;3073:223::-;3193:7;3228:12;3221:5;3213:28;;;;-1:-1:-1;;;3213:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3252:9:0;3264:5;3268:1;3264;:5;:::i;13644:282::-;13800:7;13795:28;;13809:14;:12;:14::i;:::-;13834:44;13852:6;13860:9;13871:6;13834:17;:44::i;:::-;13894:7;13889:29;;13903:15;9186:17;;9174:9;:29;9224:15;;9214:7;:25;9130:117;16613:164;16655:7;16676:15;16693;16712:19;:17;:19::i;:::-;16675:56;;-1:-1:-1;16675:56:0;-1:-1:-1;16749:20:0;16675:56;;16749:11;:20::i;:::-;16742:27;;;;16613:164;:::o;8900:221::-;8947:9;;:14;:30;;;;-1:-1:-1;8965:7:0;;:12;8947:30;8943:43;;;8900:221::o;8943:43::-;9019:9;;;8999:17;:29;9057:7;;;9039:15;:25;-1:-1:-1;9078:13:0;;;;9102:11;8900:221::o;13935:610::-;14082:15;14112:23;14150:12;14177:23;14215:12;14242:13;14269:19;14280:7;14269:10;:19::i;:::-;-1:-1:-1;;;;;14317:15:0;;;;;;:7;:15;;;;;;14067:221;;-1:-1:-1;14067:221:0;;-1:-1:-1;14067:221:0;;-1:-1:-1;14067:221:0;-1:-1:-1;14067:221:0;-1:-1:-1;14067:221:0;-1:-1:-1;14317:28:0;;14067:221;14317:19;:28::i;:::-;-1:-1:-1;;;;;14299:15:0;;;;;;;:7;:15;;;;;;:46;;;;14377:18;;;;;;;:39;;14400:15;14377:22;:39::i;:::-;-1:-1:-1;;;;;14356:18:0;;;;;;:7;:18;;;;;:60;14427:16;14437:5;14427:9;:16::i;:::-;14454:23;14466:4;14472;14454:11;:23::i;:::-;14510:9;-1:-1:-1;;;;;14493:44:0;14502:6;-1:-1:-1;;;;;14493:44:0;;14521:15;14493:44;;;;3087:25:1;;3075:2;3060:18;;2941:177;14493:44:0;;;;;;;;14056:489;;;;;;13935:610;;;:::o;16786:257::-;16884:7;;16837;;;;4800:18;16952:20;16884:7;4800:18;16952:11;:20::i;:::-;16942:7;:30;16938:61;;;-1:-1:-1;;16982:7:0;;;4800:18;;-1:-1:-1;16786:257:0;-1:-1:-1;16786:257:0:o;16938:61::-;17018:7;;17027;;-1:-1:-1;16786:257:0;-1:-1:-1;16786:257:0:o;14968:615::-;15068:7;15090;15112;15134;15156;15178;15214:23;15239:12;15253:13;15283:40;15295:7;15304:9;;15315:7;;15283:11;:40::i;:::-;15213:110;;;;;;15334:19;15356:10;:8;:10::i;:::-;15334:32;;15378:15;15395:23;15420:12;15449:46;15461:7;15470:4;15476:5;15483:11;15449;:46::i;:::-;15377:118;;-1:-1:-1;15377:118:0;-1:-1:-1;15377:118:0;-1:-1:-1;15546:15:0;;-1:-1:-1;15563:4:0;;-1:-1:-1;15569:5:0;;-1:-1:-1;;;;;14968:615:0;;;;;;;:::o;2299:136::-;2357:7;2384:43;2388:1;2391;2384:43;;;;;;;;;;;;;;;;;:3;:43::i;2111:179::-;2169:7;;2201:5;2205:1;2201;:5;:::i;:::-;2189:17;;2230:1;2225;:6;;2217:46;;;;-1:-1:-1;;;2217:46:0;;15647:2:1;2217:46:0;;;15629:21:1;15686:2;15666:18;;;15659:30;15725:29;15705:18;;;15698:57;15772:18;;2217:46:0;15445:351:1;14554:211:0;14607:19;14629:10;:8;:10::i;:::-;14607:32;-1:-1:-1;14650:13:0;14666:22;:5;14607:32;14666:9;:22::i;:::-;14740:4;14724:22;;;;:7;:22;;;;;;14650:38;;-1:-1:-1;14724:33:0;;14650:38;14724:26;:33::i;:::-;14715:4;14699:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14554:211:0:o;14774:147::-;14852:7;;:17;;14864:4;14852:11;:17::i;:::-;14842:7;:27;14893:10;;:20;;14908:4;14893:14;:20::i;:::-;14880:10;:33;-1:-1:-1;;14774:147:0:o;15592:469::-;15761:7;;;;15855:30;15881:3;15855:21;:7;15867:8;15855:11;:21::i;:30::-;15840:45;-1:-1:-1;15896:13:0;15912:28;15936:3;15912:19;:7;15924:6;15912:11;:19::i;:28::-;15896:44;-1:-1:-1;15951:23:0;15977:28;15896:44;15977:17;:7;15989:4;15977:11;:17::i;:::-;:21;;:28::i;:::-;15951:54;16041:4;;-1:-1:-1;16047:5:0;;-1:-1:-1;15592:469:0;;-1:-1:-1;;;;;15592:469:0:o;16070:534::-;16264:7;;;;16361:24;:7;16373:11;16361;:24::i;:::-;16343:42;-1:-1:-1;16396:12:0;16411:21;:4;16420:11;16411:8;:21::i;:::-;16396:36;-1:-1:-1;16443:13:0;16459:22;:5;16469:11;16459:9;:22::i;:::-;16443:38;-1:-1:-1;16492:23:0;16518:28;16443:38;16518:17;:7;16530:4;16518:11;:17::i;:28::-;16565:7;;;;-1:-1:-1;16591:4:0;;-1:-1:-1;16070:534:0;;-1:-1:-1;;;;;;;16070:534:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:154;-1:-1:-1;;;;;225:5:1;221:54;214:5;211:65;201:93;;290:1;287;280:12;305:134;373:20;;402:31;373:20;402:31;:::i;:::-;305:134;;;:::o;444:1121::-;528:6;559:2;602;590:9;581:7;577:23;573:32;570:52;;;618:1;615;608:12;570:52;658:9;645:23;687:18;728:2;720:6;717:14;714:34;;;744:1;741;734:12;714:34;782:6;771:9;767:22;757:32;;827:7;820:4;816:2;812:13;808:27;798:55;;849:1;846;839:12;798:55;885:2;872:16;907:2;903;900:10;897:36;;;913:18;;:::i;:::-;959:2;956:1;952:10;991:2;985:9;1054:2;1050:7;1045:2;1041;1037:11;1033:25;1025:6;1021:38;1109:6;1097:10;1094:22;1089:2;1077:10;1074:18;1071:46;1068:72;;;1120:18;;:::i;:::-;1156:2;1149:22;1206:18;;;1240:15;;;;-1:-1:-1;1282:11:1;;;1278:20;;;1310:19;;;1307:39;;;1342:1;1339;1332:12;1307:39;1366:11;;;;1386:148;1402:6;1397:3;1394:15;1386:148;;;1468:23;1487:3;1468:23;:::i;:::-;1456:36;;1419:12;;;;1512;;;;1386:148;;;1553:6;444:1121;-1:-1:-1;;;;;;;;444:1121:1:o;1570:597::-;1682:4;1711:2;1740;1729:9;1722:21;1772:6;1766:13;1815:6;1810:2;1799:9;1795:18;1788:34;1840:1;1850:140;1864:6;1861:1;1858:13;1850:140;;;1959:14;;;1955:23;;1949:30;1925:17;;;1944:2;1921:26;1914:66;1879:10;;1850:140;;;2008:6;2005:1;2002:13;1999:91;;;2078:1;2073:2;2064:6;2053:9;2049:22;2045:31;2038:42;1999:91;-1:-1:-1;2151:2:1;2130:15;-1:-1:-1;;2126:29:1;2111:45;;;;2158:2;2107:54;;1570:597;-1:-1:-1;;;1570:597:1:o;2172:315::-;2240:6;2248;2301:2;2289:9;2280:7;2276:23;2272:32;2269:52;;;2317:1;2314;2307:12;2269:52;2356:9;2343:23;2375:31;2400:5;2375:31;:::i;:::-;2425:5;2477:2;2462:18;;;;2449:32;;-1:-1:-1;;;2172:315:1:o;3123:456::-;3200:6;3208;3216;3269:2;3257:9;3248:7;3244:23;3240:32;3237:52;;;3285:1;3282;3275:12;3237:52;3324:9;3311:23;3343:31;3368:5;3343:31;:::i;:::-;3393:5;-1:-1:-1;3450:2:1;3435:18;;3422:32;3463:33;3422:32;3463:33;:::i;:::-;3123:456;;3515:7;;-1:-1:-1;;;3569:2:1;3554:18;;;;3541:32;;3123:456::o;3773:160::-;3838:20;;3894:13;;3887:21;3877:32;;3867:60;;3923:1;3920;3913:12;3938:689;4030:6;4038;4046;4099:2;4087:9;4078:7;4074:23;4070:32;4067:52;;;4115:1;4112;4105:12;4067:52;4155:9;4142:23;4184:18;4225:2;4217:6;4214:14;4211:34;;;4241:1;4238;4231:12;4211:34;4279:6;4268:9;4264:22;4254:32;;4324:7;4317:4;4313:2;4309:13;4305:27;4295:55;;4346:1;4343;4336:12;4295:55;4386:2;4373:16;4412:2;4404:6;4401:14;4398:34;;;4428:1;4425;4418:12;4398:34;4483:7;4476:4;4466:6;4463:1;4459:14;4455:2;4451:23;4447:34;4444:47;4441:67;;;4504:1;4501;4494:12;4441:67;4535:4;4527:13;;;;-1:-1:-1;4559:6:1;-1:-1:-1;4584:37:1;;4600:20;;;-1:-1:-1;4584:37:1;:::i;:::-;4574:47;;3938:689;;;;;:::o;4863:247::-;4922:6;4975:2;4963:9;4954:7;4950:23;4946:32;4943:52;;;4991:1;4988;4981:12;4943:52;5030:9;5017:23;5049:31;5074:5;5049:31;:::i;5115:180::-;5171:6;5224:2;5212:9;5203:7;5199:23;5195:32;5192:52;;;5240:1;5237;5230:12;5192:52;5263:26;5279:9;5263:26;:::i;5300:180::-;5359:6;5412:2;5400:9;5391:7;5387:23;5383:32;5380:52;;;5428:1;5425;5418:12;5380:52;-1:-1:-1;5451:23:1;;5300:180;-1:-1:-1;5300:180:1:o;5485:385::-;5571:6;5579;5587;5595;5648:3;5636:9;5627:7;5623:23;5619:33;5616:53;;;5665:1;5662;5655:12;5616:53;-1:-1:-1;;5688:23:1;;;5758:2;5743:18;;5730:32;;-1:-1:-1;5809:2:1;5794:18;;5781:32;;5860:2;5845:18;5832:32;;-1:-1:-1;5485:385:1;-1:-1:-1;5485:385:1:o;5875:388::-;5943:6;5951;6004:2;5992:9;5983:7;5979:23;5975:32;5972:52;;;6020:1;6017;6010:12;5972:52;6059:9;6046:23;6078:31;6103:5;6078:31;:::i;:::-;6128:5;-1:-1:-1;6185:2:1;6170:18;;6157:32;6198:33;6157:32;6198:33;:::i;:::-;6250:7;6240:17;;;5875:388;;;;;:::o;6629:127::-;6690:10;6685:3;6681:20;6678:1;6671:31;6721:4;6718:1;6711:15;6745:4;6742:1;6735:15;6761:127;6822:10;6817:3;6813:20;6810:1;6803:31;6853:4;6850:1;6843:15;6877:4;6874:1;6867:15;6893:135;6932:3;6953:17;;;6950:43;;6973:18;;:::i;:::-;-1:-1:-1;7020:1:1;7009:13;;6893:135::o;7033:168::-;7073:7;7139:1;7135;7131:6;7127:14;7124:1;7121:21;7116:1;7109:9;7102:17;7098:45;7095:71;;;7146:18;;:::i;:::-;-1:-1:-1;7186:9:1;;7033:168::o;7206:217::-;7246:1;7272;7262:132;;7316:10;7311:3;7307:20;7304:1;7297:31;7351:4;7348:1;7341:15;7379:4;7376:1;7369:15;7262:132;-1:-1:-1;7408:9:1;;7206:217::o;13080:128::-;13120:3;13151:1;13147:6;13144:1;13141:13;13138:39;;;13157:18;;:::i;:::-;-1:-1:-1;13193:9:1;;13080:128::o;13617:125::-;13657:4;13685:1;13682;13679:8;13676:34;;;13690:18;;:::i;:::-;-1:-1:-1;13727:9:1;;13617:125::o;14158:251::-;14228:6;14281:2;14269:9;14260:7;14256:23;14252:32;14249:52;;;14297:1;14294;14287:12;14249:52;14329:9;14323:16;14348:31;14373:5;14348:31;:::i;14414:1026::-;14676:4;14724:3;14713:9;14709:19;14755:6;14744:9;14737:25;14781:2;14819:6;14814:2;14803:9;14799:18;14792:34;14862:3;14857:2;14846:9;14842:18;14835:31;14886:6;14921;14915:13;14952:6;14944;14937:22;14990:3;14979:9;14975:19;14968:26;;15029:2;15021:6;15017:15;15003:29;;15050:1;15060:218;15074:6;15071:1;15068:13;15060:218;;;15139:13;;-1:-1:-1;;;;;15135:62:1;15123:75;;15253:15;;;;15218:12;;;;15096:1;15089:9;15060:218;;;-1:-1:-1;;;;;;;15334:55:1;;;;15329:2;15314:18;;15307:83;-1:-1:-1;;;15421:3:1;15406:19;15399:35;15295:3;14414:1026;-1:-1:-1;;;14414:1026:1:o
Swarm Source
ipfs://9c86a2889d0e1ef08c13ea9a527f816570005436040291e1929689718d47bbef
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.