ERC-20
Overview
Max Total Supply
1,000,000,000 JAPEI
Holders
64
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 JAPEIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
JAPEI
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-20 */ /** https://t.me/japeierc20 https://x.com/japeierc20 https://japeierc20.xyz */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.19; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { 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 ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract JAPEI is IERC20, Ownable { using SafeMath for uint256; string constant _name = "Japanese Pepe"; string constant _symbol = "JAPEI"; uint8 constant _decimals = 18; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public autoLiquidityReceiver; address public marketingWallet; uint256 _totalSupply = 1_000_000_000 * (10**_decimals); uint256 public _maxTxAmount = (_totalSupply * 20) / 1000; uint256 public _walletMax = (_totalSupply * 20) / 1000; bool public restrictWhales = true; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; bool public tradingOpen = false; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; bool public takeBuyFee = true; bool public takeSellFee = true; bool public takeTransferFee = true; uint256 public liquidityFee = 0; uint256 public marketingFee = 300; uint256 public rewardsFee = 0; uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; IDEXRouter public router; address public pair; mapping(address => bool) public isPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; bool public swapAndLiquifyByLimitOnly = false; uint256 public swapThreshold = (_totalSupply * 5) / 1000000; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } event AutoLiquify(uint256 amountETH, uint256 amountToken); constructor() { autoLiquidityReceiver = msg.sender; marketingWallet = 0x3248ad0eC5afe196B382a9a3F5cf32B05E14eaE4; router = IDEXRouter(routerAddress); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[marketingWallet] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[address(this)] = true; totalFee = liquidityFee.add(marketingFee).add(rewardsFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function openJapei() external onlyOwner { address pair_weth = IDEXFactory(router.factory()).createPair( router.WETH(), address(this) ); pair = pair_weth; isPair[pair] = true; isTxLimitExempt[pair_weth] = true; router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, address(0), block.timestamp ); tradingOpen = true; swapAndLiquifyEnabled = true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } if (!isFeeExempt[sender]) { require(tradingOpen, "Trading not open yet"); } require( amount <= _maxTxAmount || isTxLimitExempt[sender] || !restrictWhales, "TX Limit Exceeded" ); if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled) { swapBack(); } if (!isTxLimitExempt[recipient] && restrictWhales) { require( _balances[recipient].add(amount) <= _walletMax, "Wallet Limit Exceeded" ); } uint256 finalAmount = takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { bool fee = !isFeeExempt[sender] && !isFeeExempt[recipient]; uint256 feeAmount = 0; if (fee) { uint256 feeApplicable = 0; if (isPair[recipient] && takeSellFee) { feeApplicable = totalFeeIfSelling; } if (isPair[sender] && takeBuyFee) { feeApplicable = totalFee; } if (!isPair[sender] && !isPair[recipient]) { if (takeTransferFee) { feeApplicable = totalFeeIfSelling; } else { feeApplicable = 0; } } feeAmount = amount.mul(feeApplicable).div(1000); } else { if (sender == marketingWallet) { return amount; } } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function swapBack() internal lockTheSwap { uint256 amountToSwap = _balances[address(this)]; if (amountToSwap >= swapThreshold * 2000) amountToSwap = swapThreshold * 2000; if (amountToSwap >= swapThreshold) { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); } uint256 amountETH = address(this).balance; payable(marketingWallet).transfer(amountETH); } function removeTax( uint256 newLiqFeeThou, uint256 newRewardFeeThou, uint256 newmarketingFee, uint256 extraSellFee ) external onlyOwner { liquidityFee = newLiqFeeThou; rewardsFee = newRewardFeeThou; marketingFee = newmarketingFee; totalFee = liquidityFee.add(marketingFee).add(rewardsFee); totalFeeIfSelling = totalFee + extraSellFee; require( totalFee <= 990 && totalFeeIfSelling <= 990, "Token: Combined fees must be under %" ); } function removeLimits() external onlyOwner { _walletMax = type(uint256).max; _maxTxAmount = type(uint256).max; } function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { require(tokenAddress != address(this), "Cant remove the native token"); return IERC20(tokenAddress).transfer(msg.sender, tokens); } function removeEther(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); } }
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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openJapei","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFeeThou","type":"uint256"},{"internalType":"uint256","name":"newRewardFeeThou","type":"uint256"},{"internalType":"uint256","name":"newmarketingFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a620003eb565b6200004890633b9aca00620003fc565b6004556103e860045460146200005f9190620003fc565b6200006b919062000416565b6005556103e86004546014620000829190620003fc565b6200008e919062000416565b60065560078054600160ff1991821617909155600a80549091169055600d805462ffffff1916620101011790556000600e81905561012c600f55601081905560118190556012556016805462ffff0019169055600454620f424090620000f6906005620003fc565b62000102919062000416565b6017553480156200011257600080fd5b506200011e3362000271565b60028054336001600160a01b0319918216811790925560038054733248ad0ec5afe196b382a9a3f5cf32b05e14eae490831617815560018054601380546001600160a01b039283169516851790553060008181526009602090815260408083209783529681528682206000199055878252600b8152868220805460ff19908116871790915583835287832080548216871790559554841682528682208054871686179055968152600c9096528486208054851684179055601454909116855283852080548416831790558452919092208054909216179055601054600f54600e54620002189291620002119190620002c1565b90620002c1565b601181905560125560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200044f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002cf828462000439565b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200032f578160001904821115620003135762000313620002d8565b808516156200032157918102915b93841c9390800290620002f3565b509250929050565b6000826200034857506001620002d2565b816200035757506000620002d2565b81600181146200037057600281146200037b576200039b565b6001915050620002d2565b60ff8411156200038f576200038f620002d8565b50506001821b620002d2565b5060208310610133831016604e8410600b8410161715620003c0575081810a620002d2565b620003cc8383620002ee565b8060001904821115620003e357620003e3620002d8565b029392505050565b6000620002cf60ff84168362000337565b8082028115828204841417620002d257620002d2620002d8565b6000826200043457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620002d257620002d2620002d8565b611a14806200045f6000396000f3fe6080604052600436106102345760003560e01c80637d1db4a51161012e578063a9059cbb116100ab578063e5e31b131161006f578063e5e31b13146106bc578063f0ef821f146106ec578063f2fde38b14610706578063f887ea4014610726578063ffb54a991461074657600080fd5b8063a9059cbb14610600578063ca33e64c14610620578063ca987b0e14610640578063da00097d14610656578063dd62ed3e1461067657600080fd5b80638da5cb5b116100f25780638da5cb5b1461055e57806395d89b411461057c57806398118cb4146105aa578063a5355989146105c0578063a8aa1b31146105e057600080fd5b80637d1db4a5146104c2578063807c2d9c146104d85780638637b069146104ee578063876b876e1461050e5780638b42507f1461052e57600080fd5b80633f4218e0116101bc57806370a082311161018057806370a082311461040a578063715018a614610440578063751039fc1461045557806375f0a8741461046a578063787a051b146104a257600080fd5b80633f4218e01461036c57806344de2e4c1461039c5780634a74bb02146103b65780636b67c4df146103d557806370540933146103eb57600080fd5b806318160ddd1161020357806318160ddd146102ef5780631df4ccfc1461030457806323b872dd1461031a5780632bb14e1d1461033a578063313ce5671461035057600080fd5b80630445b6671461024057806306fdde031461026957806307368cfc146102a8578063095ea7b3146102bf57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660175481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600d81526c4a6170616e657365205065706560981b60208201525b60405161026091906116cf565b3480156102b457600080fd5b506102bd610760565b005b3480156102cb57600080fd5b506102df6102da366004611732565b610a10565b6040519015158152602001610260565b3480156102fb57600080fd5b50600454610256565b34801561031057600080fd5b5061025660115481565b34801561032657600080fd5b506102df61033536600461175e565b610a7d565b34801561034657600080fd5b5061025660105481565b34801561035c57600080fd5b5060405160128152602001610260565b34801561037857600080fd5b506102df61038736600461179f565b600b6020526000908152604090205460ff1681565b3480156103a857600080fd5b506007546102df9060ff1681565b3480156103c257600080fd5b506016546102df90610100900460ff1681565b3480156103e157600080fd5b50610256600f5481565b3480156103f757600080fd5b50600d546102df90610100900460ff1681565b34801561041657600080fd5b5061025661042536600461179f565b6001600160a01b031660009081526008602052604090205490565b34801561044c57600080fd5b506102bd610b3f565b34801561046157600080fd5b506102bd610b75565b34801561047657600080fd5b5060035461048a906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b3480156104ae57600080fd5b506102bd6104bd3660046117bc565b610bac565b3480156104ce57600080fd5b5061025660055481565b3480156104e457600080fd5b5061025660065481565b3480156104fa57600080fd5b506102df610509366004611732565b610c1e565b34801561051a57600080fd5b506102bd6105293660046117d5565b610d12565b34801561053a57600080fd5b506102df61054936600461179f565b600c6020526000908152604090205460ff1681565b34801561056a57600080fd5b506000546001600160a01b031661048a565b34801561058857600080fd5b506040805180820190915260058152644a4150454960d81b602082015261029b565b3480156105b657600080fd5b50610256600e5481565b3480156105cc57600080fd5b50600d546102df9062010000900460ff1681565b3480156105ec57600080fd5b5060145461048a906001600160a01b031681565b34801561060c57600080fd5b506102df61061b366004611732565b610de8565b34801561062c57600080fd5b5060025461048a906001600160a01b031681565b34801561064c57600080fd5b5061025660125481565b34801561066257600080fd5b506016546102df9062010000900460ff1681565b34801561068257600080fd5b50610256610691366004611807565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106c857600080fd5b506102df6106d736600461179f565b60156020526000908152604090205460ff1681565b3480156106f857600080fd5b50600d546102df9060ff1681565b34801561071257600080fd5b506102bd61072136600461179f565b610df5565b34801561073257600080fd5b5060135461048a906001600160a01b031681565b34801561075257600080fd5b50600a546102df9060ff1681565b6000546001600160a01b031633146107935760405162461bcd60e51b815260040161078a90611840565b60405180910390fd5b6013546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108019190611875565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108869190611875565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156108d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f69190611875565b601480546001600160a01b0319166001600160a01b038381169182179092556000908152601560209081526040808320805460ff199081166001908117909255600c84528285208054909116909117905560135430808552600890935292205493945091169163f305d7199147916040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201526000604482018190526064820181905260848201524260a482015260c40160606040518083038185885af11580156109c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ee9190611892565b5050600a805460ff1916600117905550506016805461ff001916610100179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a6b9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b2a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610b05918490610e90565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b35848484610ebc565b90505b9392505050565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161078a90611840565b610b73600061113d565b565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078a90611840565b6000196006819055600555565b6000546001600160a01b03163314610bd65760405162461bcd60e51b815260040161078a90611840565b47336108fc6064610be785856118d6565b610bf191906118ed565b6040518115909202916000818181858888f19350505050158015610c19573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610c495760405162461bcd60e51b815260040161078a90611840565b306001600160a01b03841603610ca15760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161078a565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610cee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b38919061190f565b6000546001600160a01b03163314610d3c5760405162461bcd60e51b815260040161078a90611840565b600e8490556010839055600f829055610d5f83610d59868561118d565b9061118d565b6011819055610d6f908290611931565b6012556011546103de10801590610d8a57506103de60125411155b610de25760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a20436f6d62696e65642066656573206d75737420626520756e646044820152636572202560e01b606482015260840161078a565b50505050565b6000610b38338484610ebc565b6000546001600160a01b03163314610e1f5760405162461bcd60e51b815260040161078a90611840565b6001600160a01b038116610e845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078a565b610e8d8161113d565b50565b60008184841115610eb45760405162461bcd60e51b815260040161078a91906116cf565b505050900390565b60165460009060ff1615610edc57610ed5848484611199565b9050610b38565b6001600160a01b0384166000908152600b602052604090205460ff16610f4557600a5460ff16610f455760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161078a565b60055482111580610f6e57506001600160a01b0384166000908152600c602052604090205460ff165b80610f7c575060075460ff16155b610fbc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161078a565b6001600160a01b03831660009081526015602052604090205460ff168015610fe7575060165460ff16155b8015610ffa5750601654610100900460ff165b156110075761100761127f565b6001600160a01b0383166000908152600c602052604090205460ff16158015611032575060075460ff165b156110a3576006546001600160a01b03841660009081526008602052604090205461105d908461118d565b11156110a35760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d08131a5b5a5d08115e18d959591959605a1b604482015260640161078a565b60006110b0858585611454565b6001600160a01b0385166000908152600860205260409020549091506110d6908261118d565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112a9085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610b388284611931565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546111ea918490610e90565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611219908361118d565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061126d9086815260200190565b60405180910390a35060019392505050565b6016805460ff19166001179055306000908152600860205260409020546017546112ab906107d06118d6565b81106112c3576017546112c0906107d06118d6565b90505b601754811061140b57604080516002808252606082018352600092602083019080368337019050509050308160008151811061130157611301611944565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561135a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137e9190611875565b8160018151811061139157611391611944565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906113d790859060009086903090429060040161195a565b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b50505050505b60035460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611445573d6000803e3d6000fd5b50506016805460ff1916905550565b6001600160a01b0383166000908152600b6020526040812054819060ff1615801561149857506001600160a01b0384166000908152600b602052604090205460ff16155b905060008115611592576001600160a01b03851660009081526015602052604081205460ff1680156114d15750600d54610100900460ff165b156114db57506012545b6001600160a01b03871660009081526015602052604090205460ff1680156115055750600d5460ff165b1561150f57506011545b6001600160a01b03871660009081526015602052604090205460ff1615801561155157506001600160a01b03861660009081526015602052604090205460ff16155b1561157457600d5462010000900460ff16156115705750601254611574565b5060005b61158a6103e861158487846116ab565b906116b7565b9150506115b2565b6003546001600160a01b03908116908716036115b2578392505050610b38565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260089091529190912054611604918690610e90565b6001600160a01b0387166000908152600860205260409020558015611697573060009081526008602052604090205461163d908261118d565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168e9085815260200190565b60405180910390a35b6116a184826116c3565b9695505050505050565b6000610b3882846118d6565b6000610b3882846118ed565b6000610b3882846119cb565b600060208083528351808285015260005b818110156116fc578581018301518582016040015282016116e0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e8d57600080fd5b6000806040838503121561174557600080fd5b82356117508161171d565b946020939093013593505050565b60008060006060848603121561177357600080fd5b833561177e8161171d565b9250602084013561178e8161171d565b929592945050506040919091013590565b6000602082840312156117b157600080fd5b8135610b388161171d565b6000602082840312156117ce57600080fd5b5035919050565b600080600080608085870312156117eb57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561181a57600080fd5b82356118258161171d565b915060208301356118358161171d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561188757600080fd5b8151610b388161171d565b6000806000606084860312156118a757600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7757610a776118c0565b60008261190a57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561192157600080fd5b81518015158114610b3857600080fd5b80820180821115610a7757610a776118c0565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119aa5784516001600160a01b031683529383019391830191600101611985565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115610a7757610a776118c056fea2646970667358221220a73225a4765d2af0790819f69eb7c27ee99eaeabe00a4533b31f53b06563dc8764736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102345760003560e01c80637d1db4a51161012e578063a9059cbb116100ab578063e5e31b131161006f578063e5e31b13146106bc578063f0ef821f146106ec578063f2fde38b14610706578063f887ea4014610726578063ffb54a991461074657600080fd5b8063a9059cbb14610600578063ca33e64c14610620578063ca987b0e14610640578063da00097d14610656578063dd62ed3e1461067657600080fd5b80638da5cb5b116100f25780638da5cb5b1461055e57806395d89b411461057c57806398118cb4146105aa578063a5355989146105c0578063a8aa1b31146105e057600080fd5b80637d1db4a5146104c2578063807c2d9c146104d85780638637b069146104ee578063876b876e1461050e5780638b42507f1461052e57600080fd5b80633f4218e0116101bc57806370a082311161018057806370a082311461040a578063715018a614610440578063751039fc1461045557806375f0a8741461046a578063787a051b146104a257600080fd5b80633f4218e01461036c57806344de2e4c1461039c5780634a74bb02146103b65780636b67c4df146103d557806370540933146103eb57600080fd5b806318160ddd1161020357806318160ddd146102ef5780631df4ccfc1461030457806323b872dd1461031a5780632bb14e1d1461033a578063313ce5671461035057600080fd5b80630445b6671461024057806306fdde031461026957806307368cfc146102a8578063095ea7b3146102bf57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660175481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600d81526c4a6170616e657365205065706560981b60208201525b60405161026091906116cf565b3480156102b457600080fd5b506102bd610760565b005b3480156102cb57600080fd5b506102df6102da366004611732565b610a10565b6040519015158152602001610260565b3480156102fb57600080fd5b50600454610256565b34801561031057600080fd5b5061025660115481565b34801561032657600080fd5b506102df61033536600461175e565b610a7d565b34801561034657600080fd5b5061025660105481565b34801561035c57600080fd5b5060405160128152602001610260565b34801561037857600080fd5b506102df61038736600461179f565b600b6020526000908152604090205460ff1681565b3480156103a857600080fd5b506007546102df9060ff1681565b3480156103c257600080fd5b506016546102df90610100900460ff1681565b3480156103e157600080fd5b50610256600f5481565b3480156103f757600080fd5b50600d546102df90610100900460ff1681565b34801561041657600080fd5b5061025661042536600461179f565b6001600160a01b031660009081526008602052604090205490565b34801561044c57600080fd5b506102bd610b3f565b34801561046157600080fd5b506102bd610b75565b34801561047657600080fd5b5060035461048a906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b3480156104ae57600080fd5b506102bd6104bd3660046117bc565b610bac565b3480156104ce57600080fd5b5061025660055481565b3480156104e457600080fd5b5061025660065481565b3480156104fa57600080fd5b506102df610509366004611732565b610c1e565b34801561051a57600080fd5b506102bd6105293660046117d5565b610d12565b34801561053a57600080fd5b506102df61054936600461179f565b600c6020526000908152604090205460ff1681565b34801561056a57600080fd5b506000546001600160a01b031661048a565b34801561058857600080fd5b506040805180820190915260058152644a4150454960d81b602082015261029b565b3480156105b657600080fd5b50610256600e5481565b3480156105cc57600080fd5b50600d546102df9062010000900460ff1681565b3480156105ec57600080fd5b5060145461048a906001600160a01b031681565b34801561060c57600080fd5b506102df61061b366004611732565b610de8565b34801561062c57600080fd5b5060025461048a906001600160a01b031681565b34801561064c57600080fd5b5061025660125481565b34801561066257600080fd5b506016546102df9062010000900460ff1681565b34801561068257600080fd5b50610256610691366004611807565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106c857600080fd5b506102df6106d736600461179f565b60156020526000908152604090205460ff1681565b3480156106f857600080fd5b50600d546102df9060ff1681565b34801561071257600080fd5b506102bd61072136600461179f565b610df5565b34801561073257600080fd5b5060135461048a906001600160a01b031681565b34801561075257600080fd5b50600a546102df9060ff1681565b6000546001600160a01b031633146107935760405162461bcd60e51b815260040161078a90611840565b60405180910390fd5b6013546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108019190611875565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108869190611875565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156108d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f69190611875565b601480546001600160a01b0319166001600160a01b038381169182179092556000908152601560209081526040808320805460ff199081166001908117909255600c84528285208054909116909117905560135430808552600890935292205493945091169163f305d7199147916040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201526000604482018190526064820181905260848201524260a482015260c40160606040518083038185885af11580156109c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ee9190611892565b5050600a805460ff1916600117905550506016805461ff001916610100179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a6b9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b2a576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610b05918490610e90565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b35848484610ebc565b90505b9392505050565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161078a90611840565b610b73600061113d565b565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078a90611840565b6000196006819055600555565b6000546001600160a01b03163314610bd65760405162461bcd60e51b815260040161078a90611840565b47336108fc6064610be785856118d6565b610bf191906118ed565b6040518115909202916000818181858888f19350505050158015610c19573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610c495760405162461bcd60e51b815260040161078a90611840565b306001600160a01b03841603610ca15760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161078a565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610cee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b38919061190f565b6000546001600160a01b03163314610d3c5760405162461bcd60e51b815260040161078a90611840565b600e8490556010839055600f829055610d5f83610d59868561118d565b9061118d565b6011819055610d6f908290611931565b6012556011546103de10801590610d8a57506103de60125411155b610de25760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a20436f6d62696e65642066656573206d75737420626520756e646044820152636572202560e01b606482015260840161078a565b50505050565b6000610b38338484610ebc565b6000546001600160a01b03163314610e1f5760405162461bcd60e51b815260040161078a90611840565b6001600160a01b038116610e845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078a565b610e8d8161113d565b50565b60008184841115610eb45760405162461bcd60e51b815260040161078a91906116cf565b505050900390565b60165460009060ff1615610edc57610ed5848484611199565b9050610b38565b6001600160a01b0384166000908152600b602052604090205460ff16610f4557600a5460ff16610f455760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161078a565b60055482111580610f6e57506001600160a01b0384166000908152600c602052604090205460ff165b80610f7c575060075460ff16155b610fbc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161078a565b6001600160a01b03831660009081526015602052604090205460ff168015610fe7575060165460ff16155b8015610ffa5750601654610100900460ff165b156110075761100761127f565b6001600160a01b0383166000908152600c602052604090205460ff16158015611032575060075460ff165b156110a3576006546001600160a01b03841660009081526008602052604090205461105d908461118d565b11156110a35760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d08131a5b5a5d08115e18d959591959605a1b604482015260640161078a565b60006110b0858585611454565b6001600160a01b0385166000908152600860205260409020549091506110d6908261118d565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112a9085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610b388284611931565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546111ea918490610e90565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611219908361118d565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061126d9086815260200190565b60405180910390a35060019392505050565b6016805460ff19166001179055306000908152600860205260409020546017546112ab906107d06118d6565b81106112c3576017546112c0906107d06118d6565b90505b601754811061140b57604080516002808252606082018352600092602083019080368337019050509050308160008151811061130157611301611944565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561135a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137e9190611875565b8160018151811061139157611391611944565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906113d790859060009086903090429060040161195a565b600060405180830381600087803b1580156113f157600080fd5b505af1158015611405573d6000803e3d6000fd5b50505050505b60035460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611445573d6000803e3d6000fd5b50506016805460ff1916905550565b6001600160a01b0383166000908152600b6020526040812054819060ff1615801561149857506001600160a01b0384166000908152600b602052604090205460ff16155b905060008115611592576001600160a01b03851660009081526015602052604081205460ff1680156114d15750600d54610100900460ff165b156114db57506012545b6001600160a01b03871660009081526015602052604090205460ff1680156115055750600d5460ff165b1561150f57506011545b6001600160a01b03871660009081526015602052604090205460ff1615801561155157506001600160a01b03861660009081526015602052604090205460ff16155b1561157457600d5462010000900460ff16156115705750601254611574565b5060005b61158a6103e861158487846116ab565b906116b7565b9150506115b2565b6003546001600160a01b03908116908716036115b2578392505050610b38565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260089091529190912054611604918690610e90565b6001600160a01b0387166000908152600860205260409020558015611697573060009081526008602052604090205461163d908261118d565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168e9085815260200190565b60405180910390a35b6116a184826116c3565b9695505050505050565b6000610b3882846118d6565b6000610b3882846118ed565b6000610b3882846119cb565b600060208083528351808285015260005b818110156116fc578581018301518582016040015282016116e0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e8d57600080fd5b6000806040838503121561174557600080fd5b82356117508161171d565b946020939093013593505050565b60008060006060848603121561177357600080fd5b833561177e8161171d565b9250602084013561178e8161171d565b929592945050506040919091013590565b6000602082840312156117b157600080fd5b8135610b388161171d565b6000602082840312156117ce57600080fd5b5035919050565b600080600080608085870312156117eb57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561181a57600080fd5b82356118258161171d565b915060208301356118358161171d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561188757600080fd5b8151610b388161171d565b6000806000606084860312156118a757600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a7757610a776118c0565b60008261190a57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561192157600080fd5b81518015158114610b3857600080fd5b80820180821115610a7757610a776118c0565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119aa5784516001600160a01b031683529383019391830191600101611985565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115610a7757610a776118c056fea2646970667358221220a73225a4765d2af0790819f69eb7c27ee99eaeabe00a4533b31f53b06563dc8764736f6c63430008130033
Deployed Bytecode Sourcemap
5896:9462:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7283:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7283:59:0;;;;;;;;8332:94;;;;;;;;;;-1:-1:-1;8413:5:0;;;;;;;;;;;;-1:-1:-1;;;8413:5:0;;;;8332:94;;;;;;;:::i;9957:589::-;;;;;;;;;;;;;:::i;:::-;;9075:248;;;;;;;;;;-1:-1:-1;9075:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9075:248:0;1205:187:1;8642:102:0;;;;;;;;;;-1:-1:-1;8724:12:0;;8642:102;;6970:27;;;;;;;;;;;;;;;;9527:422;;;;;;;;;;-1:-1:-1;9527:422:0;;;;;:::i;:::-;;:::i;6932:29::-;;;;;;;;;;;;;;;;8540:94;;;;;;;;;;-1:-1:-1;8540:94:0;;6085:2;2000:36:1;;1988:2;1973:18;8540:94:0;1858:184:1;6632:43:0;;;;;;;;;;-1:-1:-1;6632:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6438:33;;;;;;;;;;-1:-1:-1;6438:33:0;;;;;;;;7181:41;;;;;;;;;;-1:-1:-1;7181:41:0;;;;;;;;;;;6892:33;;;;;;;;;;;;;;;;6774:30;;;;;;;;;;-1:-1:-1;6774:30:0;;;;;;;;;;;8752:119;;;;;;;;;;-1:-1:-1;8752:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8845:18:0;8818:7;8845:18;;;:9;:18;;;;;;;8752:119;5341:103;;;;;;;;;;;;;:::i;14714:135::-;;;;;;;;;;;;;:::i;6214:30::-;;;;;;;;;;-1:-1:-1;6214:30:0;;;;-1:-1:-1;;;;;6214:30:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6214:30:0;2299:203:1;15152::0;;;;;;;;;;-1:-1:-1;15152:203:0;;;;;:::i;:::-;;:::i;6314:56::-;;;;;;;;;;;;;;;;6377:54;;;;;;;;;;;;;;;;14857:287;;;;;;;;;;-1:-1:-1;14857:287:0;;;;;:::i;:::-;;:::i;14137:569::-;;;;;;;;;;-1:-1:-1;14137:569:0;;;;;:::i;:::-;;:::i;6682:47::-;;;;;;;;;;-1:-1:-1;6682:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5118:87;;;;;;;;;;-1:-1:-1;5164:7:0;5191:6;-1:-1:-1;;;;;5191:6:0;5118:87;;8434:98;;;;;;;;;;-1:-1:-1;8517:7:0;;;;;;;;;;;;-1:-1:-1;;;8517:7:0;;;;8434:98;;6854:31;;;;;;;;;;;;;;;;6811:34;;;;;;;;;;-1:-1:-1;6811:34:0;;;;;;;;;;;7080:19;;;;;;;;;;-1:-1:-1;7080:19:0;;;;-1:-1:-1;;;;;7080:19:0;;;9331:188;;;;;;;;;;-1:-1:-1;9331:188:0;;;;;:::i;:::-;;:::i;6171:36::-;;;;;;;;;;-1:-1:-1;6171:36:0;;;;-1:-1:-1;;;;;6171:36:0;;;7004;;;;;;;;;;;;;;;;7229:45;;;;;;;;;;-1:-1:-1;7229:45:0;;;;;;;;;;;8879:188;;;;;;;;;;-1:-1:-1;8879:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;9031:19:0;;;8999:7;9031:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8879:188;7106:38;;;;;;;;;;-1:-1:-1;7106:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6738:29;;;;;;;;;;-1:-1:-1;6738:29:0;;;;;;;;5452:238;;;;;;;;;;-1:-1:-1;5452:238:0;;;;;:::i;:::-;;:::i;7049:24::-;;;;;;;;;;-1:-1:-1;7049:24:0;;;;-1:-1:-1;;;;;7049:24:0;;;6592:31;;;;;;;;;;-1:-1:-1;6592:31:0;;;;;;;;9957:589;5164:7;5191:6;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;;;;;;;;;10040:6:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;10040:16:0;;;;10008:17:::1;::::0;-1:-1:-1;;;;;10040:6:0::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10028:40:0::1;;10083:6;;;;;;;;;-1:-1:-1::0;;;;;10083:6:0::1;-1:-1:-1::0;;;;;10083:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10028:107;::::0;-1:-1:-1;;;;;;10028:107:0::1;::::0;;;;;;-1:-1:-1;;;;;4548:15:1;;;10028:107:0::1;::::0;::::1;4530:34:1::0;10119:4:0::1;4580:18:1::0;;;4573:43;4465:18;;10028:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10146:4;:16:::0;;-1:-1:-1;;;;;;10146:16:0::1;-1:-1:-1::0;;;;;10146:16:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10173:12:0;;;:6:::1;:12;::::0;;;;;;;:19;;-1:-1:-1;;10173:19:0;;::::1;-1:-1:-1::0;10173:19:0;;::::1;::::0;;;10205:15:::1;:26:::0;;;;;:33;;;;::::1;::::0;;::::1;::::0;;10251:6:::1;::::0;10326:4:::1;8845:18:::0;;;:9;:18;;;;;;10146:16;;-1:-1:-1;10251:6:0;::::1;::::0;:22:::1;::::0;10281:21:::1;::::0;10251:217:::1;::::0;-1:-1:-1;;;;;;10251:217:0::1;::::0;;;;;;-1:-1:-1;;;;;4986:15:1;;;10251:217:0::1;::::0;::::1;4968:34:1::0;5018:18;;;5011:34;10385:1:0::1;5061:18:1::0;;;5054:34;;;5104:18;;;5097:34;;;5147:19;;;5140:44;10442:15:0::1;5200:19:1::0;;;5193:35;4902:19;;10251:217:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10481:11:0::1;:18:::0;;-1:-1:-1;;10481:18:0::1;10495:4;10481:18;::::0;;-1:-1:-1;;10510:21:0::1;:28:::0;;-1:-1:-1;;10510:28:0::1;10481:18;10510:28;::::0;;9957:589::o;9075:248::-;9211:10;9177:4;9199:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9199:32:0;;;;;;;;;;:41;;;9256:37;9177:4;;9199:32;;9256:37;;;;9234:6;160:25:1;;148:2;133:18;;14:177;9256:37:0;;;;;;;;-1:-1:-1;9311:4:0;9075:248;;;;;:::o;9527:422::-;-1:-1:-1;;;;;9682:19:0;;9661:4;9682:19;;;:11;:19;;;;;;;;9702:10;9682:31;;;;;;;;-1:-1:-1;;9682:52:0;9678:206;;9785:87;;;;;;;;;;;-1:-1:-1;;;9785:87:0;;;;;;;;-1:-1:-1;;;;;9785:19:0;;-1:-1:-1;9785:19:0;;;:11;:19;;;;;9805:10;9785:31;;;;;;;;;;:87;;9839:6;;9785:53;:87::i;:::-;-1:-1:-1;;;;;9751:19:0;;;;;;:11;:19;;;;;;;;9771:10;9751:31;;;;;;;:121;9678:206;9901:40;9915:6;9923:9;9934:6;9901:13;:40::i;:::-;9894:47;;9527:422;;;;;;:::o;5341:103::-;5164:7;5191:6;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;5406:30:::1;5433:1;5406:18;:30::i;:::-;5341:103::o:0;14714:135::-;5164:7;5191:6;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;-1:-1:-1;;14768:10:0::1;:30:::0;;;14809:12:::1;:32:::0;14714:135::o;15152:203::-;5164:7;5191:6;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;15249:21:::1;15289:10;15281:66;15343:3;15311:28;15323:16:::0;15249:21;15311:28:::1;:::i;:::-;15310:36;;;;:::i;:::-;15281:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15218:137;15152:203:::0;:::o;14857:287::-;14969:12;5191:6;;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;15031:4:::1;-1:-1:-1::0;;;;;15007:29:0;::::1;::::0;14999:70:::1;;;::::0;-1:-1:-1;;;14999:70:0;;6279:2:1;14999:70:0::1;::::0;::::1;6261:21:1::0;6318:2;6298:18;;;6291:30;6357;6337:18;;;6330:58;6405:18;;14999:70:0::1;6077:352:1::0;14999:70:0::1;15087:49;::::0;-1:-1:-1;;;15087:49:0;;15117:10:::1;15087:49;::::0;::::1;6608:51:1::0;6675:18;;;6668:34;;;-1:-1:-1;;;;;15087:29:0;::::1;::::0;::::1;::::0;6581:18:1;;15087:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14137:569::-:0;5164:7;5191:6;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;14325:12:::1;:28:::0;;;14364:10:::1;:29:::0;;;14404:12:::1;:30:::0;;;14458:46:::1;14377:16:::0;14458:30:::1;14340:13:::0;14419:15;14458:16:::1;:30::i;:::-;:34:::0;::::1;:46::i;:::-;14447:8;:57:::0;;;14535:23:::1;::::0;14546:12;;14535:23:::1;:::i;:::-;14515:17;:43:::0;14591:8:::1;::::0;14603:3:::1;-1:-1:-1::0;14591:15:0;::::1;::::0;:43:::1;;;14631:3;14610:17;;:24;;14591:43;14569:129;;;::::0;-1:-1:-1;;;14569:129:0;;7327:2:1;14569:129:0::1;::::0;::::1;7309:21:1::0;7366:2;7346:18;;;7339:30;7405:34;7385:18;;;7378:62;-1:-1:-1;;;7456:18:1;;;7449:34;7500:19;;14569:129:0::1;7125:400:1::0;14569:129:0::1;14137:569:::0;;;;:::o;9331:188::-;9438:4;9467:44;9481:10;9493:9;9504:6;9467:13;:44::i;5452:238::-;5164:7;5191:6;-1:-1:-1;;;;;5191:6:0;4719:10;5253:23;5245:68;;;;-1:-1:-1;;;5245:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5555:22:0;::::1;5533:110;;;::::0;-1:-1:-1;;;5533:110:0;;7732:2:1;5533:110:0::1;::::0;::::1;7714:21:1::0;7771:2;7751:18;;;7744:30;7810:34;7790:18;;;7783:62;-1:-1:-1;;;7861:18:1;;;7854:36;7907:19;;5533:110:0::1;7530:402:1::0;5533:110:0::1;5654:28;5673:8;5654:18;:28::i;:::-;5452:238:::0;:::o;1999:240::-;2119:7;2180:12;2172:6;;;;2164:29;;;;-1:-1:-1;;;2164:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2215:5:0;;;1999:240::o;10554:1097::-;10701:16;;10680:4;;10701:16;;10697:97;;;10741:41;10756:6;10764:9;10775:6;10741:14;:41::i;:::-;10734:48;;;;10697:97;-1:-1:-1;;;;;10811:19:0;;;;;;:11;:19;;;;;;;;10806:97;;10855:11;;;;10847:44;;;;-1:-1:-1;;;10847:44:0;;8139:2:1;10847:44:0;;;8121:21:1;8178:2;8158:18;;;8151:30;-1:-1:-1;;;8197:18:1;;;8190:50;8257:18;;10847:44:0;7937:344:1;10847:44:0;10947:12;;10937:6;:22;;:66;;;-1:-1:-1;;;;;;10980:23:0;;;;;;:15;:23;;;;;;;;10937:66;:102;;;-1:-1:-1;11025:14:0;;;;11024:15;10937:102;10915:169;;;;-1:-1:-1;;;10915:169:0;;8488:2:1;10915:169:0;;;8470:21:1;8527:2;8507:18;;;8500:30;-1:-1:-1;;;8546:18:1;;;8539:47;8603:18;;10915:169:0;8286:341:1;10915:169:0;-1:-1:-1;;;;;11101:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;11123:16:0;;;;11122:17;11101:38;:63;;;;-1:-1:-1;11143:21:0;;;;;;;11101:63;11097:106;;;11181:10;:8;:10::i;:::-;-1:-1:-1;;;;;11220:26:0;;;;;;:15;:26;;;;;;;;11219:27;:45;;;;-1:-1:-1;11250:14:0;;;;11219:45;11215:207;;;11343:10;;-1:-1:-1;;;;;11307:20:0;;;;;;:9;:20;;;;;;:32;;11332:6;11307:24;:32::i;:::-;:46;;11281:129;;;;-1:-1:-1;;;11281:129:0;;8834:2:1;11281:129:0;;;8816:21:1;8873:2;8853:18;;;8846:30;-1:-1:-1;;;8892:18:1;;;8885:51;8953:18;;11281:129:0;8632:345:1;11281:129:0;11434:19;11456:34;11464:6;11472:9;11483:6;11456:7;:34::i;:::-;-1:-1:-1;;;;;11524:20:0;;;;;;:9;:20;;;;;;11434:56;;-1:-1:-1;11524:37:0;;11434:56;11524:24;:37::i;:::-;-1:-1:-1;;;;;11501:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11579:40;;;;;;;;;;11607:11;160:25:1;;148:2;133:18;;14:177;11579:40:0;;;;;;;;-1:-1:-1;11639:4:0;;10554:1097;-1:-1:-1;;;;10554:1097:0:o;5698:191::-;5772:16;5791:6;;-1:-1:-1;;;;;5808:17:0;;;-1:-1:-1;;;;;;5808:17:0;;;;;;5841:40;;5791:6;;;;;;;5841:40;;5772:16;5841:40;5761:128;5698:191;:::o;1469:98::-;1527:7;1554:5;1558:1;1554;:5;:::i;11659:401::-;11823:90;;;;;;;;;;;-1:-1:-1;;;11823:90:0;;;;;;;;-1:-1:-1;;;;;11823:17:0;;11786:4;11823:17;;;:9;:17;;;;;;;:90;;11859:6;;11823:21;:90::i;:::-;-1:-1:-1;;;;;11803:17:0;;;;;;;:9;:17;;;;;;:110;;;;11947:20;;;;;;;:32;;11972:6;11947:24;:32::i;:::-;-1:-1:-1;;;;;11924:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11995:35;;;;;;;;;;12023:6;160:25:1;;148:2;133:18;;14:177;11995:35:0;;;;;;;;-1:-1:-1;12048:4:0;11659:401;;;;;:::o;13391:738::-;7385:16;:23;;-1:-1:-1;;7385:23:0;7404:4;7385:23;;;13484:4:::1;7385:16:::0;13466:24;;;:9:::1;:24;::::0;;;;;13521:13:::1;::::0;:20:::1;::::0;13537:4:::1;13521:20;:::i;:::-;13505:12;:36;13501:90;;13571:13;::::0;:20:::1;::::0;13587:4:::1;13571:20;:::i;:::-;13556:35;;13501:90;13624:13;;13608:12;:29;13604:407;;13678:16;::::0;;13692:1:::1;13678:16:::0;;;;;::::1;::::0;;13654:21:::1;::::0;13678:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13678:16:0::1;13654:40;;13727:4;13709;13714:1;13709:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13709:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13757:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13757:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13709:7;;13757:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13747:4;13752:1;13747:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13747:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13787:6:::1;::::0;:212:::1;::::0;-1:-1:-1;;;13787:212:0;;:6;::::1;::::0;:57:::1;::::0;:212:::1;::::0;13863:12;;13787:6:::1;::::0;13914:4;;13945::::1;::::0;13969:15:::1;::::0;13787:212:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13639:372;13604:407;14085:15;::::0;14077:44:::1;::::0;14043:21:::1;::::0;-1:-1:-1;;;;;14085:15:0::1;::::0;14077:44;::::1;;;::::0;14043:21;;14023:17:::1;14077:44:::0;14023:17;14077:44;14043:21;14085:15;14077:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7431:16:0;:24;;-1:-1:-1;;7431:24:0;;;-1:-1:-1;13391:738:0:o;12068:1315::-;-1:-1:-1;;;;;12220:19:0;;12188:7;12220:19;;;:11;:19;;;;;;12188:7;;12220:19;;12219:20;:47;;;;-1:-1:-1;;;;;;12244:22:0;;;;;;:11;:22;;;;;;;;12243:23;12219:47;12208:58;;12277:17;12313:3;12309:719;;;-1:-1:-1;;;;;12379:17:0;;12333:21;12379:17;;;:6;:17;;;;;;;;:32;;;;-1:-1:-1;12400:11:0;;;;;;;12379:32;12375:106;;;-1:-1:-1;12448:17:0;;12375:106;-1:-1:-1;;;;;12499:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;12517:10:0;;;;12499:28;12495:93;;;-1:-1:-1;12564:8:0;;12495:93;-1:-1:-1;;;;;12607:14:0;;;;;;:6;:14;;;;;;;;12606:15;:37;;;;-1:-1:-1;;;;;;12626:17:0;;;;;;:6;:17;;;;;;;;12625:18;12606:37;12602:240;;;12668:15;;;;;;;12664:163;;;-1:-1:-1;12724:17:0;;12664:163;;;-1:-1:-1;12806:1:0;12664:163;12870:35;12900:4;12870:25;:6;12881:13;12870:10;:25::i;:::-;:29;;:35::i;:::-;12858:47;;12318:599;12309:719;;;12952:15;;-1:-1:-1;;;;;12952:15:0;;;12942:25;;;;12938:79;;12995:6;12988:13;;;;;;12938:79;13060:90;;;;;;;;;;;-1:-1:-1;;;13060:90:0;;;;;;;;-1:-1:-1;;;;;13060:17:0;;-1:-1:-1;13060:17:0;;;:9;:17;;;;;;;;:90;;13096:6;;13060:21;:90::i;:::-;-1:-1:-1;;;;;13040:17:0;;;;;;:9;:17;;;;;:110;13167:13;;13163:174;;13242:4;13224:24;;;;:9;:24;;;;;;:39;;13253:9;13224:28;:39::i;:::-;13215:4;13197:24;;;;:9;:24;;;;;;;:66;;;;13283:42;;-1:-1:-1;;;;;13283:42:0;;;;;;;13315:9;160:25:1;;148:2;133:18;;14:177;13283:42:0;;;;;;;;13163:174;13354:21;:6;13365:9;13354:10;:21::i;:::-;13347:28;12068:1315;-1:-1:-1;;;;;;12068:1315:0:o;1681:98::-;1739:7;1766:5;1770:1;1766;:5;:::i;1787:98::-;1845:7;1872:5;1876:1;1872;:5;:::i;1575:98::-;1633:7;1660:5;1664:1;1660;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:385::-;2778:6;2786;2794;2802;2855:3;2843:9;2834:7;2830:23;2826:33;2823:53;;;2872:1;2869;2862:12;2823:53;-1:-1:-1;;2895:23:1;;;2965:2;2950:18;;2937:32;;-1:-1:-1;3016:2:1;3001:18;;2988:32;;3067:2;3052:18;3039:32;;-1:-1:-1;2692:385:1;-1:-1:-1;2692:385:1:o;3082:388::-;3150:6;3158;3211:2;3199:9;3190:7;3186:23;3182:32;3179:52;;;3227:1;3224;3217:12;3179:52;3266:9;3253:23;3285:31;3310:5;3285:31;:::i;:::-;3335:5;-1:-1:-1;3392:2:1;3377:18;;3364:32;3405:33;3364:32;3405:33;:::i;:::-;3457:7;3447:17;;;3082:388;;;;;:::o;3701:356::-;3903:2;3885:21;;;3922:18;;;3915:30;3981:34;3976:2;3961:18;;3954:62;4048:2;4033:18;;3701:356::o;4062:251::-;4132:6;4185:2;4173:9;4164:7;4160:23;4156:32;4153:52;;;4201:1;4198;4191:12;4153:52;4233:9;4227:16;4252:31;4277:5;4252:31;:::i;5239:306::-;5327:6;5335;5343;5396:2;5384:9;5375:7;5371:23;5367:32;5364:52;;;5412:1;5409;5402:12;5364:52;5441:9;5435:16;5425:26;;5491:2;5480:9;5476:18;5470:25;5460:35;;5535:2;5524:9;5520:18;5514:25;5504:35;;5239:306;;;;;:::o;5550:127::-;5611:10;5606:3;5602:20;5599:1;5592:31;5642:4;5639:1;5632:15;5666:4;5663:1;5656:15;5682:168;5755:9;;;5786;;5803:15;;;5797:22;;5783:37;5773:71;;5824:18;;:::i;5855:217::-;5895:1;5921;5911:132;;5965:10;5960:3;5956:20;5953:1;5946:31;6000:4;5997:1;5990:15;6028:4;6025:1;6018:15;5911:132;-1:-1:-1;6057:9:1;;5855:217::o;6713:277::-;6780:6;6833:2;6821:9;6812:7;6808:23;6804:32;6801:52;;;6849:1;6846;6839:12;6801:52;6881:9;6875:16;6934:5;6927:13;6920:21;6913:5;6910:32;6900:60;;6956:1;6953;6946:12;6995:125;7060:9;;;7081:10;;;7078:36;;;7094:18;;:::i;9114:127::-;9175:10;9170:3;9166:20;9163:1;9156:31;9206:4;9203:1;9196:15;9230:4;9227:1;9220:15;9246:980;9508:4;9556:3;9545:9;9541:19;9587:6;9576:9;9569:25;9613:2;9651:6;9646:2;9635:9;9631:18;9624:34;9694:3;9689:2;9678:9;9674:18;9667:31;9718:6;9753;9747:13;9784:6;9776;9769:22;9822:3;9811:9;9807:19;9800:26;;9861:2;9853:6;9849:15;9835:29;;9882:1;9892:195;9906:6;9903:1;9900:13;9892:195;;;9971:13;;-1:-1:-1;;;;;9967:39:1;9955:52;;10062:15;;;;10027:12;;;;10003:1;9921:9;9892:195;;;-1:-1:-1;;;;;;;10143:32:1;;;;10138:2;10123:18;;10116:60;-1:-1:-1;;;10207:3:1;10192:19;10185:35;10104:3;9246:980;-1:-1:-1;;;9246:980:1:o;10231:128::-;10298:9;;;10319:11;;;10316:37;;;10333:18;;:::i
Swarm Source
ipfs://a73225a4765d2af0790819f69eb7c27ee99eaeabe00a4533b31f53b06563dc87
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.