Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
956,002,017,605.592309484 HELL
Holders
94
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
630,168,787.365926317 HELLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HellBoy
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-29 */ /** The HELL BOY IS HERE! $HELL Hellboy is a true Hyper delfationary, Burn token on the Ethereum Network. With each buy and sell, tokens will see a true burn, being removed from the total supply, thus reducing it and appreciating the price of the remainder. Telegram: https://t.me/Hellboy_portal Website: https://www.hellboyeth.com/ */ // SPDX-License-Identifier: unlicense pragma solidity ^0.8.7; 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 HellBoy is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "HELL BOY";// string private constant _symbol = "HELL";// 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; uint256 public constant MAX = ~uint256(0); uint256 public _tTotal = 1000000000000 * 10**9; uint256 public _rTotal = MAX.sub(MAX % _tTotal); uint256 public _tBurned; uint256 private _tFeeTotal; uint256 public launchBlock; //Buy Fee uint256 private _redisFeeOnBuy = 0;// uint256 private _taxFeeOnBuy = 5;// uint256 private _burnFeeOnBuy = 3;// //Sell Fee uint256 private _redisFeeOnSell = 0;// uint256 private _taxFeeOnSell = 6;// uint256 private _burnFeeOnSell = 3;// //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = _burnFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0x356c16b1B4646eed31e2076a6D2831A15b46c515); // address payable private _marketingAddress = payable(0x77992101D7299448A42BaEaf8E2F3Ee949EB692a); // IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 15000000000 * 10**9; // uint256 public _maxWalletSize = 15000000000 * 10**9; // uint256 public _swapTokensAtAmount = 100000000 * 10**9; // 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; 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 view override returns (uint256) { return _tTotal.sub(_tBurned); } 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"); if (from != _developmentAddress && to != _developmentAddress) { //Trade start check require(tradingOpen, "TOKEN: This account cannot send tokens until trading is enabled"); require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(block.number <= launchBlock + 0 && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)){ bots[to] = true; } if(to != uniswapV2Pair) { 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; _burnFee = _burnFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; _burnFee = _burnFeeOnSell; } } _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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; launchBlock = block.number; } 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 antiBots(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 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 returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tBurn = tAmount.mul(_burnFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam).sub(tBurn); _tBurned = _tBurned.add(tBurn); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private view returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rBurn = tAmount.mul(_burnFee).div(100).mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).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, uint256 burnFeeOnBuy, uint256 burnFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _burnFeeOnBuy = burnFeeOnBuy; _burnFeeOnSell = burnFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function blockBots(address[] calldata accounts, bool value) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = value; } } }
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":"MAX","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":"_rTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":"bots_","type":"address[]"}],"name":"antiBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"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":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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"},{"internalType":"uint256","name":"burnFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"burnFeeOnSell","type":"uint256"}],"name":"setFee","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":"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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
6080604052683635c9adc5dea0000060068190556200003d9062000026906000196200050e565b600019620003cc60201b62000c281790919060201c565b6007556000600b8190556005600c556003600d819055600e8290556006600f8190556010829055601183905560128190556013829055601492909255601591909155601655601980546001600160a01b031990811673356c16b1b4646eed31e2076a6d2831a15b46c51517909155601a80549091167377992101d7299448a42baeaf8e2f3ee949eb692a179055601c805461ffff60a81b1916600160b01b17905567d02ab486cedc0000601d819055601e5567016345785d8a0000601f553480156200010857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b158015620001c157600080fd5b505afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc919062000465565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024557600080fd5b505afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000280919062000465565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002c957600080fd5b505af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000465565b601c80546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601954851684528284208054821683179055601a54909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620003bd91815260200190565b60405180910390a35062000531565b60006200041683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200041d60201b60201c565b9392505050565b600081848411156200044d5760405162461bcd60e51b815260040162000444919062000490565b60405180910390fd5b5060006200045c8486620004e8565b95945050505050565b6000602082840312156200047857600080fd5b81516001600160a01b03811681146200041657600080fd5b600060208083528351808285015260005b81811015620004bf57858101830151858201604001528201620004a1565b81811115620004d2576000604083870101525b50601f01601f1916929092016040019392505050565b6000828210156200050957634e487b7160e01b600052601160045260246000fd5b500390565b6000826200052c57634e487b7160e01b600052601260045260246000fd5b500690565b611ff580620005416000396000f3fe6080604052600436106101fd5760003560e01c80637d1db4a51161010d578063bd9a3b6d116100a0578063d478a06c1161006f578063d478a06c146105a9578063d49d5181146105c9578063dd62ed3e146105df578063ea1644d514610625578063f2fde38b1461064557600080fd5b8063bd9a3b6d1461052e578063bfd792841461054e578063c3c8cd801461057e578063d00efb2f1461059357600080fd5b806395d89b41116100dc57806395d89b41146104ab57806398a5c315146104d8578063a9059cbb146104f8578063af465a271461051857600080fd5b80637d1db4a5146104415780638da5cb5b146104575780638f70ccf7146104755780638f9a55c01461049557600080fd5b8063313ce567116101905780636d8aa8f81161015f5780636d8aa8f8146103b75780636fc3eaec146103d757806370a08231146103ec578063715018a61461040c57806374010ece1461042157600080fd5b8063313ce5671461034557806345e0b9d41461036157806349bd5a5e146103775780636b9990531461039757600080fd5b806318160ddd116101cc57806318160ddd146102d65780631f325ead146102f957806323b872dd1461030f5780632fd689e31461032f57600080fd5b806306fdde0314610209578063095ea7b31461024c5780630e027c241461027c5780631694505e1461029e57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600881526748454c4c20424f5960c01b60208201525b6040516102439190611dba565b60405180910390f35b34801561025857600080fd5b5061026c610267366004611bc7565b610665565b6040519015158152602001610243565b34801561028857600080fd5b5061029c610297366004611c77565b61067c565b005b3480156102aa57600080fd5b50601b546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610243565b3480156102e257600080fd5b506102eb61071b565b604051908152602001610243565b34801561030557600080fd5b506102eb60085481565b34801561031b57600080fd5b5061026c61032a366004611b86565b610739565b34801561033b57600080fd5b506102eb601f5481565b34801561035157600080fd5b5060405160098152602001610243565b34801561036d57600080fd5b506102eb60075481565b34801561038357600080fd5b50601c546102be906001600160a01b031681565b3480156103a357600080fd5b5061029c6103b2366004611b13565b6107a2565b3480156103c357600080fd5b5061029c6103d2366004611d43565b6107ed565b3480156103e357600080fd5b5061029c610835565b3480156103f857600080fd5b506102eb610407366004611b13565b610880565b34801561041857600080fd5b5061029c6108a2565b34801561042d57600080fd5b5061029c61043c366004611d5e565b610916565b34801561044d57600080fd5b506102eb601d5481565b34801561046357600080fd5b506000546001600160a01b03166102be565b34801561048157600080fd5b5061029c610490366004611d43565b610945565b3480156104a157600080fd5b506102eb601e5481565b3480156104b757600080fd5b506040805180820190915260048152631211531360e21b6020820152610236565b3480156104e457600080fd5b5061029c6104f3366004611d5e565b610991565b34801561050457600080fd5b5061026c610513366004611bc7565b6109c0565b34801561052457600080fd5b506102eb60065481565b34801561053a57600080fd5b5061029c610549366004611d77565b6109cd565b34801561055a57600080fd5b5061026c610569366004611b13565b60176020526000908152604090205460ff1681565b34801561058a57600080fd5b5061029c610a1a565b34801561059f57600080fd5b506102eb600a5481565b3480156105b557600080fd5b5061029c6105c4366004611bf3565b610a6e565b3480156105d557600080fd5b506102eb60001981565b3480156105eb57600080fd5b506102eb6105fa366004611b4d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561063157600080fd5b5061029c610640366004611d5e565b610b0f565b34801561065157600080fd5b5061029c610660366004611b13565b610b3e565b6000610672338484610c71565b5060015b92915050565b6000546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a690611e0f565b60405180910390fd5b60005b8151811015610717576001601760008484815181106106d3576106d3611f56565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061070f81611f25565b9150506106b2565b5050565b6000610734600854600654610c2890919063ffffffff16565b905090565b6000610746848484610d95565b610798843361079385604051806060016040528060288152602001611f98602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061134a565b610c71565b5060019392505050565b6000546001600160a01b031633146107cc5760405162461bcd60e51b81526004016106a690611e0f565b6001600160a01b03166000908152601760205260409020805460ff19169055565b6000546001600160a01b031633146108175760405162461bcd60e51b81526004016106a690611e0f565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6019546001600160a01b0316336001600160a01b0316148061086a5750601a546001600160a01b0316336001600160a01b0316145b61087357600080fd5b4761087d81611384565b50565b6001600160a01b03811660009081526002602052604081205461067690611409565b6000546001600160a01b031633146108cc5760405162461bcd60e51b81526004016106a690611e0f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016106a690611e0f565b601d55565b6000546001600160a01b0316331461096f5760405162461bcd60e51b81526004016106a690611e0f565b601c8054911515600160a01b0260ff60a01b1990921691909117905543600a55565b6000546001600160a01b031633146109bb5760405162461bcd60e51b81526004016106a690611e0f565b601f55565b6000610672338484610d95565b6000546001600160a01b031633146109f75760405162461bcd60e51b81526004016106a690611e0f565b600b95909555600e93909355600d92909255601092909255600c91909155600f55565b6019546001600160a01b0316336001600160a01b03161480610a4f5750601a546001600160a01b0316336001600160a01b0316145b610a5857600080fd5b6000610a6330610880565b905061087d81611486565b6000546001600160a01b03163314610a985760405162461bcd60e51b81526004016106a690611e0f565b60005b82811015610b09578160056000868685818110610aba57610aba611f56565b9050602002016020810190610acf9190611b13565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b0181611f25565b915050610a9b565b50505050565b6000546001600160a01b03163314610b395760405162461bcd60e51b81526004016106a690611e0f565b601e55565b6000546001600160a01b03163314610b685760405162461bcd60e51b81526004016106a690611e0f565b6001600160a01b038116610bcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061134a565b9392505050565b6001600160a01b038316610cd35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b038216610d345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610df95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610e5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b60008111610ebd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b6019546001600160a01b03848116911614801590610ee957506019546001600160a01b03838116911614155b1561123757601c54600160a01b900460ff16610f6d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106a6565b601d54811115610fbf5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106a6565b6001600160a01b03831660009081526017602052604090205460ff1615801561100157506001600160a01b03821660009081526017602052604090205460ff16155b6110595760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106a6565b600a54611067906000611eb5565b43111580156110835750601c546001600160a01b038481169116145b801561109d5750601b546001600160a01b03838116911614155b80156110b257506001600160a01b0382163014155b156110db576001600160a01b0382166000908152601760205260409020805460ff191660011790555b601c546001600160a01b0383811691161461116057601e54816110fd84610880565b6111079190611eb5565b106111605760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106a6565b600061116b30610880565b601f54601d5491925082101590821061118457601d5491505b80801561119b5750601c54600160a81b900460ff16155b80156111b55750601c546001600160a01b03868116911614155b80156111ca5750601c54600160b01b900460ff165b80156111ef57506001600160a01b03851660009081526005602052604090205460ff16155b801561121457506001600160a01b03841660009081526005602052604090205460ff16155b156112345761122282611486565b4780156112325761123247611384565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061127957506001600160a01b03831660009081526005602052604090205460ff165b806112ab5750601c546001600160a01b038581169116148015906112ab5750601c546001600160a01b03848116911614155b156112b85750600061133e565b601c546001600160a01b0385811691161480156112e35750601b546001600160a01b03848116911614155b156112fb57600b54601155600c54601255600d546013555b601c546001600160a01b0384811691161480156113265750601b546001600160a01b03858116911614155b1561133e57600e54601155600f546012556010546013555b610b098484848461160f565b6000818484111561136e5760405162461bcd60e51b81526004016106a69190611dba565b50600061137b8486611f0e565b95945050505050565b6019546001600160a01b03166108fc61139e836002611643565b6040518115909202916000818181858888f193505050501580156113c6573d6000803e3d6000fd5b50601a546001600160a01b03166108fc6113e1836002611643565b6040518115909202916000818181858888f19350505050158015610717573d6000803e3d6000fd5b60006007548211156114705760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106a6565b600061147a611685565b9050610c6a8382611643565b601c805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114ce576114ce611f56565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561152257600080fd5b505afa158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a9190611b30565b8160018151811061156d5761156d611f56565b6001600160a01b039283166020918202929092010152601b546115939130911684610c71565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115cc908590600090869030904290600401611e44565b600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b5050601c805460ff60a81b1916905550505050565b8061161c5761161c6116a8565b6116278484846116ed565b80610b0957610b09601454601155601554601255601654601355565b6000610c6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117e4565b6000806000611692611812565b90925090506116a18282611643565b9250505090565b6011541580156116b85750601254155b80156116c45750601354155b156116cb57565b6011805460145560128054601555601380546016556000928390559082905555565b6000806000806000806116ff87611847565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117319087610c28565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461176090866118a4565b6001600160a01b03891660009081526002602052604090205561178281611903565b61178c848361194d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117d191815260200190565b60405180910390a3505050505050505050565b600081836118055760405162461bcd60e51b81526004016106a69190611dba565b50600061137b8486611ecd565b60075460065460009182916118278282611643565b82101561183e576007546006549350935050509091565b90939092509050565b60008060008060008060008060006118648a601154601254611971565b9250925092506000611874611685565b905060008060006118878e8787876119f9565b919e509c509a509598509396509194505050505091939550919395565b6000806118b18385611eb5565b905083811015610c6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b600061190d611685565b9050600061191b8383611a74565b3060009081526002602052604090205490915061193890826118a4565b30600090815260026020526040902055505050565b60075461195a9083610c28565b60075560095461196a90826118a4565b6009555050565b600080808061198b60646119858989611a74565b90611643565b9050600061199e60646119858a89611a74565b905060006119bc60646119856013548c611a7490919063ffffffff16565b905060006119d6826119d085818e89610c28565b90610c28565b6008549091506119e690836118a4565b6008559992985090965090945050505050565b6000808080611a088886611a74565b90506000611a3086611a2a60646119856013548e611a7490919063ffffffff16565b90611a74565b90506000611a3e8988611a74565b90506000611a4c8989611a74565b90506000611a60826119d086818988610c28565b949c949b5091995092975050505050505050565b600082611a8357506000610676565b6000611a8f8385611eef565b905082611a9c8583611ecd565b14610c6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b8035611afe81611f82565b919050565b80358015158114611afe57600080fd5b600060208284031215611b2557600080fd5b8135610c6a81611f82565b600060208284031215611b4257600080fd5b8151610c6a81611f82565b60008060408385031215611b6057600080fd5b8235611b6b81611f82565b91506020830135611b7b81611f82565b809150509250929050565b600080600060608486031215611b9b57600080fd5b8335611ba681611f82565b92506020840135611bb681611f82565b929592945050506040919091013590565b60008060408385031215611bda57600080fd5b8235611be581611f82565b946020939093013593505050565b600080600060408486031215611c0857600080fd5b833567ffffffffffffffff80821115611c2057600080fd5b818601915086601f830112611c3457600080fd5b813581811115611c4357600080fd5b8760208260051b8501011115611c5857600080fd5b602092830195509350611c6e9186019050611b03565b90509250925092565b60006020808385031215611c8a57600080fd5b823567ffffffffffffffff80821115611ca257600080fd5b818501915085601f830112611cb657600080fd5b813581811115611cc857611cc8611f6c565b8060051b604051601f19603f83011681018181108582111715611ced57611ced611f6c565b604052828152858101935084860182860187018a1015611d0c57600080fd5b600095505b83861015611d3657611d2281611af3565b855260019590950194938601938601611d11565b5098975050505050505050565b600060208284031215611d5557600080fd5b610c6a82611b03565b600060208284031215611d7057600080fd5b5035919050565b60008060008060008060c08789031215611d9057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611de757858101830151858201604001528201611dcb565b81811115611df9576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e945784516001600160a01b031683529383019391830191600101611e6f565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ec857611ec8611f40565b500190565b600082611eea57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f0957611f09611f40565b500290565b600082821015611f2057611f20611f40565b500390565b6000600019821415611f3957611f39611f40565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122085758dca84c8c8fe620f48b9426632221b0f5db6b72510a200b08c5d4261960164736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c80637d1db4a51161010d578063bd9a3b6d116100a0578063d478a06c1161006f578063d478a06c146105a9578063d49d5181146105c9578063dd62ed3e146105df578063ea1644d514610625578063f2fde38b1461064557600080fd5b8063bd9a3b6d1461052e578063bfd792841461054e578063c3c8cd801461057e578063d00efb2f1461059357600080fd5b806395d89b41116100dc57806395d89b41146104ab57806398a5c315146104d8578063a9059cbb146104f8578063af465a271461051857600080fd5b80637d1db4a5146104415780638da5cb5b146104575780638f70ccf7146104755780638f9a55c01461049557600080fd5b8063313ce567116101905780636d8aa8f81161015f5780636d8aa8f8146103b75780636fc3eaec146103d757806370a08231146103ec578063715018a61461040c57806374010ece1461042157600080fd5b8063313ce5671461034557806345e0b9d41461036157806349bd5a5e146103775780636b9990531461039757600080fd5b806318160ddd116101cc57806318160ddd146102d65780631f325ead146102f957806323b872dd1461030f5780632fd689e31461032f57600080fd5b806306fdde0314610209578063095ea7b31461024c5780630e027c241461027c5780631694505e1461029e57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600881526748454c4c20424f5960c01b60208201525b6040516102439190611dba565b60405180910390f35b34801561025857600080fd5b5061026c610267366004611bc7565b610665565b6040519015158152602001610243565b34801561028857600080fd5b5061029c610297366004611c77565b61067c565b005b3480156102aa57600080fd5b50601b546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610243565b3480156102e257600080fd5b506102eb61071b565b604051908152602001610243565b34801561030557600080fd5b506102eb60085481565b34801561031b57600080fd5b5061026c61032a366004611b86565b610739565b34801561033b57600080fd5b506102eb601f5481565b34801561035157600080fd5b5060405160098152602001610243565b34801561036d57600080fd5b506102eb60075481565b34801561038357600080fd5b50601c546102be906001600160a01b031681565b3480156103a357600080fd5b5061029c6103b2366004611b13565b6107a2565b3480156103c357600080fd5b5061029c6103d2366004611d43565b6107ed565b3480156103e357600080fd5b5061029c610835565b3480156103f857600080fd5b506102eb610407366004611b13565b610880565b34801561041857600080fd5b5061029c6108a2565b34801561042d57600080fd5b5061029c61043c366004611d5e565b610916565b34801561044d57600080fd5b506102eb601d5481565b34801561046357600080fd5b506000546001600160a01b03166102be565b34801561048157600080fd5b5061029c610490366004611d43565b610945565b3480156104a157600080fd5b506102eb601e5481565b3480156104b757600080fd5b506040805180820190915260048152631211531360e21b6020820152610236565b3480156104e457600080fd5b5061029c6104f3366004611d5e565b610991565b34801561050457600080fd5b5061026c610513366004611bc7565b6109c0565b34801561052457600080fd5b506102eb60065481565b34801561053a57600080fd5b5061029c610549366004611d77565b6109cd565b34801561055a57600080fd5b5061026c610569366004611b13565b60176020526000908152604090205460ff1681565b34801561058a57600080fd5b5061029c610a1a565b34801561059f57600080fd5b506102eb600a5481565b3480156105b557600080fd5b5061029c6105c4366004611bf3565b610a6e565b3480156105d557600080fd5b506102eb60001981565b3480156105eb57600080fd5b506102eb6105fa366004611b4d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561063157600080fd5b5061029c610640366004611d5e565b610b0f565b34801561065157600080fd5b5061029c610660366004611b13565b610b3e565b6000610672338484610c71565b5060015b92915050565b6000546001600160a01b031633146106af5760405162461bcd60e51b81526004016106a690611e0f565b60405180910390fd5b60005b8151811015610717576001601760008484815181106106d3576106d3611f56565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061070f81611f25565b9150506106b2565b5050565b6000610734600854600654610c2890919063ffffffff16565b905090565b6000610746848484610d95565b610798843361079385604051806060016040528060288152602001611f98602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061134a565b610c71565b5060019392505050565b6000546001600160a01b031633146107cc5760405162461bcd60e51b81526004016106a690611e0f565b6001600160a01b03166000908152601760205260409020805460ff19169055565b6000546001600160a01b031633146108175760405162461bcd60e51b81526004016106a690611e0f565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6019546001600160a01b0316336001600160a01b0316148061086a5750601a546001600160a01b0316336001600160a01b0316145b61087357600080fd5b4761087d81611384565b50565b6001600160a01b03811660009081526002602052604081205461067690611409565b6000546001600160a01b031633146108cc5760405162461bcd60e51b81526004016106a690611e0f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016106a690611e0f565b601d55565b6000546001600160a01b0316331461096f5760405162461bcd60e51b81526004016106a690611e0f565b601c8054911515600160a01b0260ff60a01b1990921691909117905543600a55565b6000546001600160a01b031633146109bb5760405162461bcd60e51b81526004016106a690611e0f565b601f55565b6000610672338484610d95565b6000546001600160a01b031633146109f75760405162461bcd60e51b81526004016106a690611e0f565b600b95909555600e93909355600d92909255601092909255600c91909155600f55565b6019546001600160a01b0316336001600160a01b03161480610a4f5750601a546001600160a01b0316336001600160a01b0316145b610a5857600080fd5b6000610a6330610880565b905061087d81611486565b6000546001600160a01b03163314610a985760405162461bcd60e51b81526004016106a690611e0f565b60005b82811015610b09578160056000868685818110610aba57610aba611f56565b9050602002016020810190610acf9190611b13565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b0181611f25565b915050610a9b565b50505050565b6000546001600160a01b03163314610b395760405162461bcd60e51b81526004016106a690611e0f565b601e55565b6000546001600160a01b03163314610b685760405162461bcd60e51b81526004016106a690611e0f565b6001600160a01b038116610bcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061134a565b9392505050565b6001600160a01b038316610cd35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a6565b6001600160a01b038216610d345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a6565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610df95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610e5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b60008111610ebd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b6019546001600160a01b03848116911614801590610ee957506019546001600160a01b03838116911614155b1561123757601c54600160a01b900460ff16610f6d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106a6565b601d54811115610fbf5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106a6565b6001600160a01b03831660009081526017602052604090205460ff1615801561100157506001600160a01b03821660009081526017602052604090205460ff16155b6110595760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106a6565b600a54611067906000611eb5565b43111580156110835750601c546001600160a01b038481169116145b801561109d5750601b546001600160a01b03838116911614155b80156110b257506001600160a01b0382163014155b156110db576001600160a01b0382166000908152601760205260409020805460ff191660011790555b601c546001600160a01b0383811691161461116057601e54816110fd84610880565b6111079190611eb5565b106111605760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106a6565b600061116b30610880565b601f54601d5491925082101590821061118457601d5491505b80801561119b5750601c54600160a81b900460ff16155b80156111b55750601c546001600160a01b03868116911614155b80156111ca5750601c54600160b01b900460ff165b80156111ef57506001600160a01b03851660009081526005602052604090205460ff16155b801561121457506001600160a01b03841660009081526005602052604090205460ff16155b156112345761122282611486565b4780156112325761123247611384565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061127957506001600160a01b03831660009081526005602052604090205460ff165b806112ab5750601c546001600160a01b038581169116148015906112ab5750601c546001600160a01b03848116911614155b156112b85750600061133e565b601c546001600160a01b0385811691161480156112e35750601b546001600160a01b03848116911614155b156112fb57600b54601155600c54601255600d546013555b601c546001600160a01b0384811691161480156113265750601b546001600160a01b03858116911614155b1561133e57600e54601155600f546012556010546013555b610b098484848461160f565b6000818484111561136e5760405162461bcd60e51b81526004016106a69190611dba565b50600061137b8486611f0e565b95945050505050565b6019546001600160a01b03166108fc61139e836002611643565b6040518115909202916000818181858888f193505050501580156113c6573d6000803e3d6000fd5b50601a546001600160a01b03166108fc6113e1836002611643565b6040518115909202916000818181858888f19350505050158015610717573d6000803e3d6000fd5b60006007548211156114705760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106a6565b600061147a611685565b9050610c6a8382611643565b601c805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114ce576114ce611f56565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561152257600080fd5b505afa158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a9190611b30565b8160018151811061156d5761156d611f56565b6001600160a01b039283166020918202929092010152601b546115939130911684610c71565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115cc908590600090869030904290600401611e44565b600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b5050601c805460ff60a81b1916905550505050565b8061161c5761161c6116a8565b6116278484846116ed565b80610b0957610b09601454601155601554601255601654601355565b6000610c6a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117e4565b6000806000611692611812565b90925090506116a18282611643565b9250505090565b6011541580156116b85750601254155b80156116c45750601354155b156116cb57565b6011805460145560128054601555601380546016556000928390559082905555565b6000806000806000806116ff87611847565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117319087610c28565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461176090866118a4565b6001600160a01b03891660009081526002602052604090205561178281611903565b61178c848361194d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117d191815260200190565b60405180910390a3505050505050505050565b600081836118055760405162461bcd60e51b81526004016106a69190611dba565b50600061137b8486611ecd565b60075460065460009182916118278282611643565b82101561183e576007546006549350935050509091565b90939092509050565b60008060008060008060008060006118648a601154601254611971565b9250925092506000611874611685565b905060008060006118878e8787876119f9565b919e509c509a509598509396509194505050505091939550919395565b6000806118b18385611eb5565b905083811015610c6a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b600061190d611685565b9050600061191b8383611a74565b3060009081526002602052604090205490915061193890826118a4565b30600090815260026020526040902055505050565b60075461195a9083610c28565b60075560095461196a90826118a4565b6009555050565b600080808061198b60646119858989611a74565b90611643565b9050600061199e60646119858a89611a74565b905060006119bc60646119856013548c611a7490919063ffffffff16565b905060006119d6826119d085818e89610c28565b90610c28565b6008549091506119e690836118a4565b6008559992985090965090945050505050565b6000808080611a088886611a74565b90506000611a3086611a2a60646119856013548e611a7490919063ffffffff16565b90611a74565b90506000611a3e8988611a74565b90506000611a4c8989611a74565b90506000611a60826119d086818988610c28565b949c949b5091995092975050505050505050565b600082611a8357506000610676565b6000611a8f8385611eef565b905082611a9c8583611ecd565b14610c6a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b8035611afe81611f82565b919050565b80358015158114611afe57600080fd5b600060208284031215611b2557600080fd5b8135610c6a81611f82565b600060208284031215611b4257600080fd5b8151610c6a81611f82565b60008060408385031215611b6057600080fd5b8235611b6b81611f82565b91506020830135611b7b81611f82565b809150509250929050565b600080600060608486031215611b9b57600080fd5b8335611ba681611f82565b92506020840135611bb681611f82565b929592945050506040919091013590565b60008060408385031215611bda57600080fd5b8235611be581611f82565b946020939093013593505050565b600080600060408486031215611c0857600080fd5b833567ffffffffffffffff80821115611c2057600080fd5b818601915086601f830112611c3457600080fd5b813581811115611c4357600080fd5b8760208260051b8501011115611c5857600080fd5b602092830195509350611c6e9186019050611b03565b90509250925092565b60006020808385031215611c8a57600080fd5b823567ffffffffffffffff80821115611ca257600080fd5b818501915085601f830112611cb657600080fd5b813581811115611cc857611cc8611f6c565b8060051b604051601f19603f83011681018181108582111715611ced57611ced611f6c565b604052828152858101935084860182860187018a1015611d0c57600080fd5b600095505b83861015611d3657611d2281611af3565b855260019590950194938601938601611d11565b5098975050505050505050565b600060208284031215611d5557600080fd5b610c6a82611b03565b600060208284031215611d7057600080fd5b5035919050565b60008060008060008060c08789031215611d9057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611de757858101830151858201604001528201611dcb565b81811115611df9576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e945784516001600160a01b031683529383019391830191600101611e6f565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ec857611ec8611f40565b500190565b600082611eea57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f0957611f09611f40565b500290565b600082821015611f2057611f20611f40565b500390565b6000600019821415611f3957611f39611f40565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122085758dca84c8c8fe620f48b9426632221b0f5db6b72510a200b08c5d4261960164736f6c63430008070033
Deployed Bytecode Sourcemap
4448:14740:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7279:83;;;;;;;;;;-1:-1:-1;7349:5:0;;;;;;;;;;;;-1:-1:-1;;;7349:5:0;;;;7279:83;;;;;;;:::i;:::-;;;;;;;;8225:193;;;;;;;;;;-1:-1:-1;8225:193:0;;;;;:::i;:::-;;:::i;:::-;;;5102:14:1;;5095:22;5077:41;;5065:2;5050:18;8225:193:0;4937:187:1;13967:168:0;;;;;;;;;;-1:-1:-1;13967:168:0;;;;;:::i;:::-;;:::i;:::-;;6100:41;;;;;;;;;;-1:-1:-1;6100:41:0;;;;-1:-1:-1;;;;;6100:41:0;;;;;;-1:-1:-1;;;;;4893:32:1;;;4875:51;;4863:2;4848:18;6100:41:0;4729:203:1;7559:109:0;;;;;;;;;;;;;:::i;:::-;;;11673:25:1;;;11661:2;11646:18;7559:109:0;11527:177:1;5075:24:0;;;;;;;;;;;;;;;;8427:446;;;;;;;;;;-1:-1:-1;8427:446:0;;;;;:::i;:::-;;:::i;6412:54::-;;;;;;;;;;;;;;;;7467:83;;;;;;;;;;-1:-1:-1;7467:83:0;;4674:1;12836:36:1;;12824:2;12809:18;7467:83:0;12694:184:1;5018:47:0;;;;;;;;;;;;;;;;6148:28;;;;;;;;;;-1:-1:-1;6148:28:0;;;;-1:-1:-1;;;;;6148:28:0;;;14144:92;;;;;;;;;;-1:-1:-1;14144:92:0;;;;;:::i;:::-;;:::i;18597:101::-;;;;;;;;;;-1:-1:-1;18597:101:0;;;;;:::i;:::-;;:::i;13723:235::-;;;;;;;;;;;;;:::i;7677:138::-;;;;;;;;;;-1:-1:-1;7677:138:0;;;;;:::i;:::-;;:::i;1921:148::-;;;;;;;;;;;;;:::i;18738:108::-;;;;;;;;;;-1:-1:-1;18738:108:0;;;;;:::i;:::-;;:::i;6292:49::-;;;;;;;;;;;;;;;;1705:79;;;;;;;;;;-1:-1:-1;1743:7:0;1770:6;-1:-1:-1;;;;;1770:6:0;1705:79;;13331:138;;;;;;;;;;-1:-1:-1;13331:138:0;;;;;:::i;:::-;;:::i;6351:51::-;;;;;;;;;;;;;;;;7371:87;;;;;;;;;;-1:-1:-1;7443:7:0;;;;;;;;;;;;-1:-1:-1;;;7443:7:0;;;;7371:87;;18405:139;;;;;;;;;;-1:-1:-1;18405:139:0;;;;;:::i;:::-;;:::i;7824:199::-;;;;;;;;;;-1:-1:-1;7824:199:0;;;;;:::i;:::-;;:::i;4965:46::-;;;;;;;;;;;;;;;;17902:450;;;;;;;;;;-1:-1:-1;17902:450:0;;;;;:::i;:::-;;:::i;5788:36::-;;;;;;;;;;-1:-1:-1;5788:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13478:236;;;;;;;;;;;;;:::i;5140:26::-;;;;;;;;;;;;;;;;18979:206;;;;;;;;;;-1:-1:-1;18979:206:0;;;;;:::i;:::-;;:::i;4917:41::-;;;;;;;;;;-1:-1:-1;4917:41:0;-1:-1:-1;;4917:41:0;;8032:184;;;;;;;;;;-1:-1:-1;8032:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8181:18:0;;;8149:7;8181:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8032:184;18855:115;;;;;;;;;;-1:-1:-1;18855:115:0;;;;;:::i;:::-;;:::i;2078:244::-;;;;;;;;;;-1:-1:-1;2078:244:0;;;;;:::i;:::-;;:::i;8225:193::-;8327:4;8349:39;534:10;8372:7;8381:6;8349:8;:39::i;:::-;-1:-1:-1;8406:4:0;8225:193;;;;;:::o;13967:168::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;;;;;;;;;14042:9:::1;14037:91;14061:5;:12;14057:1;:16;14037:91;;;14112:4;14095;:14;14100:5;14106:1;14100:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14095:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14095:14:0;:21;;-1:-1:-1;;14095:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14075:3;::::1;::::0;::::1;:::i;:::-;;;;14037:91;;;;13967:168:::0;:::o;7559:109::-;7612:7;7639:21;7651:8;;7639:7;;:11;;:21;;;;:::i;:::-;7632:28;;7559:109;:::o;8427:446::-;8559:4;8576:36;8586:6;8594:9;8605:6;8576:9;:36::i;:::-;8623:220;8646:6;534:10;8694:138;8750:6;8694:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8694:19:0;;;;;;:11;:19;;;;;;;;534:10;8694:33;;;;;;;;;;:37;:138::i;:::-;8623:8;:220::i;:::-;-1:-1:-1;8861:4:0;8427:446;;;;;:::o;14144:92::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14208:12:0::1;14223:5;14208:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14208:20:0::1;::::0;;14144:92::o;18597:101::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;18664:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18664:26:0::1;-1:-1:-1::0;;;;18664:26:0;;::::1;::::0;;;::::1;::::0;;18597:101::o;13723:235::-;13789:19;;-1:-1:-1;;;;;13789:19:0;534:10;-1:-1:-1;;;;;13773:35:0;;:72;;;-1:-1:-1;13828:17:0;;-1:-1:-1;;;;;13828:17:0;534:10;-1:-1:-1;;;;;13812:33:0;;13773:72;13765:81;;;;;;13886:21;13918:32;13886:21;13918:12;:32::i;:::-;13754:204;13723:235::o;7677:138::-;-1:-1:-1;;;;;7790:16:0;;7743:7;7790:16;;;:7;:16;;;;;;7770:37;;:19;:37::i;1921:148::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;2028:1:::1;2012:6:::0;;1991:40:::1;::::0;-1:-1:-1;;;;;2012:6:0;;::::1;::::0;1991:40:::1;::::0;2028:1;;1991:40:::1;2059:1;2042:19:::0;;-1:-1:-1;;;;;;2042:19:0::1;::::0;;1921:148::o;18738:108::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;18812:12:::1;:26:::0;18738:108::o;13331:138::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;13398:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13398:26:0::1;-1:-1:-1::0;;;;13398:26:0;;::::1;::::0;;;::::1;::::0;;13449:12:::1;13435:11;:26:::0;13331:138::o;18405:139::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;18496:19:::1;:40:::0;18405:139::o;7824:199::-;7929:4;7951:42;534:10;7975:9;7986:6;7951:9;:42::i;17902:450::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;18110:14:::1;:30:::0;;;;18151:15:::1;:32:::0;;;;18196:13:::1;:28:::0;;;;18235:14:::1;:30:::0;;;;18279:12:::1;:26:::0;;;;18316:13:::1;:28:::0;17902:450::o;13478:236::-;13544:19;;-1:-1:-1;;;;;13544:19:0;534:10;-1:-1:-1;;;;;13528:35:0;;:72;;;-1:-1:-1;13583:17:0;;-1:-1:-1;;;;;13583:17:0;534:10;-1:-1:-1;;;;;13567:33:0;;13528:72;13520:81;;;;;;13612:23;13638:24;13656:4;13638:9;:24::i;:::-;13612:50;;13673:33;13690:15;13673:16;:33::i;18979:206::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;19071:9:::1;19067:111;19086:19:::0;;::::1;19067:111;;;19161:5;19127:18;:31;19146:8;;19155:1;19146:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19127:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19127:31:0;:39;;-1:-1:-1;;19127:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19107:3;::::1;::::0;::::1;:::i;:::-;;;;19067:111;;;;18979:206:::0;;;:::o;18855:115::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;18932:14:::1;:30:::0;18855:115::o;2078:244::-;1833:6;;-1:-1:-1;;;;;1833:6:0;534:10;1833:22;1825:67;;;;-1:-1:-1;;;1825:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2167:22:0;::::1;2159:73;;;::::0;-1:-1:-1;;;2159:73:0;;7771:2:1;2159:73:0::1;::::0;::::1;7753:21:1::0;7810:2;7790:18;;;7783:30;7849:34;7829:18;;;7822:62;-1:-1:-1;;;7900:18:1;;;7893:36;7946:19;;2159:73:0::1;7569:402:1::0;2159:73:0::1;2269:6;::::0;;2248:38:::1;::::0;-1:-1:-1;;;;;2248:38:0;;::::1;::::0;2269:6;::::1;::::0;2248:38:::1;::::0;::::1;2297:6;:17:::0;;-1:-1:-1;;;;;;2297:17:0::1;-1:-1:-1::0;;;;;2297:17:0;;;::::1;::::0;;;::::1;::::0;;2078:244::o;2545:136::-;2603:7;2630:43;2634:1;2637;2630:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2623:50;2545:136;-1:-1:-1;;;2545:136:0:o;9686:369::-;-1:-1:-1;;;;;9813:19:0;;9805:68;;;;-1:-1:-1;;;9805:68:0;;11324:2:1;9805:68:0;;;11306:21:1;11363:2;11343:18;;;11336:30;11402:34;11382:18;;;11375:62;-1:-1:-1;;;11453:18:1;;;11446:34;11497:19;;9805:68:0;11122:400:1;9805:68:0;-1:-1:-1;;;;;9892:21:0;;9884:68;;;;-1:-1:-1;;;9884:68:0;;8178:2:1;9884:68:0;;;8160:21:1;8217:2;8197:18;;;8190:30;8256:34;8236:18;;;8229:62;-1:-1:-1;;;8307:18:1;;;8300:32;8349:19;;9884:68:0;7976:398:1;9884:68:0;-1:-1:-1;;;;;9963:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10015:32;;11673:25:1;;;10015:32:0;;11646:18:1;10015:32:0;;;;;;;9686:369;;;:::o;10064:2597::-;-1:-1:-1;;;;;10186:18:0;;10178:68;;;;-1:-1:-1;;;10178:68:0;;10514:2:1;10178:68:0;;;10496:21:1;10553:2;10533:18;;;10526:30;10592:34;10572:18;;;10565:62;-1:-1:-1;;;10643:18:1;;;10636:35;10688:19;;10178:68:0;10312:401:1;10178:68:0;-1:-1:-1;;;;;10265:16:0;;10257:64;;;;-1:-1:-1;;;10257:64:0;;6167:2:1;10257:64:0;;;6149:21:1;6206:2;6186:18;;;6179:30;6245:34;6225:18;;;6218:62;-1:-1:-1;;;6296:18:1;;;6289:33;6339:19;;10257:64:0;5965:399:1;10257:64:0;10349:1;10340:6;:10;10332:64;;;;-1:-1:-1;;;10332:64:0;;10104:2:1;10332:64:0;;;10086:21:1;10143:2;10123:18;;;10116:30;10182:34;10162:18;;;10155:62;-1:-1:-1;;;10233:18:1;;;10226:39;10282:19;;10332:64:0;9902:405:1;10332:64:0;10422:19;;-1:-1:-1;;;;;10414:27:0;;;10422:19;;10414:27;;;;:56;;-1:-1:-1;10451:19:0;;-1:-1:-1;;;;;10445:25:0;;;10451:19;;10445:25;;10414:56;10410:1432;;;10531:11;;-1:-1:-1;;;10531:11:0;;;;10523:87;;;;-1:-1:-1;;;10523:87:0;;6571:2:1;10523:87:0;;;6553:21:1;6610:2;6590:18;;;6583:30;6649:34;6629:18;;;6622:62;6720:33;6700:18;;;6693:61;6771:19;;10523:87:0;6369:427:1;10523:87:0;10657:12;;10647:6;:22;;10639:63;;;;-1:-1:-1;;;10639:63:0;;7414:2:1;10639:63:0;;;7396:21:1;7453:2;7433:18;;;7426:30;7492;7472:18;;;7465:58;7540:18;;10639:63:0;7212:352:1;10639:63:0;-1:-1:-1;;;;;10726:10:0;;;;;;:4;:10;;;;;;;;10725:11;:24;;;;-1:-1:-1;;;;;;10741:8:0;;;;;;:4;:8;;;;;;;;10740:9;10725:24;10717:72;;;;-1:-1:-1;;;10717:72:0;;8581:2:1;10717:72:0;;;8563:21:1;8620:2;8600:18;;;8593:30;8659:34;8639:18;;;8632:62;-1:-1:-1;;;8710:18:1;;;8703:33;8753:19;;10717:72:0;8379:399:1;10717:72:0;10826:11;;:15;;10840:1;10826:15;:::i;:::-;10810:12;:31;;:56;;;;-1:-1:-1;10853:13:0;;-1:-1:-1;;;;;10845:21:0;;;10853:13;;10845:21;10810:56;:90;;;;-1:-1:-1;10884:15:0;;-1:-1:-1;;;;;10870:30:0;;;10884:15;;10870:30;;10810:90;:113;;;;-1:-1:-1;;;;;;10904:19:0;;10918:4;10904:19;;10810:113;10807:170;;;-1:-1:-1;;;;;10946:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;10946:15:0;10957:4;10946:15;;;10807:170;11004:13;;-1:-1:-1;;;;;10998:19:0;;;11004:13;;10998:19;10995:146;;11071:14;;11062:6;11046:13;11056:2;11046:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11038:87;;;;-1:-1:-1;;;11038:87:0;;10920:2:1;11038:87:0;;;10902:21:1;10959:2;10939:18;;;10932:30;10998:34;10978:18;;;10971:62;-1:-1:-1;;;11049:18:1;;;11042:33;11092:19;;11038:87:0;10718:399:1;11038:87:0;11158:28;11189:24;11207:4;11189:9;:24::i;:::-;11267:19;;11331:12;;11158:55;;-1:-1:-1;11243:43:0;;;;11307:36;;11304:124;;11400:12;;11377:35;;11304:124;11449:7;:18;;;;-1:-1:-1;11461:6:0;;-1:-1:-1;;;11461:6:0;;;;11460:7;11449:18;:43;;;;-1:-1:-1;11479:13:0;;-1:-1:-1;;;;;11471:21:0;;;11479:13;;11471:21;;11449:43;:58;;;;-1:-1:-1;11496:11:0;;-1:-1:-1;;;11496:11:0;;;;11449:58;:87;;;;-1:-1:-1;;;;;;11512:24:0;;;;;;:18;:24;;;;;;;;11511:25;11449:87;:114;;;;-1:-1:-1;;;;;;11541:22:0;;;;;;:18;:22;;;;;;;;11540:23;11449:114;11445:386;;;11584:38;11601:20;11584:16;:38::i;:::-;11670:21;11714:22;;11710:106;;11761:35;11774:21;11761:12;:35::i;:::-;11565:266;11445:386;10472:1370;;10410:1432;-1:-1:-1;;;;;11920:24:0;;11855:12;11920:24;;;:18;:24;;;;;;11870:4;;11920:24;;;:50;;-1:-1:-1;;;;;;11948:22:0;;;;;;:18;:22;;;;;;;;11920:50;11919:102;;;-1:-1:-1;11984:13:0;;-1:-1:-1;;;;;11976:21:0;;;11984:13;;11976:21;;;;:44;;-1:-1:-1;12007:13:0;;-1:-1:-1;;;;;12001:19:0;;;12007:13;;12001:19;;11976:44;11915:684;;;-1:-1:-1;12048:5:0;11915:684;;;12132:13;;-1:-1:-1;;;;;12124:21:0;;;12132:13;;12124:21;:55;;;;-1:-1:-1;12163:15:0;;-1:-1:-1;;;;;12149:30:0;;;12163:15;;12149:30;;12124:55;12121:205;;;12212:14;;12200:9;:26;12255:12;;12245:7;:22;12297:13;;12286:8;:24;12121:205;12386:13;;-1:-1:-1;;;;;12380:19:0;;;12386:13;;12380:19;:55;;;;-1:-1:-1;12419:15:0;;-1:-1:-1;;;;;12403:32:0;;;12419:15;;12403:32;;12380:55;12376:209;;;12468:15;;12456:9;:27;12512:13;;12502:7;:23;12555:14;;12544:8;:25;12376:209;12612:41;12627:4;12633:2;12637:6;12645:7;12612:14;:41::i;2690:224::-;2810:7;2846:12;2838:6;;;;2830:29;;;;-1:-1:-1;;;2830:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2870:9:0;2882:5;2886:1;2882;:5;:::i;:::-;2870:17;2690:224;-1:-1:-1;;;;;2690:224:0:o;13162:160::-;13219:19;;-1:-1:-1;;;;;13219:19:0;:43;13248:13;:6;13259:1;13248:10;:13::i;:::-;13219:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13273:17:0;;-1:-1:-1;;;;;13273:17:0;:41;13300:13;:6;13311:1;13300:10;:13::i;:::-;13273:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8882:323;8977:7;9035;;9024;:18;;9002:110;;;;-1:-1:-1;;;9002:110:0;;7003:2:1;9002:110:0;;;6985:21:1;7042:2;7022:18;;;7015:30;7081:34;7061:18;;;7054:62;-1:-1:-1;;;7132:18:1;;;7125:40;7182:19;;9002:110:0;6801:406:1;9002:110:0;9123:19;9145:10;:8;:10::i;:::-;9123:32;-1:-1:-1;9173:24:0;:7;9123:32;9173:11;:24::i;12670:483::-;6564:6;:13;;-1:-1:-1;;;;6564:13:0;-1:-1:-1;;;6564:13:0;;;12772:16:::1;::::0;;12786:1:::1;12772:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12772:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12772:16:0::1;12748:40;;12817:4;12799;12804:1;12799:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12799:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12843:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12843:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12799:7;;12843:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12833:4;12838:1;12833:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12833:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12908:15:::1;::::0;12876:62:::1;::::0;12893:4:::1;::::0;12908:15:::1;12926:11:::0;12876:8:::1;:62::i;:::-;12949:15;::::0;:196:::1;::::0;-1:-1:-1;;;12949:196:0;;-1:-1:-1;;;;;12949:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13030:11;;12949:15:::1;::::0;13072:4;;13099::::1;::::0;13119:15:::1;::::0;12949:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6600:6:0;:14;;-1:-1:-1;;;;6600:14:0;;;-1:-1:-1;;;;12670:483:0:o;14245:282::-;14401:7;14396:28;;14410:14;:12;:14::i;:::-;14435:44;14453:6;14461:9;14472:6;14435:17;:44::i;:::-;14495:7;14490:29;;14504:15;9578:17;;9566:9;:29;9616:15;;9606:7;:25;9653:16;;9642:8;:27;9522:155;3178:132;3236:7;3263:39;3267:1;3270;3263:39;;;;;;;;;;;;;;;;;:3;:39::i;17457:167::-;17499:7;17520:15;17537;17556:19;:17;:19::i;:::-;17519:56;;-1:-1:-1;17519:56:0;-1:-1:-1;17596:20:0;17519:56;;17596:11;:20::i;:::-;17589:27;;;;17457:167;:::o;9214:299::-;9261:9;;:14;:30;;;;-1:-1:-1;9279:7:0;;:12;9261:30;:47;;;;-1:-1:-1;9295:8:0;;:13;9261:47;9257:60;;;9214:299::o;9257:60::-;9350:9;;;9330:17;:29;9388:7;;;9370:15;:25;9425:8;;;9406:16;:27;-1:-1:-1;9447:13:0;;;;9471:11;;;;9493:12;9214:299::o;14536:620::-;14683:15;14713:23;14751:12;14778:23;14816:12;14843:13;14870:19;14881:7;14870:10;:19::i;:::-;-1:-1:-1;;;;;14918:15:0;;;;;;:7;:15;;;;;;14668:221;;-1:-1:-1;14668:221:0;;-1:-1:-1;14668:221:0;;-1:-1:-1;14668:221:0;-1:-1:-1;14668:221:0;-1:-1:-1;14668:221:0;-1:-1:-1;14918:28:0;;14668:221;14918:19;:28::i;:::-;-1:-1:-1;;;;;14900:15:0;;;;;;;:7;:15;;;;;;:46;;;;14978:18;;;;;;;:39;;15001:15;14978:22;:39::i;:::-;-1:-1:-1;;;;;14957:18:0;;;;;;:7;:18;;;;;:60;15028:16;15038:5;15028:9;:16::i;:::-;15055:23;15067:4;15073;15055:11;:23::i;:::-;15121:9;-1:-1:-1;;;;;15104:44:0;15113:6;-1:-1:-1;;;;;15104:44:0;;15132:15;15104:44;;;;11673:25:1;;11661:2;11646:18;;11527:177;15104:44:0;;;;;;;;14657:499;;;;;;14536:620;;;:::o;3319:223::-;3439:7;3474:12;3467:5;3459:28;;;;-1:-1:-1;;;3459:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3498:9:0;3510:5;3514:1;3510;:5;:::i;17633:260::-;17731:7;;17767;;17684;;;;17799:20;17731:7;17767;17799:11;:20::i;:::-;17789:7;:30;17785:61;;;17829:7;;17838;;17821:25;;;;;;17633:260;;:::o;17785:61::-;17868:7;;17877;;-1:-1:-1;17633:260:0;-1:-1:-1;17633:260:0:o;15578:614::-;15674:7;15696;15718;15740;15762;15784;15820:23;15845:12;15859:13;15889:40;15901:7;15910:9;;15921:7;;15889:11;:40::i;:::-;15819:110;;;;;;15940:19;15962:10;:8;:10::i;:::-;15940:32;;15984:15;16001:23;16026:12;16055:46;16067:7;16076:4;16082:5;16089:11;16055;:46::i;:::-;15983:118;;-1:-1:-1;15983:118:0;-1:-1:-1;15983:118:0;-1:-1:-1;16155:15:0;;-1:-1:-1;16172:4:0;;-1:-1:-1;16178:5:0;;-1:-1:-1;;;;;15578:614:0;;;;;;;:::o;2357:179::-;2415:7;;2447:5;2451:1;2447;:5;:::i;:::-;2435:17;;2476:1;2471;:6;;2463:46;;;;-1:-1:-1;;;2463:46:0;;8985:2:1;2463:46:0;;;8967:21:1;9024:2;9004:18;;;8997:30;9063:29;9043:18;;;9036:57;9110:18;;2463:46:0;8783:351:1;15165:211:0;15218:19;15240:10;:8;:10::i;:::-;15218:32;-1:-1:-1;15261:13:0;15277:22;:5;15218:32;15277:9;:22::i;:::-;15351:4;15335:22;;;;:7;:22;;;;;;15261:38;;-1:-1:-1;15335:33:0;;15261:38;15335:26;:33::i;:::-;15326:4;15310:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15165:211:0:o;15384:147::-;15462:7;;:17;;15474:4;15462:11;:17::i;:::-;15452:7;:27;15503:10;;:20;;15518:4;15503:14;:20::i;:::-;15490:10;:33;-1:-1:-1;;15384:147:0:o;16201:611::-;16385:7;;;;16479:30;16505:3;16479:21;:7;16491:8;16479:11;:21::i;:::-;:25;;:30::i;:::-;16464:45;-1:-1:-1;16520:13:0;16536:28;16560:3;16536:19;:7;16548:6;16536:11;:19::i;:28::-;16520:44;;16591:13;16607:30;16633:3;16607:21;16619:8;;16607:7;:11;;:21;;;;:::i;:30::-;16591:46;-1:-1:-1;16648:23:0;16674:39;16591:46;16674:28;16696:5;16674:28;:7;16686:4;16674:11;:17::i;:::-;:21;;:28::i;:39::-;16735:8;;16648:65;;-1:-1:-1;16735:19:0;;16748:5;16735:12;:19::i;:::-;16724:8;:30;16775:15;16792:4;;-1:-1:-1;16798:5:0;;-1:-1:-1;16201:611:0;;-1:-1:-1;;;;;16201:611:0:o;16818:630::-;17020:7;;;;17117:24;:7;17129:11;17117;:24::i;:::-;17099:42;;17152:13;17168:47;17203:11;17168:30;17194:3;17168:21;17180:8;;17168:7;:11;;:21;;;;:::i;:30::-;:34;;:47::i;:::-;17152:63;-1:-1:-1;17226:12:0;17241:21;:4;17250:11;17241:8;:21::i;:::-;17226:36;-1:-1:-1;17273:13:0;17289:22;:5;17299:11;17289:9;:22::i;:::-;17273:38;-1:-1:-1;17322:23:0;17348:39;17273:38;17348:28;17370:5;17348:28;:7;17360:4;17348:11;:17::i;:39::-;17409:7;;;;-1:-1:-1;17435:4:0;;-1:-1:-1;16818:630:0;;-1:-1:-1;;;;;;;;16818:630:0:o;2923:246::-;2981:7;3005:6;3001:47;;-1:-1:-1;3035:1:0;3028:8;;3001:47;3058:9;3070:5;3074:1;3070;:5;:::i;:::-;3058:17;-1:-1:-1;3103:1:0;3094:5;3098:1;3058:17;3094:5;:::i;:::-;:10;3086:56;;;;-1:-1:-1;;;3086:56:0;;9341:2:1;3086:56:0;;;9323:21:1;9380:2;9360:18;;;9353:30;9419:34;9399:18;;;9392:62;-1:-1:-1;;;9470:18:1;;;9463:31;9511:19;;3086:56:0;9139:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;826:388::-;894:6;902;955:2;943:9;934:7;930:23;926:32;923:52;;;971:1;968;961:12;923:52;1010:9;997:23;1029:31;1054:5;1029:31;:::i;:::-;1079:5;-1:-1:-1;1136:2:1;1121:18;;1108:32;1149:33;1108:32;1149:33;:::i;:::-;1201:7;1191:17;;;826:388;;;;;:::o;1219:456::-;1296:6;1304;1312;1365:2;1353:9;1344:7;1340:23;1336:32;1333:52;;;1381:1;1378;1371:12;1333:52;1420:9;1407:23;1439:31;1464:5;1439:31;:::i;:::-;1489:5;-1:-1:-1;1546:2:1;1531:18;;1518:32;1559:33;1518:32;1559:33;:::i;:::-;1219:456;;1611:7;;-1:-1:-1;;;1665:2:1;1650:18;;;;1637:32;;1219:456::o;1680:315::-;1748:6;1756;1809:2;1797:9;1788:7;1784:23;1780:32;1777:52;;;1825:1;1822;1815:12;1777:52;1864:9;1851:23;1883:31;1908:5;1883:31;:::i;:::-;1933:5;1985:2;1970:18;;;;1957:32;;-1:-1:-1;;;1680:315:1:o;2000:689::-;2092:6;2100;2108;2161:2;2149:9;2140:7;2136:23;2132:32;2129:52;;;2177:1;2174;2167:12;2129:52;2217:9;2204:23;2246:18;2287:2;2279:6;2276:14;2273:34;;;2303:1;2300;2293:12;2273:34;2341:6;2330:9;2326:22;2316:32;;2386:7;2379:4;2375:2;2371:13;2367:27;2357:55;;2408:1;2405;2398:12;2357:55;2448:2;2435:16;2474:2;2466:6;2463:14;2460:34;;;2490:1;2487;2480:12;2460:34;2545:7;2538:4;2528:6;2525:1;2521:14;2517:2;2513:23;2509:34;2506:47;2503:67;;;2566:1;2563;2556:12;2503:67;2597:4;2589:13;;;;-1:-1:-1;2621:6:1;-1:-1:-1;2646:37:1;;2662:20;;;-1:-1:-1;2646:37:1;:::i;:::-;2636:47;;2000:689;;;;;:::o;2694:1132::-;2778:6;2809:2;2852;2840:9;2831:7;2827:23;2823:32;2820:52;;;2868:1;2865;2858:12;2820:52;2908:9;2895:23;2937:18;2978:2;2970:6;2967:14;2964:34;;;2994:1;2991;2984:12;2964:34;3032:6;3021:9;3017:22;3007:32;;3077:7;3070:4;3066:2;3062:13;3058:27;3048:55;;3099:1;3096;3089:12;3048:55;3135:2;3122:16;3157:2;3153;3150:10;3147:36;;;3163:18;;:::i;:::-;3209:2;3206:1;3202:10;3241:2;3235:9;3304:2;3300:7;3295:2;3291;3287:11;3283:25;3275:6;3271:38;3359:6;3347:10;3344:22;3339:2;3327:10;3324:18;3321:46;3318:72;;;3370:18;;:::i;:::-;3406:2;3399:22;3456:18;;;3490:15;;;;-1:-1:-1;3525:11:1;;;3555;;;3551:20;;3548:33;-1:-1:-1;3545:53:1;;;3594:1;3591;3584:12;3545:53;3616:1;3607:10;;3626:169;3640:2;3637:1;3634:9;3626:169;;;3697:23;3716:3;3697:23;:::i;:::-;3685:36;;3658:1;3651:9;;;;;3741:12;;;;3773;;3626:169;;;-1:-1:-1;3814:6:1;2694:1132;-1:-1:-1;;;;;;;;2694:1132:1:o;3831:180::-;3887:6;3940:2;3928:9;3919:7;3915:23;3911:32;3908:52;;;3956:1;3953;3946:12;3908:52;3979:26;3995:9;3979:26;:::i;4016:180::-;4075:6;4128:2;4116:9;4107:7;4103:23;4099:32;4096:52;;;4144:1;4141;4134:12;4096:52;-1:-1:-1;4167:23:1;;4016:180;-1:-1:-1;4016:180:1:o;4201:523::-;4305:6;4313;4321;4329;4337;4345;4398:3;4386:9;4377:7;4373:23;4369:33;4366:53;;;4415:1;4412;4405:12;4366:53;-1:-1:-1;;4438:23:1;;;4508:2;4493:18;;4480:32;;-1:-1:-1;4559:2:1;4544:18;;4531:32;;4610:2;4595:18;;4582:32;;-1:-1:-1;4661:3:1;4646:19;;4633:33;;-1:-1:-1;4713:3:1;4698:19;4685:33;;-1:-1:-1;4201:523:1;-1:-1:-1;4201:523:1:o;5363:597::-;5475:4;5504:2;5533;5522:9;5515:21;5565:6;5559:13;5608:6;5603:2;5592:9;5588:18;5581:34;5633:1;5643:140;5657:6;5654:1;5651:13;5643:140;;;5752:14;;;5748:23;;5742:30;5718:17;;;5737:2;5714:26;5707:66;5672:10;;5643:140;;;5801:6;5798:1;5795:13;5792:91;;;5871:1;5866:2;5857:6;5846:9;5842:22;5838:31;5831:42;5792:91;-1:-1:-1;5944:2:1;5923:15;-1:-1:-1;;5919:29:1;5904:45;;;;5951:2;5900:54;;5363:597;-1:-1:-1;;;5363:597:1:o;9541:356::-;9743:2;9725:21;;;9762:18;;;9755:30;9821:34;9816:2;9801:18;;9794:62;9888:2;9873:18;;9541:356::o;11709:980::-;11971:4;12019:3;12008:9;12004:19;12050:6;12039:9;12032:25;12076:2;12114:6;12109:2;12098:9;12094:18;12087:34;12157:3;12152:2;12141:9;12137:18;12130:31;12181:6;12216;12210:13;12247:6;12239;12232:22;12285:3;12274:9;12270:19;12263:26;;12324:2;12316:6;12312:15;12298:29;;12345:1;12355:195;12369:6;12366:1;12363:13;12355:195;;;12434:13;;-1:-1:-1;;;;;12430:39:1;12418:52;;12525:15;;;;12490:12;;;;12466:1;12384:9;12355:195;;;-1:-1:-1;;;;;;;12606:32:1;;;;12601:2;12586:18;;12579:60;-1:-1:-1;;;12670:3:1;12655:19;12648:35;12567:3;11709:980;-1:-1:-1;;;11709:980:1:o;12883:128::-;12923:3;12954:1;12950:6;12947:1;12944:13;12941:39;;;12960:18;;:::i;:::-;-1:-1:-1;12996:9:1;;12883:128::o;13016:217::-;13056:1;13082;13072:132;;13126:10;13121:3;13117:20;13114:1;13107:31;13161:4;13158:1;13151:15;13189:4;13186:1;13179:15;13072:132;-1:-1:-1;13218:9:1;;13016:217::o;13238:168::-;13278:7;13344:1;13340;13336:6;13332:14;13329:1;13326:21;13321:1;13314:9;13307:17;13303:45;13300:71;;;13351:18;;:::i;:::-;-1:-1:-1;13391:9:1;;13238:168::o;13411:125::-;13451:4;13479:1;13476;13473:8;13470:34;;;13484:18;;:::i;:::-;-1:-1:-1;13521:9:1;;13411:125::o;13541:135::-;13580:3;-1:-1:-1;;13601:17:1;;13598:43;;;13621:18;;:::i;:::-;-1:-1:-1;13668:1:1;13657:13;;13541:135::o;13681:127::-;13742:10;13737:3;13733:20;13730:1;13723:31;13773:4;13770:1;13763:15;13797:4;13794:1;13787:15;13813:127;13874:10;13869:3;13865:20;13862:1;13855:31;13905:4;13902:1;13895:15;13929:4;13926:1;13919:15;13945:127;14006:10;14001:3;13997:20;13994:1;13987:31;14037:4;14034:1;14027:15;14061:4;14058:1;14051:15;14077:131;-1:-1:-1;;;;;14152:31:1;;14142:42;;14132:70;;14198:1;14195;14188:12
Swarm Source
ipfs://85758dca84c8c8fe620f48b9426632221b0f5db6b72510a200b08c5d42619601
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.