Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 PIZZA
Holders
53
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.211033791038967534 PIZZAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PIZZA
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-30 */ // SPDX-License-Identifier: None /* Amamus pizzam, et pizza pars nostri est. *-* (this is in Latin) Narrative: Simply born out of love for pizza - we love pizza so much! So if you love pizza as well, grab a slice, hold it tight and vibe with us! :) Telegram: https://www.t.me/degenpizza Website: https://www.degenpizza.com Twitter: https://www.x.com/degenpizzaslice Tax: A dynamic tax system that ranges between 0.25 % and 4.00 %, and adapts on its own. If there is a high volume of sales and the price of pizza decreases, the tax increases. If there is a high volume of purchases and the price of pizza increases, the tax decreases. Set slippage to at least 5.00 % when using a decentralized exchange to smoothly swap pizza. Alternatively, refer to the currentTax() function for more details about the current tax. Max Wallet and Max Tx: 2.00 % of the total Supply until supply shock is reached, then both max Wallet and max Tx limits will be lifted forever. Total Supply: 100000000 (100 million Pizzas) This contract was created by NodeReverend.eth - all rights reserved. Terms and conditions apply - refer to the website for more details. */ pragma solidity 0.8.23; // Interface for the standard ERC20 token functionality. interface IERC20 { // Event emitted when tokens are transferred. event Transfer(address indexed from, address indexed to, uint256 value); // Event emitted when an approval is granted to spend tokens. event Approval(address indexed owner, address indexed spender, uint256 value); // Returns the total supply of tokens. function totalSupply() external view returns (uint256); // Returns the balance of tokens for a specific account. function balanceOf(address account) external view returns (uint256); // Transfers tokens to a specified address. function transfer(address to, uint256 value) external returns (bool); // Returns the remaining number of tokens that a spender is allowed to spend. function allowance(address owner, address spender) external view returns (uint256); // Sets a specific amount of tokens for a spender to use. function approve(address spender, uint256 value) external returns (bool); // Transfers tokens on behalf of an owner to a specified address. function transferFrom(address from, address to, uint256 value) external returns (bool); } // Interface for ERC20 token metadata. interface IERC20Metadata is IERC20 { // Returns the name of the token. function name() external view returns (string memory); // Returns the symbol of the token. function symbol() external view returns (string memory); // Returns the number of decimals the token uses. function decimals() external view returns (uint8); } // Interface for ERC20 token-specific errors. interface IERC20Errors { // Error for insufficient allowance. error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed); // Error for insufficient balance. error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed); // Error for invalid receiver. error ERC20InvalidReceiver(address receiver); // Error for invalid approver. error ERC20InvalidApprover(address approver); // Error for invalid spender. error ERC20InvalidSpender(address spender); // Error for invalid sender. error ERC20InvalidSender(address sender); // Error for exceeding maximum wallet limit. error ERC20MaxWallet(); // Error for exceeding maximum transaction amount. error ERC20MaxTx(); } // Interface for a decentralized exchange router. interface IDRouter { // Returns the address of the wrapped ETH. function WETH() external pure returns (address); // Returns the address of the factory contract. function factory() external pure returns (address); // Executes a swap of tokens for ETH, supporting tokens with fees on transfer. function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } // Interface for a decentralized exchange factory. interface IDFactory { // Creates a liquidity pair for two tokens. function createPair(address tokenA, address tokenB) external returns (address pair); } // Abstract contract that provides context for inheriting contracts. abstract contract Context { // Returns the address of the sender of the current message/call. function _msgSender() internal view virtual returns (address) { return msg.sender; } } // Abstract contract for ownership management of a contract. abstract contract Ownable is Context { address private _owner; // Stores the owner's address. // Error for unauthorized access attempts by non-owner accounts. error OwnableUnauthorizedAccount(address account); // Error for invalid owner during ownership transfer. error OwnableInvalidOwner(address owner); // Event emitted when ownership is transferred. event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // Constructor to set the initial owner of the contract. constructor() { address initialOwner = _msgSender(); _transferOwnership(initialOwner); } // Modifier to restrict function access to the owner only. modifier onlyOwner() { _checkOwner(); _; } // Returns the address of the current owner. function owner() public view returns (address) { return _owner; } // Checks if the message sender is the owner of the contract. function _checkOwner() internal view { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } // Private function to transfer ownership to a new owner. function _transferOwnership(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } // Internal function for the owner to renounce ownership, transferring it to the zero address. function renounceOwnership() external onlyOwner { _transferOwnership(address(0)); } } // A slice of freshly baked, non-vegan, non-keto, very unhealthy, and highly addictive DEGENPIZZA on ethereum will get baked now :) contract PIZZA is IERC20Metadata, IERC20Errors, Ownable { // ------------------------------- // Token Metadata and Constants // ------------------------------- // Total supply of the token. uint256 private constant _totalSupply = 100000000 * 10 ** 18; // Threshold amount for certain token operations. uint256 private constant _threshold = 500000 * 10 ** 18; // Maximum token amount allowed in a single wallet. uint256 private constant _maxWallet = 2000000 * 10 ** 18; // Maximum token amount allowed in a single transaction. uint256 private constant _maxTxAmount = 2000000 * 10 ** 18; // Counter for the number of transfers made. uint256 private _transfers = 0; // ------------------------------- // External Integrations // ------------------------------- // Decentralized exchange router for token swaps. IDRouter public immutable uniRouter; // Address of the token pair on the decentralized exchange. address public immutable uniPair; // Path array used for token swaps. address[] private _path = new address[](2); // ------------------------------- // Tracking Variables // ------------------------------- // Flag to indicate if token swap is active. bool private _swapActive = false; // Flag to indicate if certain token features are free of restrictions. bool private _free = false; // ------------------------------- // Address-Based States // ------------------------------- // Address associated with the one and only pizza. address private immutable _pizza; // Address of the token deployer. address public immutable deployer; // Mapping to track the balance of each account. mapping(address => uint256) private _balances; // Mapping to track allowances given to spenders by token owners. mapping(address => mapping(address => uint256)) private _allowances; // ------------------------------- // Constructor // ------------------------------- // Constructor sets up the token by initializing the DEX router, creating a DEX pair, // setting up the swap path, assigning the total supply to the deployer, and renouncing ownership. constructor() { uniRouter = IDRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Initialize DEX router with a specific address. uniPair = IDFactory(uniRouter.factory()).createPair(address(this),uniRouter.WETH()); // Create a DEX pair for pizza and WETH. _path[1] = uniRouter.WETH(); // Set up path for swapping pizza tokens to WETH. _path[0] = address(this); // Include token's own address in the swap path. deployer = _msgSender(); // Assign the contract deployer's address. _pizza = 0xE8268789Ac332bA36A7AD4C081e80Ec576b0f995; // Assign the contract pizza's address. _balances[deployer] = _totalSupply; // Assign the entire token supply to the deployer. emit Transfer(address(0), deployer, _totalSupply); // Emit a transfer event from address 0 to deployer. } // ------------------------------- // Modifiers // ------------------------------- // Modifier to manage the state of swap activity. // Ensures that certain functions are executed only during the active swap process. modifier swapping() { _swapActive = true; // Enable swap state. _; // Execute the function body. _swapActive = false; // Disable swap state after function execution. } // ------------------------------- // ERC20 Standard Functions // ------------------------------- // Returns the name of the token. function name() external pure override returns (string memory) { return "A slice of freshly baked, non-vegan, non-keto, very unhealthy, and highly addictive DEGENPIZZA on ethereum."; } // Returns the symbol of the token. function symbol() external pure override returns (string memory) { return "PIZZA"; } // Returns the narrative of the token. function narrative() external pure returns (string memory) { return "This cryptocurrency was created out of love for pizza. We love pizza so much!"; } // Returns the current tax for trades. function currentTax() external view returns (string memory) { uint256 uniPairBalance = _balances[uniPair]; uint256 totalSupply_ = _totalSupply; if (uniPairBalance <= totalSupply_ / 100) { // 1 % - 0.25 % return "0.25 % - set slippage to at least 1.00 %"; } else if (uniPairBalance <= totalSupply_ / 50) { // 2 % - 0.50 % return "0.50 % - set slippage to at least 1.25 %"; } else if (uniPairBalance <= totalSupply_ / 20) { // 5 % ~ 0.75 % return "~ 0.75 % - set slippage to at least 1.50 %"; } else if (uniPairBalance <= totalSupply_ / 10) { // 10 % - 1.00 % return "1.00 % - set slippage to at least 1.75 %" ; } else if (uniPairBalance <= totalSupply_ / 4) { // 25 % - 2.00 % return "2.00 % - set slippage to at least 2.75 %"; } else if (uniPairBalance <= totalSupply_ / 2) { // 50 % ~ 3.00 % return "3.00 % - set slippage to at least 3.75 %"; } else { return "4.00 % - set slippage to at least 4.75 %"; } } // Returns the number of decimal places for the token. function decimals() external pure override returns (uint8) { return 18; } // Returns the total supply of tokens. function totalSupply() external pure override returns (uint256) { return _totalSupply; } // Returns the balance of a specific account. function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } // Transfers a given amount of tokens to a specified address. function transfer(address to, uint256 value) external override returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } // Approves a spender to spend a specified amount of tokens on behalf of the owner. function approve(address spender, uint256 value) external override returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } // Transfers tokens from one address to another, given approval. function transferFrom(address from, address to, uint256 value) external override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } // Returns the amount of tokens that a spender is allowed to spend on behalf of an owner. function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } // ------------------------------- // Internal Utility Functions // ------------------------------- // Private function to transfer tokens, including checks for balances and taxes. function _transfer(address from, address to, uint256 amount) private { uint256 fromBalance = _balances[from]; if (fromBalance < amount) { revert ERC20InsufficientBalance(from, fromBalance, amount); } if (!_free) { if (from != address(uniRouter) && from != uniPair && from != deployer && from != address(0)) { if (amount > _maxTxAmount) { revert ERC20MaxTx(); } } if (to != address(uniRouter) && to != uniPair && to != deployer && to != address(0)) { if (_balances[to] + amount > _maxWallet) { revert ERC20MaxWallet(); } } if (from != deployer && _balances[uniPair] < _totalSupply / 25) { _free = true; } } if (to == uniPair && from != address(uniRouter) && from != address(deployer)) { uint256 contractTokenBalance = _balances[_path[0]]; if (!_swapActive && contractTokenBalance > _threshold) { _swapForETH(_threshold); } } uint256 tax = 0; if (!(from == deployer || to == deployer || _free)) { uint256 uniPairBalance = _balances[uniPair]; uint256 totalSupply_ = _totalSupply; if (uniPairBalance <= totalSupply_ / 100) { // 1 % - 0.25 % tax = amount / 400; } else if (uniPairBalance <= totalSupply_ / 50) { // 2 % - 0.50 % tax = amount / 200; } else if (uniPairBalance <= totalSupply_ / 20) { // 5 % ~ 0.75 % tax = amount / 135; } else if (uniPairBalance <= totalSupply_ / 10) { // 10 % - 1.00 % tax = amount / 100; } else if (uniPairBalance <= totalSupply_ / 4) { // 25 % - 2.00 % tax = amount / 50; } else if (uniPairBalance <= totalSupply_ / 2) { // 50 % ~ 3.00 % tax = amount / 35; } else { tax = amount / 25; // else 4.00 % } } uint256 netAmount = amount - tax; unchecked { _balances[from] = fromBalance - amount; _balances[to] += netAmount; if (tax > 0) { _balances[address(this)] += tax; } } emit Transfer(from, to, netAmount); if (tax > 0) { emit Transfer(from, address(this), tax); } } // Private function to swap tokens for ETH using a decentralized exchange router. function _swapForETH(uint value) private swapping { _approve(_path[0], address(uniRouter), value); uniRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(value, 0, _path, _pizza, block.timestamp); } // Private function to approve a spender to spend a certain value of tokens. function _approve(address owner, address spender, uint256 value) private { _approve(owner, spender, value, true); } // Overloaded private function to approve a spender to spend tokens, with an option to emit an Approval event. function _approve(address owner, address spender, uint256 value, bool emitEvent) private { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } // Private function to spend an allowance with checks and updates the spender's remaining allowance. function _spendAllowance(address owner, address spender, uint256 value) private { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance(spender, currentAllowance, value); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ERC20MaxTx","type":"error"},{"inputs":[],"name":"ERC20MaxWallet","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":[{"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":"value","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":"currentTax","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deployer","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":"narrative","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IDRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101006040525f600155600267ffffffffffffffff811115620000275762000026620006a2565b5b604051908082528060200260200182016040528015620000565781602001602082028036833780820191505090505b50600290805190602001906200006e929190620005f9565b505f60035f6101000a81548160ff0219169083151502179055505f600360016101000a81548160ff021916908315150217905550348015620000ae575f80fd5b505f620000c06200053160201b60201c565b9050620000d3816200053860201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000168573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200018e919062000734565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021c919062000734565b6040518363ffffffff1660e01b81526004016200023b92919062000775565b6020604051808303815f875af115801562000258573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027e919062000734565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000323919062000734565b60026001815481106200033b576200033a620007a0565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503060025f81548110620003985762000397620007a0565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003ed6200053160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff168152505073e8268789ac332ba36a7ad4c081e80ec576b0f99573ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506a52b7d2dcc80cd2e400000060045f60e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060e05173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620005239190620007e7565b60405180910390a362000802565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255905f5260205f2090810192821562000672579160200282015b8281111562000671578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000618565b5b50905062000681919062000685565b5090565b5b808211156200069e575f815f90555060010162000686565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620006fe82620006d3565b9050919050565b6200071081620006f2565b81146200071b575f80fd5b50565b5f815190506200072e8162000705565b92915050565b5f602082840312156200074c576200074b620006cf565b5b5f6200075b848285016200071e565b91505092915050565b6200076f81620006f2565b82525050565b5f6040820190506200078a5f83018562000764565b62000799602083018462000764565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b620007e181620007cd565b82525050565b5f602082019050620007fc5f830184620007d6565b92915050565b60805160a05160c05160e051611f77620008ad5f395f81816106cc0152818161096a01528181610aed01528181610c0901528181610da801528181610ebb0152610f1001525f61169001525f81816103d4015281816103fe0152818161091201528181610a9501528181610c7b01528181610cfa0152610f7f01525f8181610686015281816108bb01528181610a3e01528181610d500152818161162901526116500152611f775ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c806370a0823111610095578063a0e47bf611610064578063a0e47bf61461028c578063a9059cbb146102aa578063d5f39488146102da578063dd62ed3e146102f8576100fe565b806370a0823114610216578063715018a6146102465780638da5cb5b1461025057806395d89b411461026e576100fe565b806327d54dc3116100d157806327d54dc31461019e578063313ce567146101bc57806332972e46146101da57806364a3f2cf146101f8576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806323b872dd1461016e575b5f80fd5b61010a610328565b60405161011791906117a3565b60405180910390f35b61013a60048036038101906101359190611854565b610348565b60405161014791906118ac565b60405180910390f35b61015861036a565b60405161016591906118d4565b60405180910390f35b610188600480360381019061018391906118ed565b61037c565b60405161019591906118ac565b60405180910390f35b6101a66103aa565b6040516101b391906117a3565b60405180910390f35b6101c46103ca565b6040516101d19190611958565b60405180910390f35b6101e26103d2565b6040516101ef9190611980565b60405180910390f35b6102006103f6565b60405161020d91906117a3565b60405180910390f35b610230600480360381019061022b9190611999565b6105c7565b60405161023d91906118d4565b60405180910390f35b61024e61060d565b005b610258610620565b6040516102659190611980565b60405180910390f35b610276610647565b60405161028391906117a3565b60405180910390f35b610294610684565b6040516102a19190611a1f565b60405180910390f35b6102c460048036038101906102bf9190611854565b6106a8565b6040516102d191906118ac565b60405180910390f35b6102e26106ca565b6040516102ef9190611980565b60405180910390f35b610312600480360381019061030d9190611a38565b6106ee565b60405161031f91906118d4565b60405180910390f35b60606040518060a00160405280606b8152602001611d70606b9139905090565b5f80610352610770565b905061035f818585610777565b600191505092915050565b5f6a52b7d2dcc80cd2e4000000905090565b5f80610386610770565b9050610393858285610789565b61039e85858561081b565b60019150509392505050565b60606040518060800160405280604d8152602001611ddb604d9139905090565b5f6012905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60045f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f6a52b7d2dcc80cd2e400000090506064816104759190611ad0565b821161049d57604051806060016040528060288152602001611eca60289139925050506105c4565b6032816104aa9190611ad0565b82116104d257604051806060016040528060288152602001611e5060289139925050506105c4565b6014816104df9190611ad0565b8211610507576040518060600160405280602a8152602001611e78602a9139925050506105c4565b600a816105149190611ad0565b821161053c57604051806060016040528060288152602001611e2860289139925050506105c4565b6004816105499190611ad0565b821161057157604051806060016040528060288152602001611ea260289139925050506105c4565b60028161057e9190611ad0565b82116105a657604051806060016040528060288152602001611ef260289139925050506105c4565b604051806060016040528060288152602001611f1a60289139925050505b90565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106156112b7565b61061e5f61133e565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f50495a5a41000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f806106b2610770565b90506106bf81858561081b565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61078483838360016113ff565b505050565b5f61079484846106ee565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108155781811015610806578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107fd93929190611b00565b60405180910390fd5b61081484848484035f6113ff565b5b50505050565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156108a5578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161089c93929190611b00565b60405180910390fd5b600360019054906101000a900460ff16610cf8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561096157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156109b957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156109f157505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610a3c576a01a784379d99db42000000821115610a3b576040517f50fe683800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ae457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610b3c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610b7457505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610c07576a01a784379d99db420000008260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bce9190611b35565b1115610c06576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610cd6575060196a52b7d2dcc80cd2e4000000610c769190611ad0565b60045f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b15610cf7576001600360016101000a81548160ff0219169083151502179055505b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610d9f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610df757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610eb8575f60045f60025f81548110610e1457610e13611b68565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905060035f9054906101000a900460ff16158015610e9d57506969e10de76676d080000081115b15610eb657610eb56969e10de76676d08000006115ce565b5b505b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610f5e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80610f755750600360019054906101000a900460ff165b6110ec575f60045f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f6a52b7d2dcc80cd2e40000009050606481610ff69190611ad0565b8211611011576101908561100a9190611ad0565b92506110e9565b60328161101e9190611ad0565b82116110385760c8856110319190611ad0565b92506110e8565b6014816110459190611ad0565b821161105f576087856110589190611ad0565b92506110e7565b600a8161106c9190611ad0565b82116110865760648561107f9190611ad0565b92506110e6565b6004816110939190611ad0565b82116110ad576032856110a69190611ad0565b92506110e5565b6002816110ba9190611ad0565b82116110d4576023856110cd9190611ad0565b92506110e4565b6019856110e19190611ad0565b92505b5b5b5b5b5b50505b5f81846110f99190611b95565b905083830360045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505f8211156111dc578160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161123991906118d4565b60405180910390a35f8211156112af573073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a691906118d4565b60405180910390a35b505050505050565b6112bf610770565b73ffffffffffffffffffffffffffffffffffffffff166112dd610620565b73ffffffffffffffffffffffffffffffffffffffff161461133c57611300610770565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016113339190611980565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361146f575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016114669190611980565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114df575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016114d69190611980565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156115c8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516115bf91906118d4565b60405180910390a35b50505050565b600160035f6101000a81548160ff02191690831515021790555061164e60025f815481106115ff576115fe611b68565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000083610777565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947825f60027f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b81526004016116d0959493929190611d17565b5f604051808303815f87803b1580156116e7575f80fd5b505af11580156116f9573d5f803e3d5ffd5b505050505f60035f6101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611750578082015181840152602081019050611735565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61177582611719565b61177f8185611723565b935061178f818560208601611733565b6117988161175b565b840191505092915050565b5f6020820190508181035f8301526117bb818461176b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117f0826117c7565b9050919050565b611800816117e6565b811461180a575f80fd5b50565b5f8135905061181b816117f7565b92915050565b5f819050919050565b61183381611821565b811461183d575f80fd5b50565b5f8135905061184e8161182a565b92915050565b5f806040838503121561186a576118696117c3565b5b5f6118778582860161180d565b925050602061188885828601611840565b9150509250929050565b5f8115159050919050565b6118a681611892565b82525050565b5f6020820190506118bf5f83018461189d565b92915050565b6118ce81611821565b82525050565b5f6020820190506118e75f8301846118c5565b92915050565b5f805f60608486031215611904576119036117c3565b5b5f6119118682870161180d565b93505060206119228682870161180d565b925050604061193386828701611840565b9150509250925092565b5f60ff82169050919050565b6119528161193d565b82525050565b5f60208201905061196b5f830184611949565b92915050565b61197a816117e6565b82525050565b5f6020820190506119935f830184611971565b92915050565b5f602082840312156119ae576119ad6117c3565b5b5f6119bb8482850161180d565b91505092915050565b5f819050919050565b5f6119e76119e26119dd846117c7565b6119c4565b6117c7565b9050919050565b5f6119f8826119cd565b9050919050565b5f611a09826119ee565b9050919050565b611a19816119ff565b82525050565b5f602082019050611a325f830184611a10565b92915050565b5f8060408385031215611a4e57611a4d6117c3565b5b5f611a5b8582860161180d565b9250506020611a6c8582860161180d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ada82611821565b9150611ae583611821565b925082611af557611af4611a76565b5b828204905092915050565b5f606082019050611b135f830186611971565b611b2060208301856118c5565b611b2d60408301846118c5565b949350505050565b5f611b3f82611821565b9150611b4a83611821565b9250828201905080821115611b6257611b61611aa3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b9f82611821565b9150611baa83611821565b9250828203905081811115611bc257611bc1611aa3565b5b92915050565b5f819050919050565b5f611beb611be6611be184611bc8565b6119c4565b611821565b9050919050565b611bfb81611bd1565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b611c36816117e6565b82525050565b5f611c478383611c2d565b60208301905092915050565b5f815f1c9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c8f611c8a83611c53565b611c5e565b9050919050565b5f611ca18254611c7d565b9050919050565b5f600182019050919050565b5f611cbe82611c01565b611cc88185611c0b565b9350611cd383611c1b565b805f5b83811015611d0a57611ce782611c96565b611cf18882611c3c565b9750611cfc83611ca8565b925050600181019050611cd6565b5085935050505092915050565b5f60a082019050611d2a5f8301886118c5565b611d376020830187611bf2565b8181036040830152611d498186611cb4565b9050611d586060830185611971565b611d6560808301846118c5565b969550505050505056fe4120736c696365206f662066726573686c792062616b65642c206e6f6e2d766567616e2c206e6f6e2d6b65746f2c207665727920756e6865616c7468792c20616e6420686967686c792061646469637469766520444547454e50495a5a41206f6e20657468657265756d2e546869732063727970746f63757272656e6379207761732063726561746564206f7574206f66206c6f766520666f722070697a7a612e205765206c6f76652070697a7a6120736f206d75636821312e30302025202d2073657420736c69707061676520746f206174206c6561737420312e37352025302e35302025202d2073657420736c69707061676520746f206174206c6561737420312e323520257e20302e37352025202d2073657420736c69707061676520746f206174206c6561737420312e35302025322e30302025202d2073657420736c69707061676520746f206174206c6561737420322e37352025302e32352025202d2073657420736c69707061676520746f206174206c6561737420312e30302025332e30302025202d2073657420736c69707061676520746f206174206c6561737420332e37352025342e30302025202d2073657420736c69707061676520746f206174206c6561737420342e37352025a264697066735822122005fbd8120c3c2e38bdceb07ca27d117fe54fe6153bd6b037132aa701d8b2f67f64736f6c63430008170033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100fe575f3560e01c806370a0823111610095578063a0e47bf611610064578063a0e47bf61461028c578063a9059cbb146102aa578063d5f39488146102da578063dd62ed3e146102f8576100fe565b806370a0823114610216578063715018a6146102465780638da5cb5b1461025057806395d89b411461026e576100fe565b806327d54dc3116100d157806327d54dc31461019e578063313ce567146101bc57806332972e46146101da57806364a3f2cf146101f8576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806323b872dd1461016e575b5f80fd5b61010a610328565b60405161011791906117a3565b60405180910390f35b61013a60048036038101906101359190611854565b610348565b60405161014791906118ac565b60405180910390f35b61015861036a565b60405161016591906118d4565b60405180910390f35b610188600480360381019061018391906118ed565b61037c565b60405161019591906118ac565b60405180910390f35b6101a66103aa565b6040516101b391906117a3565b60405180910390f35b6101c46103ca565b6040516101d19190611958565b60405180910390f35b6101e26103d2565b6040516101ef9190611980565b60405180910390f35b6102006103f6565b60405161020d91906117a3565b60405180910390f35b610230600480360381019061022b9190611999565b6105c7565b60405161023d91906118d4565b60405180910390f35b61024e61060d565b005b610258610620565b6040516102659190611980565b60405180910390f35b610276610647565b60405161028391906117a3565b60405180910390f35b610294610684565b6040516102a19190611a1f565b60405180910390f35b6102c460048036038101906102bf9190611854565b6106a8565b6040516102d191906118ac565b60405180910390f35b6102e26106ca565b6040516102ef9190611980565b60405180910390f35b610312600480360381019061030d9190611a38565b6106ee565b60405161031f91906118d4565b60405180910390f35b60606040518060a00160405280606b8152602001611d70606b9139905090565b5f80610352610770565b905061035f818585610777565b600191505092915050565b5f6a52b7d2dcc80cd2e4000000905090565b5f80610386610770565b9050610393858285610789565b61039e85858561081b565b60019150509392505050565b60606040518060800160405280604d8152602001611ddb604d9139905090565b5f6012905090565b7f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029481565b60605f60045f7f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f6a52b7d2dcc80cd2e400000090506064816104759190611ad0565b821161049d57604051806060016040528060288152602001611eca60289139925050506105c4565b6032816104aa9190611ad0565b82116104d257604051806060016040528060288152602001611e5060289139925050506105c4565b6014816104df9190611ad0565b8211610507576040518060600160405280602a8152602001611e78602a9139925050506105c4565b600a816105149190611ad0565b821161053c57604051806060016040528060288152602001611e2860289139925050506105c4565b6004816105499190611ad0565b821161057157604051806060016040528060288152602001611ea260289139925050506105c4565b60028161057e9190611ad0565b82116105a657604051806060016040528060288152602001611ef260289139925050506105c4565b604051806060016040528060288152602001611f1a60289139925050505b90565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106156112b7565b61061e5f61133e565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f50495a5a41000000000000000000000000000000000000000000000000000000815250905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f806106b2610770565b90506106bf81858561081b565b600191505092915050565b7f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125381565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61078483838360016113ff565b505050565b5f61079484846106ee565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108155781811015610806578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107fd93929190611b00565b60405180910390fd5b61081484848484035f6113ff565b5b50505050565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156108a5578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161089c93929190611b00565b60405180910390fd5b600360019054906101000a900460ff16610cf8577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561096157507f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156109b957507f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156109f157505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610a3c576a01a784379d99db42000000821115610a3b576040517f50fe683800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ae457507f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610b3c57507f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610b7457505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610c07576a01a784379d99db420000008260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bce9190611b35565b1115610c06576040517f018d78a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610cd6575060196a52b7d2dcc80cd2e4000000610c769190611ad0565b60045f7f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b15610cf7576001600360016101000a81548160ff0219169083151502179055505b5b7f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610d9f57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610df757507f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610eb8575f60045f60025f81548110610e1457610e13611b68565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905060035f9054906101000a900460ff16158015610e9d57506969e10de76676d080000081115b15610eb657610eb56969e10de76676d08000006115ce565b5b505b5f7f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610f5e57507f0000000000000000000000001991dc8a408c3f874da9f7d9d12f664f2198125373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80610f755750600360019054906101000a900460ff165b6110ec575f60045f7f0000000000000000000000004d7fb01728fe4a5f90948b0958de31698a47029473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f6a52b7d2dcc80cd2e40000009050606481610ff69190611ad0565b8211611011576101908561100a9190611ad0565b92506110e9565b60328161101e9190611ad0565b82116110385760c8856110319190611ad0565b92506110e8565b6014816110459190611ad0565b821161105f576087856110589190611ad0565b92506110e7565b600a8161106c9190611ad0565b82116110865760648561107f9190611ad0565b92506110e6565b6004816110939190611ad0565b82116110ad576032856110a69190611ad0565b92506110e5565b6002816110ba9190611ad0565b82116110d4576023856110cd9190611ad0565b92506110e4565b6019856110e19190611ad0565b92505b5b5b5b5b5b50505b5f81846110f99190611b95565b905083830360045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505f8211156111dc578160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161123991906118d4565b60405180910390a35f8211156112af573073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a691906118d4565b60405180910390a35b505050505050565b6112bf610770565b73ffffffffffffffffffffffffffffffffffffffff166112dd610620565b73ffffffffffffffffffffffffffffffffffffffff161461133c57611300610770565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016113339190611980565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361146f575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016114669190611980565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114df575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016114d69190611980565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156115c8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516115bf91906118d4565b60405180910390a35b50505050565b600160035f6101000a81548160ff02191690831515021790555061164e60025f815481106115ff576115fe611b68565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83610777565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947825f60027f000000000000000000000000e8268789ac332ba36a7ad4c081e80ec576b0f995426040518663ffffffff1660e01b81526004016116d0959493929190611d17565b5f604051808303815f87803b1580156116e7575f80fd5b505af11580156116f9573d5f803e3d5ffd5b505050505f60035f6101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611750578082015181840152602081019050611735565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61177582611719565b61177f8185611723565b935061178f818560208601611733565b6117988161175b565b840191505092915050565b5f6020820190508181035f8301526117bb818461176b565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117f0826117c7565b9050919050565b611800816117e6565b811461180a575f80fd5b50565b5f8135905061181b816117f7565b92915050565b5f819050919050565b61183381611821565b811461183d575f80fd5b50565b5f8135905061184e8161182a565b92915050565b5f806040838503121561186a576118696117c3565b5b5f6118778582860161180d565b925050602061188885828601611840565b9150509250929050565b5f8115159050919050565b6118a681611892565b82525050565b5f6020820190506118bf5f83018461189d565b92915050565b6118ce81611821565b82525050565b5f6020820190506118e75f8301846118c5565b92915050565b5f805f60608486031215611904576119036117c3565b5b5f6119118682870161180d565b93505060206119228682870161180d565b925050604061193386828701611840565b9150509250925092565b5f60ff82169050919050565b6119528161193d565b82525050565b5f60208201905061196b5f830184611949565b92915050565b61197a816117e6565b82525050565b5f6020820190506119935f830184611971565b92915050565b5f602082840312156119ae576119ad6117c3565b5b5f6119bb8482850161180d565b91505092915050565b5f819050919050565b5f6119e76119e26119dd846117c7565b6119c4565b6117c7565b9050919050565b5f6119f8826119cd565b9050919050565b5f611a09826119ee565b9050919050565b611a19816119ff565b82525050565b5f602082019050611a325f830184611a10565b92915050565b5f8060408385031215611a4e57611a4d6117c3565b5b5f611a5b8582860161180d565b9250506020611a6c8582860161180d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ada82611821565b9150611ae583611821565b925082611af557611af4611a76565b5b828204905092915050565b5f606082019050611b135f830186611971565b611b2060208301856118c5565b611b2d60408301846118c5565b949350505050565b5f611b3f82611821565b9150611b4a83611821565b9250828201905080821115611b6257611b61611aa3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f611b9f82611821565b9150611baa83611821565b9250828203905081811115611bc257611bc1611aa3565b5b92915050565b5f819050919050565b5f611beb611be6611be184611bc8565b6119c4565b611821565b9050919050565b611bfb81611bd1565b82525050565b5f81549050919050565b5f82825260208201905092915050565b5f819050815f5260205f209050919050565b611c36816117e6565b82525050565b5f611c478383611c2d565b60208301905092915050565b5f815f1c9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c8f611c8a83611c53565b611c5e565b9050919050565b5f611ca18254611c7d565b9050919050565b5f600182019050919050565b5f611cbe82611c01565b611cc88185611c0b565b9350611cd383611c1b565b805f5b83811015611d0a57611ce782611c96565b611cf18882611c3c565b9750611cfc83611ca8565b925050600181019050611cd6565b5085935050505092915050565b5f60a082019050611d2a5f8301886118c5565b611d376020830187611bf2565b8181036040830152611d498186611cb4565b9050611d586060830185611971565b611d6560808301846118c5565b969550505050505056fe4120736c696365206f662066726573686c792062616b65642c206e6f6e2d766567616e2c206e6f6e2d6b65746f2c207665727920756e6865616c7468792c20616e6420686967686c792061646469637469766520444547454e50495a5a41206f6e20657468657265756d2e546869732063727970746f63757272656e6379207761732063726561746564206f7574206f66206c6f766520666f722070697a7a612e205765206c6f76652070697a7a6120736f206d75636821312e30302025202d2073657420736c69707061676520746f206174206c6561737420312e37352025302e35302025202d2073657420736c69707061676520746f206174206c6561737420312e323520257e20302e37352025202d2073657420736c69707061676520746f206174206c6561737420312e35302025322e30302025202d2073657420736c69707061676520746f206174206c6561737420322e37352025302e32352025202d2073657420736c69707061676520746f206174206c6561737420312e30302025332e30302025202d2073657420736c69707061676520746f206174206c6561737420332e37352025342e30302025202d2073657420736c69707061676520746f206174206c6561737420342e37352025a264697066735822122005fbd8120c3c2e38bdceb07ca27d117fe54fe6153bd6b037132aa701d8b2f67f64736f6c63430008170033
Deployed Bytecode Sourcemap
6777:11591:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10584:198;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13136:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12497:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13407:252;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10981:164;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12358:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7810:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11197:1093;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12658:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6540:97;;;:::i;:::-;;5867:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10831:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7701:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12854:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8517:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13762:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10584:198;10632:13;10658:116;;;;;;;;;;;;;;;;;;;10584:198;:::o;13136:193::-;13212:4;13229:13;13245:12;:10;:12::i;:::-;13229:28;;13268:31;13277:5;13284:7;13293:5;13268:8;:31::i;:::-;13317:4;13310:11;;;13136:193;;;;:::o;12497:102::-;12552:7;7040:20;12572:19;;12497:102;:::o;13407:252::-;13497:4;13514:15;13532:12;:10;:12::i;:::-;13514:30;;13555:37;13571:4;13577:7;13586:5;13555:15;:37::i;:::-;13603:26;13613:4;13619:2;13623:5;13603:9;:26::i;:::-;13647:4;13640:11;;;13407:252;;;;;:::o;10981:164::-;11025:13;11051:86;;;;;;;;;;;;;;;;;;;10981:164;:::o;12358:87::-;12410:5;12435:2;12428:9;;12358:87;:::o;7810:32::-;;;:::o;11197:1093::-;11242:13;11268:22;11293:9;:18;11303:7;11293:18;;;;;;;;;;;;;;;;11268:43;;11322:20;7040;11322:35;;11405:3;11390:12;:18;;;;:::i;:::-;11372:14;:36;11368:915;;11441:49;;;;;;;;;;;;;;;;;;;;;;;11368:915;11545:2;11530:12;:17;;;;:::i;:::-;11512:14;:35;11508:775;;11580:49;;;;;;;;;;;;;;;;;;;;;;;11508:775;11684:2;11669:12;:17;;;;:::i;:::-;11651:14;:35;11647:636;;11719:51;;;;;;;;;;;;;;;;;;;;;;;11647:636;11825:2;11810:12;:17;;;;:::i;:::-;11792:14;:35;11788:495;;11861:49;;;;;;;;;;;;;;;;;;;;;;;11788:495;11966:1;11951:12;:16;;;;:::i;:::-;11933:14;:34;11929:354;;12001:49;;;;;;;;;;;;;;;;;;;;;;;11929:354;12105:1;12090:12;:16;;;;:::i;:::-;12072:14;:34;12068:215;;12140:49;;;;;;;;;;;;;;;;;;;;;;;12068:215;12222:49;;;;;;;;;;;;;;;;;;;;;11197:1093;;:::o;12658:121::-;12726:7;12753:9;:18;12763:7;12753:18;;;;;;;;;;;;;;;;12746:25;;12658:121;;;:::o;6540:97::-;5776:13;:11;:13::i;:::-;6599:30:::1;6626:1;6599:18;:30::i;:::-;6540:97::o:0;5867:79::-;5905:7;5932:6;;;;;;;;;;;5925:13;;5867:79;:::o;10831:98::-;10881:13;10907:14;;;;;;;;;;;;;;;;;;;10831:98;:::o;7701:35::-;;;:::o;12854:185::-;12926:4;12943:13;12959:12;:10;:12::i;:::-;12943:28;;12982:27;12992:5;12999:2;13003:5;12982:9;:27::i;:::-;13027:4;13020:11;;;12854:185;;;;:::o;8517:33::-;;;:::o;13762:143::-;13843:7;13870:11;:18;13882:5;13870:18;;;;;;;;;;;;;;;:27;13889:7;13870:27;;;;;;;;;;;;;;;;13863:34;;13762:143;;;;:::o;4843:98::-;4896:7;4923:10;4916:17;;4843:98;:::o;17086:129::-;17170:37;17179:5;17186:7;17195:5;17202:4;17170:8;:37::i;:::-;17086:129;;;:::o;17887:478::-;17978:24;18005:25;18015:5;18022:7;18005:9;:25::i;:::-;17978:52;;18065:17;18045:16;:37;18041:317;;18122:5;18103:16;:24;18099:132;;;18182:7;18191:16;18209:5;18155:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;18099:132;18274:57;18283:5;18290:7;18318:5;18299:16;:24;18325:5;18274:8;:57::i;:::-;18041:317;17967:398;17887:478;;;:::o;14118:2556::-;14198:19;14220:9;:15;14230:4;14220:15;;;;;;;;;;;;;;;;14198:37;;14264:6;14250:11;:20;14246:111;;;14319:4;14325:11;14338:6;14294:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;14246:111;14372:5;;;;;;;;;;;14367:627;;14414:9;14398:26;;:4;:26;;;;:45;;;;;14436:7;14428:15;;:4;:15;;;;14398:45;:65;;;;;14455:8;14447:16;;:4;:16;;;;14398:65;:87;;;;;14483:1;14467:18;;:4;:18;;;;14398:87;14394:216;;;7412:18;14510:6;:21;14506:89;;;14563:12;;;;;;;;;;;;;;14506:89;14394:216;14642:9;14628:24;;:2;:24;;;;:41;;;;;14662:7;14656:13;;:2;:13;;;;14628:41;:59;;;;;14679:8;14673:14;;:2;:14;;;;14628:59;:79;;;;;14705:1;14691:16;;:2;:16;;;;14628:79;14624:226;;;7283:18;14748:6;14732:9;:13;14742:2;14732:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:35;14728:107;;;14799:16;;;;;;;;;;;;;;14728:107;14624:226;14876:8;14868:16;;:4;:16;;;;:58;;;;;14924:2;7040:20;14909:17;;;;:::i;:::-;14888:9;:18;14898:7;14888:18;;;;;;;;;;;;;;;;:38;14868:58;14864:111;;;14955:4;14947:5;;:12;;;;;;;;;;;;;;;;;;14864:111;14367:627;15014:7;15008:13;;:2;:13;;;:43;;;;;15041:9;15025:26;;:4;:26;;;;15008:43;:72;;;;;15071:8;15055:25;;:4;:25;;;;15008:72;15004:282;;;15097:28;15128:9;:19;15138:5;15144:1;15138:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15128:19;;;;;;;;;;;;;;;;15097:50;;15167:11;;;;;;;;;;;15166:12;:49;;;;;7162:17;15182:20;:33;15166:49;15162:113;;;15236:23;7162:17;15236:11;:23::i;:::-;15162:113;15082:204;15004:282;15296:11;15336:8;15328:16;;:4;:16;;;:34;;;;15354:8;15348:14;;:2;:14;;;15328:34;:43;;;;15366:5;;;;;;;;;;;15328:43;15322:949;;15389:22;15414:9;:18;15424:7;15414:18;;;;;;;;;;;;;;;;15389:43;;15447:20;7040;15447:35;;15534:3;15519:12;:18;;;;:::i;:::-;15501:14;:36;15497:763;;15589:3;15580:6;:12;;;;:::i;:::-;15574:18;;15497:763;;;15651:2;15636:12;:17;;;;:::i;:::-;15618:14;:35;15614:646;;15705:3;15696:6;:12;;;;:::i;:::-;15690:18;;15614:646;;;15767:2;15752:12;:17;;;;:::i;:::-;15734:14;:35;15730:530;;15821:3;15812:6;:12;;;;:::i;:::-;15806:18;;15730:530;;;15883:2;15868:12;:17;;;;:::i;:::-;15850:14;:35;15846:414;;15938:3;15929:6;:12;;;;:::i;:::-;15923:18;;15846:414;;;16000:1;15985:12;:16;;;;:::i;:::-;15967:14;:34;15963:297;;16054:2;16045:6;:11;;;;:::i;:::-;16039:17;;15963:297;;;16115:1;16100:12;:16;;;;:::i;:::-;16082:14;:34;16078:182;;16169:2;16160:6;:11;;;;:::i;:::-;16154:17;;16078:182;;;16227:2;16218:6;:11;;;;:::i;:::-;16212:17;;16078:182;15963:297;15846:414;15730:530;15614:646;15497:763;15374:897;;15322:949;16281:17;16310:3;16301:6;:12;;;;:::i;:::-;16281:32;;16381:6;16367:11;:20;16349:9;:15;16359:4;16349:15;;;;;;;;;;;;;;;:38;;;;16419:9;16402;:13;16412:2;16402:13;;;;;;;;;;;;;;;;:26;;;;;;;;;;;16453:1;16447:3;:7;16443:79;;;16503:3;16475:9;:24;16493:4;16475:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;16443:79;16563:2;16548:29;;16557:4;16548:29;;;16567:9;16548:29;;;;;;:::i;:::-;;;;;;;;16598:1;16592:3;:7;16588:79;;;16644:4;16621:34;;16630:4;16621:34;;;16651:3;16621:34;;;;;;:::i;:::-;;;;;;;;16588:79;14187:2487;;;14118:2556;;;:::o;6021:158::-;6084:12;:10;:12::i;:::-;6073:23;;:7;:5;:7::i;:::-;:23;;;6069:103;;6147:12;:10;:12::i;:::-;6120:40;;;;;;;;;;;:::i;:::-;;;;;;;;6069:103;6021:158::o;6250:182::-;6315:16;6334:6;;;;;;;;;;;6315:25;;6360:8;6351:6;;:17;;;;;;;;;;;;;;;;;;6415:8;6384:40;;6405:8;6384:40;;;;;;;;;;;;6304:128;6250:182;:::o;17339:434::-;17460:1;17443:19;;:5;:19;;;17439:91;;17515:1;17486:32;;;;;;;;;;;:::i;:::-;;;;;;;;17439:91;17563:1;17544:21;;:7;:21;;;17540:92;;17617:1;17589:31;;;;;;;;;;;:::i;:::-;;;;;;;;17540:92;17672:5;17642:11;:18;17654:5;17642:18;;;;;;;;;;;;;;;:27;17661:7;17642:27;;;;;;;;;;;;;;;:35;;;;17692:9;17688:78;;;17739:7;17723:31;;17732:5;17723:31;;;17748:5;17723:31;;;;;;:::i;:::-;;;;;;;;17688:78;17339:434;;;;:::o;16769:227::-;10266:4;10252:11;;:18;;;;;;;;;;;;;;;;;;16830:45:::1;16839:5;16845:1;16839:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16857:9;16869:5;16830:8;:45::i;:::-;16886:9;:60;;;16947:5;16954:1;16957:5;16964:6;16972:15;16886:102;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10359:5:::0;10345:11;;:19;;;;;;;;;;;;;;;;;;16769:227;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:142::-;5952:9;5985:37;6016:5;5985:37;:::i;:::-;5972:50;;5886:142;;;:::o;6034:163::-;6137:53;6184:5;6137:53;:::i;:::-;6132:3;6125:66;6034:163;;:::o;6203:254::-;6312:4;6350:2;6339:9;6335:18;6327:26;;6363:87;6447:1;6436:9;6432:17;6423:6;6363:87;:::i;:::-;6203:254;;;;:::o;6463:474::-;6531:6;6539;6588:2;6576:9;6567:7;6563:23;6559:32;6556:119;;;6594:79;;:::i;:::-;6556:119;6714:1;6739:53;6784:7;6775:6;6764:9;6760:22;6739:53;:::i;:::-;6729:63;;6685:117;6841:2;6867:53;6912:7;6903:6;6892:9;6888:22;6867:53;:::i;:::-;6857:63;;6812:118;6463:474;;;;;:::o;6943:180::-;6991:77;6988:1;6981:88;7088:4;7085:1;7078:15;7112:4;7109:1;7102:15;7129:180;7177:77;7174:1;7167:88;7274:4;7271:1;7264:15;7298:4;7295:1;7288:15;7315:185;7355:1;7372:20;7390:1;7372:20;:::i;:::-;7367:25;;7406:20;7424:1;7406:20;:::i;:::-;7401:25;;7445:1;7435:35;;7450:18;;:::i;:::-;7435:35;7492:1;7489;7485:9;7480:14;;7315:185;;;;:::o;7506:442::-;7655:4;7693:2;7682:9;7678:18;7670:26;;7706:71;7774:1;7763:9;7759:17;7750:6;7706:71;:::i;:::-;7787:72;7855:2;7844:9;7840:18;7831:6;7787:72;:::i;:::-;7869;7937:2;7926:9;7922:18;7913:6;7869:72;:::i;:::-;7506:442;;;;;;:::o;7954:191::-;7994:3;8013:20;8031:1;8013:20;:::i;:::-;8008:25;;8047:20;8065:1;8047:20;:::i;:::-;8042:25;;8090:1;8087;8083:9;8076:16;;8111:3;8108:1;8105:10;8102:36;;;8118:18;;:::i;:::-;8102:36;7954:191;;;;:::o;8151:180::-;8199:77;8196:1;8189:88;8296:4;8293:1;8286:15;8320:4;8317:1;8310:15;8337:194;8377:4;8397:20;8415:1;8397:20;:::i;:::-;8392:25;;8431:20;8449:1;8431:20;:::i;:::-;8426:25;;8475:1;8472;8468:9;8460:17;;8499:1;8493:4;8490:11;8487:37;;;8504:18;;:::i;:::-;8487:37;8337:194;;;;:::o;8537:85::-;8582:7;8611:5;8600:16;;8537:85;;;:::o;8628:158::-;8686:9;8719:61;8737:42;8746:32;8772:5;8746:32;:::i;:::-;8737:42;:::i;:::-;8719:61;:::i;:::-;8706:74;;8628:158;;;:::o;8792:147::-;8887:45;8926:5;8887:45;:::i;:::-;8882:3;8875:58;8792:147;;:::o;8945:111::-;9009:6;9043:5;9037:12;9027:22;;8945:111;;;:::o;9062:184::-;9161:11;9195:6;9190:3;9183:19;9235:4;9230:3;9226:14;9211:29;;9062:184;;;;:::o;9252:156::-;9316:4;9339:3;9331:11;;9362:3;9359:1;9352:14;9396:4;9393:1;9383:18;9375:26;;9252:156;;;:::o;9414:108::-;9491:24;9509:5;9491:24;:::i;:::-;9486:3;9479:37;9414:108;;:::o;9528:179::-;9597:10;9618:46;9660:3;9652:6;9618:46;:::i;:::-;9696:4;9691:3;9687:14;9673:28;;9528:179;;;;:::o;9713:102::-;9755:8;9802:5;9799:1;9795:13;9774:34;;9713:102;;;:::o;9821:139::-;9871:7;9911:42;9904:5;9900:54;9889:65;;9821:139;;;:::o;9966:166::-;10035:5;10060:66;10091:34;10114:10;10091:34;:::i;:::-;10060:66;:::i;:::-;10051:75;;9966:166;;;:::o;10138:144::-;10193:5;10218:57;10269:4;10263:11;10218:57;:::i;:::-;10209:66;;10138:144;;;:::o;10288:110::-;10355:4;10387;10382:3;10378:14;10370:22;;10288:110;;;:::o;10434:751::-;10550:3;10579:51;10624:5;10579:51;:::i;:::-;10646:86;10725:6;10720:3;10646:86;:::i;:::-;10639:93;;10756:53;10803:5;10756:53;:::i;:::-;10832:7;10863:1;10848:312;10873:6;10870:1;10867:13;10848:312;;;10943:44;10980:6;10943:44;:::i;:::-;11007:63;11066:3;11051:13;11007:63;:::i;:::-;11000:70;;11093:57;11143:6;11093:57;:::i;:::-;11083:67;;10908:252;10895:1;10892;10888:9;10883:14;;10848:312;;;10852:14;11176:3;11169:10;;10555:630;;;10434:751;;;;:::o;11191:825::-;11451:4;11489:3;11478:9;11474:19;11466:27;;11503:71;11571:1;11560:9;11556:17;11547:6;11503:71;:::i;:::-;11584:80;11660:2;11649:9;11645:18;11636:6;11584:80;:::i;:::-;11711:9;11705:4;11701:20;11696:2;11685:9;11681:18;11674:48;11739:105;11839:4;11830:6;11739:105;:::i;:::-;11731:113;;11854:72;11922:2;11911:9;11907:18;11898:6;11854:72;:::i;:::-;11936:73;12004:3;11993:9;11989:19;11980:6;11936:73;:::i;:::-;11191:825;;;;;;;;:::o
Swarm Source
ipfs://05fbd8120c3c2e38bdceb07ca27d117fe54fe6153bd6b037132aa701d8b2f67f
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.