ERC-20
Overview
Max Total Supply
69,000,000,000 iM69
Holders
68
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
101.259 iM69Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
InvasionMars
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-11 */ // File: @openzeppelin/contracts/security/ReentrancyGuard.sol // OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/security/Pausable.sol // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol // OpenZeppelin Contracts (last updated v4.8.2) (token/ERC20/extensions/ERC20Pausable.sol) pragma solidity ^0.8.0; /** * @dev ERC20 token with pausable token transfers, minting and burning. * * Useful for scenarios such as preventing trades until the end of an evaluation * period, or having an emergency switch for freezing all token transfers in the * event of a large bug. * * IMPORTANT: This contract does not include public pause and unpause functions. In * addition to inheriting this contract, you must define both functions, invoking the * {Pausable-_pause} and {Pausable-_unpause} internal functions, with appropriate * access control, e.g. using {AccessControl} or {Ownable}. Not doing so will * make the contract unpausable. */ abstract contract ERC20Pausable is ERC20, Pausable { /** * @dev See {ERC20-_beforeTokenTransfer}. * * Requirements: * * - the contract must not be paused. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual override { super._beforeTokenTransfer(from, to, amount); require(!paused(), "ERC20Pausable: token transfer while paused"); } } // File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } // File: contracts/IM69.sol pragma solidity ^0.8.19; contract InvasionMars is ERC20, ERC20Burnable, ERC20Pausable, ReentrancyGuard { address payable public owner; address public marketingWallet; address public devWallet; uint256 public constant TOKEN_RATE = 10000; uint256 public constant INITIAL_SUPPLY = 69 * 10**9 * 10**18; uint256 public constant TAX_PERCENT = 5; uint256 public constant ANTI_WHALE_PERCENT = 1; uint256 public constant MIN_MINT_AMOUNT = 10000 * 10**18; uint256 public constant MAX_MINT_PERCENT = 1; mapping (address => bool) public isExcludedFromFee; mapping (address => uint256) public lastBalance; mapping(address => uint256) private _reflectionRewards; address[] private _holders; constructor(address _marketingWallet, address _devWallet, address[] memory airdropRecipients, uint256[] memory airdropAmounts) ERC20("InvasionMars", "iM69") { require(_marketingWallet != address(0), "Invalid marketing wallet address"); require(_devWallet != address(0), "Invalid dev wallet address"); owner = payable(msg.sender); marketingWallet = _marketingWallet; devWallet = _devWallet; // Mint the initial supply to the contract itself _mint(address(this), INITIAL_SUPPLY); // Distribute tokens to the specified airdrop recipients require(airdropRecipients.length == airdropAmounts.length, "Recipients and amounts arrays must have the same length"); for (uint256 i = 0; i < airdropRecipients.length; i++) { address recipient = airdropRecipients[i]; uint256 amount = airdropAmounts[i]; _transfer(address(this), recipient, amount); lastBalance[recipient] = balanceOf(recipient); } // Transfer any remaining tokens to the contract owner uint256 remainingTokens = balanceOf(address(this)); _transfer(address(this), owner, remainingTokens); lastBalance[owner] = balanceOf(owner); // Exclude contract owner's and marketing wallet's balance from fees isExcludedFromFee[owner] = true; isExcludedFromFee[marketingWallet] = true; // Set up the marketing wallet with initial tokens uint256 marketingTokens = 100000000 * 10**18; // 100 million tokens _transfer(owner, marketingWallet, marketingTokens); lastBalance[marketingWallet] = marketingTokens; } function _addHolder(address holder) internal { if (!_isHolder(holder)) { _holders.push(holder); } } function _isHolder(address holder) internal view returns (bool) { for (uint256 i = 0; i < _holders.length; i++) { if (_holders[i] == holder) { return true; } } return false; } function _getHoldersCount() internal view returns (uint256) { return _holders.length; } function _getHolderAt(uint256 index) internal view returns (address) { require(index < _holders.length, "Index out of bounds"); return _holders[index]; } function _distributeReflection(uint256 reflectionFee) internal { uint256 totalSupply = totalSupply(); if (totalSupply == 0) { return; } uint256 totalReflection = 0; for (uint256 i = 0; i < _getHoldersCount(); i++) { address holder = _getHolderAt(i); uint256 holderShare = reflectionFee * balanceOf(holder) / totalSupply; _reflectionRewards[holder] += holderShare; totalReflection += holderShare; } // Burn any remaining reflection rewards due to rounding errors if (totalReflection < reflectionFee) { _burn(address(this), reflectionFee - totalReflection); } } function balanceOfWithReflection(address account) public view returns (uint256) { return super.balanceOf(account) + _reflectionRewards[account]; } function balanceOf(address account) public view override returns (uint256) { return balanceOfWithReflection(account); } function _transfer(address sender, address recipient, uint256 amount) internal override { // Handle reflection rewards before calling the parent _transfer() method uint256 reflectionReward = calculateReflectionReward(recipient); _reflectionRewards[recipient] += reflectionReward; // Call the parent _transfer() method super._transfer(sender, recipient, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal override(ERC20, ERC20Pausable) { super._beforeTokenTransfer(from, to, amount); } // ... Rest of the contract code ... function mint(address to, uint256 value) public onlyOwner { require(value >= MIN_MINT_AMOUNT, "Minimum mint amount not met"); uint256 availableSupply = totalSupply() * MAX_MINT_PERCENT / 100; require(value <= availableSupply, "Mint amount exceeds maximum limit"); require(balanceOf(to) + value <= availableSupply * ANTI_WHALE_PERCENT / 100, "Transfer amount exceeds anti-whale limit"); // Mint the new tokens _mint(to, value); // Update the last balance of the recipient lastBalance[to] = balanceOf(to); } function mintRewards() public onlyOwner { uint256 rewardsAmount = calculateRewardsAmount(); _mint(devWallet, rewardsAmount); lastBalance[devWallet] = balanceOf(devWallet); } function calculateMarketingFee(uint256 amount) public pure returns (uint256) { return amount * TAX_PERCENT / 100; } function calculateReflectionFee(uint256 amount) public pure returns (uint256) { return amount * TAX_PERCENT / 100; } function calculateRewardsAmount() public view returns (uint256) { uint256 availableSupply = totalSupply() * MAX_MINT_PERCENT / 100; uint256 currentSupply = totalSupply() - balanceOf(devWallet); return availableSupply - currentSupply; } function calculateTotalFees(uint256 amount) public pure returns (uint256) { uint256 marketingFee = calculateMarketingFee(amount); uint256 reflectionFee = calculateReflectionFee(amount); return marketingFee + reflectionFee; } function calculateTransferAmount(uint256 amount) public pure returns (uint256) { uint256 fees = calculateTotalFees(amount); return amount - fees; } function calculateReflectionReward(address recipient) public view returns (uint256) { uint256 currentBalance = balanceOf(recipient); uint256 lastBalanceSnapshot = lastBalance[recipient]; uint256 reflectionReward = (currentBalance - lastBalanceSnapshot) * TAX_PERCENT / 100; return reflectionReward; } function transfer(address to, uint256 value) public override returns (bool) { uint256 transferAmount = value; uint256 marketingFee = 0; uint256 reflectionReward = 0; if (!isExcludedFromFee[_msgSender()] && !isExcludedFromFee[to]) { transferAmount = calculateTransferAmount(value); marketingFee = calculateMarketingFee(value); reflectionReward = calculateReflectionReward(to); } _transfer(_msgSender(), to, transferAmount); _addHolder(_msgSender()); _addHolder(to); if (marketingFee > 0 || reflectionReward > 0) { _transfer(to, marketingWallet, marketingFee + reflectionReward); } lastBalance[to] = balanceOf(to); return true; } function transferFrom(address from, address to, uint256 value) public override returns (bool) { uint256 transferAmount = value; uint256 marketingFee = 0; uint256 reflectionReward = 0; if (!isExcludedFromFee[from] && !isExcludedFromFee[to]) { transferAmount = calculateTransferAmount(value); marketingFee = calculateMarketingFee(value); reflectionReward = calculateReflectionReward(to); } _transfer(from, to, transferAmount); _approve(from, _msgSender(), allowance(from, _msgSender()) - value + transferAmount); if (marketingFee > 0 || reflectionReward > 0) { _transfer(to, marketingWallet, marketingFee + reflectionReward); } lastBalance[to] = balanceOf(to); return true; } function excludeFromFee(address account) public onlyOwner { isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { isExcludedFromFee[account] = false; } function setMarketingWallet(address _marketingWallet) public onlyOwner { require(_marketingWallet != address(0), "Invalid marketing wallet address"); marketingWallet = _marketingWallet; } function setDevWallet(address _devWallet) public onlyOwner { require(_devWallet != address(0), "Invalid dev wallet address"); devWallet = _devWallet; } function burn(uint256 value) public override onlyOwner { super.burn(value); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } modifier onlyOwner() { require(msg.sender == owner, "Only the contract owner can call this function"); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address[]","name":"airdropRecipients","type":"address[]"},{"internalType":"uint256[]","name":"airdropAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"ANTI_WHALE_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_MINT_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_MINT_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TAX_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN_RATE","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOfWithReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateReflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"calculateReflectionReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculateRewardsAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","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":"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":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162004fe038038062004fe0833981810160405281019062000037919062000ffa565b6040518060400160405280600c81526020017f496e766173696f6e4d61727300000000000000000000000000000000000000008152506040518060400160405280600481526020017f694d3639000000000000000000000000000000000000000000000000000000008152508160039081620000b49190620012eb565b508060049081620000c69190620012eb565b5050506000600560006101000a81548160ff0219169083151502179055506001600681905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200015e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001559062001433565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001c790620014a5565b60405180910390fd5b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002b1306bdef376571332906a880000006200067860201b60201c565b8051825114620002f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ef906200153d565b60405180910390fd5b60005b8251811015620003c85760008382815181106200031d576200031c6200155f565b5b6020026020010151905060008383815181106200033f576200033e6200155f565b5b602002602001015190506200035c308383620007e560201b60201c565b6200036d826200086b60201b60201c565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050508080620003bf90620015bd565b915050620002fb565b506000620003dc306200086b60201b60201c565b90506200041330600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683620007e560201b60201c565b62000446600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200086b60201b60201c565b600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006a52b7d2dcc80cd2e4000000905062000606600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683620007e560201b60201c565b80600b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505062001a32565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e1906200165a565b60405180910390fd5b620006fe600083836200088560201b60201c565b80600260008282546200071291906200167c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007c59190620016c8565b60405180910390a3620007e1600083836200089d60201b60201c565b5050565b6000620007f883620008a260201b60201c565b905080600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084b91906200167c565b92505081905550620008658484846200093560201b60201c565b50505050565b60006200087e8262000bc660201b60201c565b9050919050565b6200089883838362000c2c60201b60201c565b505050565b505050565b600080620008b6836200086b60201b60201c565b90506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000606460058385620009109190620016e5565b6200091c919062001720565b6200092891906200179a565b9050809350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099e9062001848565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a1090620018e0565b60405180910390fd5b62000a2c8383836200088560201b60201c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aac9062001978565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000ba59190620016c8565b60405180910390a362000bc08484846200089d60201b60201c565b50505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c198362000c9760201b60201c565b62000c2591906200167c565b9050919050565b62000c3f83838362000cdf60201b60201c565b62000c4f62000ce460201b60201c565b1562000c92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c899062001a10565b60405180910390fd5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b505050565b6000600560009054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d3c8262000d0f565b9050919050565b62000d4e8162000d2f565b811462000d5a57600080fd5b50565b60008151905062000d6e8162000d43565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000dc48262000d79565b810181811067ffffffffffffffff8211171562000de65762000de562000d8a565b5b80604052505050565b600062000dfb62000cfb565b905062000e09828262000db9565b919050565b600067ffffffffffffffff82111562000e2c5762000e2b62000d8a565b5b602082029050602081019050919050565b600080fd5b600062000e5962000e538462000e0e565b62000def565b9050808382526020820190506020840283018581111562000e7f5762000e7e62000e3d565b5b835b8181101562000eac578062000e97888262000d5d565b84526020840193505060208101905062000e81565b5050509392505050565b600082601f83011262000ece5762000ecd62000d74565b5b815162000ee084826020860162000e42565b91505092915050565b600067ffffffffffffffff82111562000f075762000f0662000d8a565b5b602082029050602081019050919050565b6000819050919050565b62000f2d8162000f18565b811462000f3957600080fd5b50565b60008151905062000f4d8162000f22565b92915050565b600062000f6a62000f648462000ee9565b62000def565b9050808382526020820190506020840283018581111562000f905762000f8f62000e3d565b5b835b8181101562000fbd578062000fa8888262000f3c565b84526020840193505060208101905062000f92565b5050509392505050565b600082601f83011262000fdf5762000fde62000d74565b5b815162000ff184826020860162000f53565b91505092915050565b6000806000806080858703121562001017576200101662000d05565b5b6000620010278782880162000d5d565b94505060206200103a8782880162000d5d565b935050604085015167ffffffffffffffff8111156200105e576200105d62000d0a565b5b6200106c8782880162000eb6565b925050606085015167ffffffffffffffff81111562001090576200108f62000d0a565b5b6200109e8782880162000fc7565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010fd57607f821691505b602082108103620011135762001112620010b5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200117d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200113e565b6200118986836200113e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620011cc620011c6620011c08462000f18565b620011a1565b62000f18565b9050919050565b6000819050919050565b620011e883620011ab565b62001200620011f782620011d3565b8484546200114b565b825550505050565b600090565b6200121762001208565b62001224818484620011dd565b505050565b5b818110156200124c57620012406000826200120d565b6001810190506200122a565b5050565b601f8211156200129b57620012658162001119565b62001270846200112e565b8101602085101562001280578190505b620012986200128f856200112e565b83018262001229565b50505b505050565b600082821c905092915050565b6000620012c060001984600802620012a0565b1980831691505092915050565b6000620012db8383620012ad565b9150826002028217905092915050565b620012f682620010aa565b67ffffffffffffffff81111562001312576200131162000d8a565b5b6200131e8254620010e4565b6200132b82828562001250565b600060209050601f8311600181146200136357600084156200134e578287015190505b6200135a8582620012cd565b865550620013ca565b601f198416620013738662001119565b60005b828110156200139d5784890151825560018201915060208501945060208101905062001376565b86831015620013bd5784890151620013b9601f891682620012ad565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f496e76616c6964206d61726b6574696e672077616c6c65742061646472657373600082015250565b60006200141b602083620013d2565b91506200142882620013e3565b602082019050919050565b600060208201905081810360008301526200144e816200140c565b9050919050565b7f496e76616c6964206465762077616c6c65742061646472657373000000000000600082015250565b60006200148d601a83620013d2565b91506200149a8262001455565b602082019050919050565b60006020820190508181036000830152620014c0816200147e565b9050919050565b7f526563697069656e747320616e6420616d6f756e747320617272617973206d7560008201527f73742068617665207468652073616d65206c656e677468000000000000000000602082015250565b600062001525603783620013d2565b91506200153282620014c7565b604082019050919050565b60006020820190508181036000830152620015588162001516565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620015ca8262000f18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620015ff57620015fe6200158e565b5b600182019050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001642601f83620013d2565b91506200164f826200160a565b602082019050919050565b60006020820190508181036000830152620016758162001633565b9050919050565b6000620016898262000f18565b9150620016968362000f18565b9250828201905080821115620016b157620016b06200158e565b5b92915050565b620016c28162000f18565b82525050565b6000602082019050620016df6000830184620016b7565b92915050565b6000620016f28262000f18565b9150620016ff8362000f18565b92508282039050818111156200171a57620017196200158e565b5b92915050565b60006200172d8262000f18565b91506200173a8362000f18565b92508282026200174a8162000f18565b915082820484148315176200176457620017636200158e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620017a78262000f18565b9150620017b48362000f18565b925082620017c757620017c66200176b565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600062001830602583620013d2565b91506200183d82620017d2565b604082019050919050565b60006020820190508181036000830152620018638162001821565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000620018c8602383620013d2565b9150620018d5826200186a565b604082019050919050565b60006020820190508181036000830152620018fb81620018b9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600062001960602683620013d2565b91506200196d8262001902565b604082019050919050565b60006020820190508181036000830152620019938162001951565b9050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000620019f8602a83620013d2565b915062001a05826200199a565b604082019050919050565b6000602082019050818103600083015262001a2b81620019e9565b9050919050565b61359e8062001a426000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80635d098b381161013b578063a9059cbb116100b8578063ea2f0b371161007c578063ea2f0b3714610709578063ee42d3a314610725578063f83c2d0d14610755578063fd17766714610773578063fd46aa191461079157610248565b8063a9059cbb1461062b578063c5c7647a1461065b578063d46968631461068b578063d56926a0146106bb578063dd62ed3e146106d957610248565b80638456cb59116100ff5780638456cb59146105975780638da5cb5b146105a15780638ea5220f146105bf57806395d89b41146105dd578063a457c2d7146105fb57610248565b80635d098b38146104e157806370a08231146104fd5780637400243c1461052d57806375f0a8741461055d57806379cc67901461057b57610248565b806339509351116101c9578063437823ec1161018d578063437823ec146104295780634bd6636d146104455780634d0adf6b146104755780635342acb4146104935780635c975abb146104c357610248565b806339509351146103995780633f4ba83a146103c957806340c10f19146103d35780634174f1a5146103ef57806342966c681461040d57610248565b8063234cb05111610210578063234cb0511461030557806323b872dd1461030f5780632ac234c01461033f5780632ff2e9dc1461035d578063313ce5671461037b57610248565b806306fdde031461024d57806307fad7ae1461026b578063095ea7b31461029b57806318160ddd146102cb5780631f53ac02146102e9575b600080fd5b6102556107c1565b60405161026291906126a7565b60405180910390f35b61028560048036038101906102809190612704565b610853565b6040516102929190612740565b60405180910390f35b6102b560048036038101906102b091906127b9565b610875565b6040516102c29190612814565b60405180910390f35b6102d3610898565b6040516102e09190612740565b60405180910390f35b61030360048036038101906102fe919061282f565b6108a2565b005b61030d6109e5565b005b6103296004803603810190610324919061285c565b610b40565b6040516103369190612814565b60405180910390f35b610347610cfe565b6040516103549190612740565b60405180910390f35b610365610d03565b6040516103729190612740565b60405180910390f35b610383610d13565b60405161039091906128cb565b60405180910390f35b6103b360048036038101906103ae91906127b9565b610d1c565b6040516103c09190612814565b60405180910390f35b6103d1610d53565b005b6103ed60048036038101906103e891906127b9565b610ded565b005b6103f7610ffa565b6040516104049190612740565b60405180910390f35b61042760048036038101906104229190612704565b611000565b005b610443600480360381019061043e919061282f565b61109c565b005b61045f600480360381019061045a919061282f565b611187565b60405161046c9190612740565b60405180910390f35b61047d61120c565b60405161048a9190612740565b60405180910390f35b6104ad60048036038101906104a8919061282f565b611211565b6040516104ba9190612814565b60405180910390f35b6104cb611231565b6040516104d89190612814565b60405180910390f35b6104fb60048036038101906104f6919061282f565b611248565b005b6105176004803603810190610512919061282f565b61138b565b6040516105249190612740565b60405180910390f35b61054760048036038101906105429190612704565b61139d565b6040516105549190612740565b60405180910390f35b6105656113cd565b60405161057291906128f5565b60405180910390f35b610595600480360381019061059091906127b9565b6113f3565b005b61059f611413565b005b6105a96114ad565b6040516105b69190612931565b60405180910390f35b6105c76114d3565b6040516105d491906128f5565b60405180910390f35b6105e56114f9565b6040516105f291906126a7565b60405180910390f35b610615600480360381019061061091906127b9565b61158b565b6040516106229190612814565b60405180910390f35b610645600480360381019061064091906127b9565b611602565b6040516106529190612814565b60405180910390f35b61067560048036038101906106709190612704565b6117ae565b6040516106829190612740565b60405180910390f35b6106a560048036038101906106a0919061282f565b6117d0565b6040516106b29190612740565b60405180910390f35b6106c361182c565b6040516106d09190612740565b60405180910390f35b6106f360048036038101906106ee919061294c565b61183a565b6040516107009190612740565b60405180910390f35b610723600480360381019061071e919061282f565b6118c1565b005b61073f600480360381019061073a919061282f565b6119ac565b60405161074c9190612740565b60405180910390f35b61075d6119c4565b60405161076a9190612740565b60405180910390f35b61077b611a3d565b6040516107889190612740565b60405180910390f35b6107ab60048036038101906107a69190612704565b611a42565b6040516107b89190612740565b60405180910390f35b6060600380546107d0906129bb565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc906129bb565b80156108495780601f1061081e57610100808354040283529160200191610849565b820191906000526020600020905b81548152906001019060200180831161082c57829003601f168201915b5050505050905090565b600060646005836108649190612a1b565b61086e9190612a8c565b9050919050565b600080610880611a64565b905061088d818585611a6c565b600191505092915050565b6000600254905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099890612b9b565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612b2f565b60405180910390fd5b6000610a7f6119c4565b9050610aad600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611c35565b610ad8600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661138b565b600b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600080829050600080600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610bed5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610c1457610bfb85611a42565b9250610c06856117ae565b9150610c1186611187565b90505b610c1f878785611d8b565b610c5787610c2b611a64565b8588610c3e8c610c39611a64565b61183a565b610c489190612bbb565b610c529190612bef565b611a6c565b6000821180610c665750600081115b15610ca457610ca386600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168385610c9e9190612bef565b611d8b565b5b610cad8661138b565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050509392505050565b600181565b6bdef376571332906a8800000081565b60006012905090565b600080610d27611a64565b9050610d48818585610d39858961183a565b610d439190612bef565b611a6c565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90612b2f565b60405180910390fd5b610deb611dff565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612b2f565b60405180910390fd5b69021e19e0c9bab2400000811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612c6f565b60405180910390fd5b600060646001610ed8610898565b610ee29190612a1b565b610eec9190612a8c565b905080821115610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2890612d01565b60405180910390fd5b6064600182610f409190612a1b565b610f4a9190612a8c565b82610f548561138b565b610f5e9190612bef565b1115610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612d93565b60405180910390fd5b610fa98383611c35565b610fb28361138b565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61271081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612b2f565b60405180910390fd5b61109981611e62565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612b2f565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000806111938361138b565b90506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006064600583856111eb9190612bbb565b6111f59190612a1b565b6111ff9190612a8c565b9050809350505050919050565b600181565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90612dff565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611396826117d0565b9050919050565b6000806113a9836117ae565b905060006113b684610853565b905080826113c49190612bef565b92505050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611405826113ff611a64565b83611e76565b61140f8282611f02565b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90612b2f565b60405180910390fd5b6114ab6120cf565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611508906129bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611534906129bb565b80156115815780601f1061155657610100808354040283529160200191611581565b820191906000526020600020905b81548152906001019060200180831161156457829003601f168201915b5050505050905090565b600080611596611a64565b905060006115a4828661183a565b9050838110156115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e090612e91565b60405180910390fd5b6115f68286868403611a6c565b60019250505092915050565b600080829050600080600a6000611617611a64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116b65750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116dd576116c485611a42565b92506116cf856117ae565b91506116da86611187565b90505b6116ef6116e8611a64565b8785611d8b565b6116ff6116fa611a64565b612132565b61170886612132565b60008211806117175750600081115b156117555761175486600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838561174f9190612bef565b611d8b565b5b61175e8661138b565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001935050505092915050565b600060646005836117bf9190612a1b565b6117c99190612a8c565b9050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461181b836121a6565b6118259190612bef565b9050919050565b69021e19e0c9bab240000081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890612b2f565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b6020528060005260406000206000915090505481565b600080606460016119d3610898565b6119dd9190612a1b565b6119e79190612a8c565b90506000611a16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661138b565b611a1e610898565b611a289190612bbb565b90508082611a369190612bbb565b9250505090565b600581565b600080611a4e8361139d565b90508083611a5c9190612bbb565b915050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad290612f23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190612fb5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c289190612740565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613021565b60405180910390fd5b611cb0600083836121ee565b8060026000828254611cc29190612bef565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d739190612740565b60405180910390a3611d87600083836121fe565b5050565b6000611d9683611187565b905080600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612bef565b92505081905550611df9848484612203565b50505050565b611e07612479565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e4b611a64565b604051611e5891906128f5565b60405180910390a1565b611e73611e6d611a64565b82611f02565b50565b6000611e82848461183a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611efc5781811015611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee59061308d565b60405180910390fd5b611efb8484848403611a6c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f689061311f565b60405180910390fd5b611f7d826000836121ee565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffa906131b1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120b69190612740565b60405180910390a36120ca836000846121fe565b505050565b6120d76124c2565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861211b611a64565b60405161212891906128f5565b60405180910390a1565b61213b8161250c565b6121a357600d819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121f98383836125ba565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990613243565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d8906132d5565b60405180910390fd5b6122ec8383836121ee565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236990613367565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124609190612740565b60405180910390a36124738484846121fe565b50505050565b612481611231565b6124c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b7906133d3565b60405180910390fd5b565b6124ca611231565b1561250a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125019061343f565b60405180910390fd5b565b600080600090505b600d805490508110156125af578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061254c5761254b61345f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361259c5760019150506125b5565b80806125a79061348e565b915050612514565b50600090505b919050565b6125c5838383612612565b6125cd611231565b1561260d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260490613548565b60405180910390fd5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612651578082015181840152602081019050612636565b60008484015250505050565b6000601f19601f8301169050919050565b600061267982612617565b6126838185612622565b9350612693818560208601612633565b61269c8161265d565b840191505092915050565b600060208201905081810360008301526126c1818461266e565b905092915050565b600080fd5b6000819050919050565b6126e1816126ce565b81146126ec57600080fd5b50565b6000813590506126fe816126d8565b92915050565b60006020828403121561271a576127196126c9565b5b6000612728848285016126ef565b91505092915050565b61273a816126ce565b82525050565b60006020820190506127556000830184612731565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127868261275b565b9050919050565b6127968161277b565b81146127a157600080fd5b50565b6000813590506127b38161278d565b92915050565b600080604083850312156127d0576127cf6126c9565b5b60006127de858286016127a4565b92505060206127ef858286016126ef565b9150509250929050565b60008115159050919050565b61280e816127f9565b82525050565b60006020820190506128296000830184612805565b92915050565b600060208284031215612845576128446126c9565b5b6000612853848285016127a4565b91505092915050565b600080600060608486031215612875576128746126c9565b5b6000612883868287016127a4565b9350506020612894868287016127a4565b92505060406128a5868287016126ef565b9150509250925092565b600060ff82169050919050565b6128c5816128af565b82525050565b60006020820190506128e060008301846128bc565b92915050565b6128ef8161277b565b82525050565b600060208201905061290a60008301846128e6565b92915050565b600061291b8261275b565b9050919050565b61292b81612910565b82525050565b60006020820190506129466000830184612922565b92915050565b60008060408385031215612963576129626126c9565b5b6000612971858286016127a4565b9250506020612982858286016127a4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129d357607f821691505b6020821081036129e6576129e561298c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a26826126ce565b9150612a31836126ce565b9250828202612a3f816126ce565b91508282048414831517612a5657612a556129ec565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a97826126ce565b9150612aa2836126ce565b925082612ab257612ab1612a5d565b5b828204905092915050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e000000000000000000000000000000000000602082015250565b6000612b19602e83612622565b9150612b2482612abd565b604082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f496e76616c6964206465762077616c6c65742061646472657373000000000000600082015250565b6000612b85601a83612622565b9150612b9082612b4f565b602082019050919050565b60006020820190508181036000830152612bb481612b78565b9050919050565b6000612bc6826126ce565b9150612bd1836126ce565b9250828203905081811115612be957612be86129ec565b5b92915050565b6000612bfa826126ce565b9150612c05836126ce565b9250828201905080821115612c1d57612c1c6129ec565b5b92915050565b7f4d696e696d756d206d696e7420616d6f756e74206e6f74206d65740000000000600082015250565b6000612c59601b83612622565b9150612c6482612c23565b602082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f4d696e7420616d6f756e742065786365656473206d6178696d756d206c696d6960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ceb602183612622565b9150612cf682612c8f565b604082019050919050565b60006020820190508181036000830152612d1a81612cde565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320616e74692d77686160008201527f6c65206c696d6974000000000000000000000000000000000000000000000000602082015250565b6000612d7d602883612622565b9150612d8882612d21565b604082019050919050565b60006020820190508181036000830152612dac81612d70565b9050919050565b7f496e76616c6964206d61726b6574696e672077616c6c65742061646472657373600082015250565b6000612de9602083612622565b9150612df482612db3565b602082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612e7b602583612622565b9150612e8682612e1f565b604082019050919050565b60006020820190508181036000830152612eaa81612e6e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f0d602483612622565b9150612f1882612eb1565b604082019050919050565b60006020820190508181036000830152612f3c81612f00565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f9f602283612622565b9150612faa82612f43565b604082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061300b601f83612622565b915061301682612fd5565b602082019050919050565b6000602082019050818103600083015261303a81612ffe565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613077601d83612622565b915061308282613041565b602082019050919050565b600060208201905081810360008301526130a68161306a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613109602183612622565b9150613114826130ad565b604082019050919050565b60006020820190508181036000830152613138816130fc565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061319b602283612622565b91506131a68261313f565b604082019050919050565b600060208201905081810360008301526131ca8161318e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061322d602583612622565b9150613238826131d1565b604082019050919050565b6000602082019050818103600083015261325c81613220565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132bf602383612622565b91506132ca82613263565b604082019050919050565b600060208201905081810360008301526132ee816132b2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613351602683612622565b915061335c826132f5565b604082019050919050565b6000602082019050818103600083015261338081613344565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006133bd601483612622565b91506133c882613387565b602082019050919050565b600060208201905081810360008301526133ec816133b0565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613429601083612622565b9150613434826133f3565b602082019050919050565b600060208201905081810360008301526134588161341c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613499826126ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134cb576134ca6129ec565b5b600182019050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000613532602a83612622565b915061353d826134d6565b604082019050919050565b6000602082019050818103600083015261356181613525565b905091905056fea26469706673582212204d286578bdeddc083f5bcdc2c5840ae963dc81db81b174de7402c87c069f1fca64736f6c6343000813003300000000000000000000000018be942604de4a717fce9f519c23eacbbc1bd078000000000000000000000000543cb0157f517c39bde98d7f2965c37621c1cef700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000003f0000000000000000000000004e9ce36e442e55ecd9025b9a6e0d88485d628a670000000000000000000000002744e8d8e4968f843ccf1221966f94b0447f74f10000000000000000000000000981caf9675d7ae9eebdbb119f9957f7e99676e70000000000000000000000000b00512723fe444fa87f6f4593fe6509defa47f30000000000000000000000000b79ce0cc7c47fa1c36bbcc59dcb7965dafb90c6000000000000000000000000101edbcc6c5b013544a89321b817b243c842010e00000000000000000000000010552477af823ec90345902a9b78d4c06b3a077200000000000000000000000011bb600c75b4ae58b0c98daa652a267ff4882653000000000000000000000000144616fbf8eed40d403d2a0a5b2ecec74afc31bc00000000000000000000000014d7b51e3d60e707cd30298a793baf15a1cd4d2400000000000000000000000015364c3eea0868d04273e50ec060105c36199dc8000000000000000000000000180555d4d45e67520adc7c0c51b512c7a50877f200000000000000000000000018be942604de4a717fce9f519c23eacbbc1bd0780000000000000000000000001a3ff8e8ee0c158b147f4c05d9cdedb7f29e730c0000000000000000000000001d7948233bc84dceafe3324de274513c824e56f80000000000000000000000001e308061b81b811d799cae32b4bc83b85def7a920000000000000000000000002000ac324d60fac113a7ffbc0f67af1d48fd393e00000000000000000000000022648c12acd87912ea1710357b1302c6a4154ebc00000000000000000000000022caf6d2cd6691fa3604a229cff64b0bfc04c93000000000000000000000000024693c83c0fee4131a76f3397e16a6a114a5fe050000000000000000000000002633cc7eaf8c2e1fd7fff1e2bff08281e30825110000000000000000000000002744e8d8e4968f843ccf1221966f94b0447f74f10000000000000000000000002ac68bae138549a173506f37df6f0f67035d54a60000000000000000000000002c5485a2e7acfefc48b2ce78b1de9326fa4013690000000000000000000000002d79ba716114dbed2c0967655d6db1066bf864580000000000000000000000002fc4d047a71f619bf63ab82449491ef44d03a3f70000000000000000000000003016a43b482d0480460f6625115bd372fe90c6bf00000000000000000000000030c960755a29b2cf1fbc92ee1b759fb30eff4967000000000000000000000000316c41e1288a8bf94b221584bb5c0189714f4fa200000000000000000000000031f5a46d1baae7f692bb835599afd6d7bc99fb5700000000000000000000000037c310c9e600c9d8ab138102c44ebb7e648afb6700000000000000000000000037f60e5fd9788152000f3660db3559a16172648d000000000000000000000000390479f269408ae51f7d73d0f9e2f654faf37f2a0000000000000000000000003d14fef0acab4f7997a9eacb682f2d90831b63e900000000000000000000000041c1b48a5a88fca1e3c3263fc480ab8c73d4252f000000000000000000000000455cd98d405432e5431a2faef1d3d14585c15700000000000000000000000000468df31ea8ddd151c2b01a6ec0b34fe3fd54a82f00000000000000000000000048e7344ecf7d1f9c4d5141f3f6b18910d3bc14100000000000000000000000004a51500fa149a20cdd4ba25a9d5329847489bb280000000000000000000000004a5b0ca237d551088fd02a1b9f80e75d1328d8f70000000000000000000000004e10bc99a87319fe5419d9bf38b8a9aa74dd69a00000000000000000000000004ef3335540a7eb986a93e0dcd5899cdb1eed013b0000000000000000000000004f435aff3510de8148fb0dfbea5a84471ac29ed40000000000000000000000004fe5b965e3bd76eff36280471030ef9b0e6e2c1d00000000000000000000000053b450e029dd0bbd8fdef460ce605f085359b562000000000000000000000000543cb0157f517c39bde98d7f2965c37621c1cef7000000000000000000000000555b6ee8fab3dfdbcca9121721c435fd4c7a1fd10000000000000000000000005634699397964581a2af56aa712ad47c19ee99d6000000000000000000000000569eea9f2af0aea55f1d4e602f1422f84221d4d700000000000000000000000057a3c0a3e63ca31464a52849ab36627b090b15aa0000000000000000000000005eeb231216d54b7942c47c145826c6874f99e5580000000000000000000000005fc9db2da13470ee43dc4003417a35c2f08d69b7000000000000000000000000613101d75b96ed8c10b8e20429a03cdd8d9e082c0000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b500000000000000000000000062707bf611e78af443997cbc5fe477d130c125800000000000000000000000006338ff5a91de80912bc639e9ffe1f28ddbf5184c00000000000000000000000064198cfc07c824e1860fd290448dc6996175770e00000000000000000000000064b192e167a1e602db4a73db37023e64b3a1752f000000000000000000000000663df699c98bd638e57015551b48c9258f0e3f0600000000000000000000000068e1d4fa7ac82894aa88536c79fccf8a2c1797730000000000000000000000006bc55f8a9c19a6e779a0411111517f138e58191d000000000000000000000000c70e75b34840c65aeeff767e31761573212d3b3d0000000000000000000000006bc55f8a9c19a6e779a0411111517f138e58191d000000000000000000000000000000000000000000000000000000000000003f00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000011387d9f99fd15060000000000000000000000000000000000000000000000000b63872f12c06a98000000000000000000000000000000000000000000000000038a727d6c585aa4000000000000000000000000000000000000000000000000004a5df734bbb01f000000000000000000000000000000000000000000000000008256167194202c000000000000000000000000000000000000000000000000001e8107fcb0084e000000000000000000000000000000000000000000000000002266fba0b12ea50000000000000000000000000000000000000000000000000000cec76f0e715200000000000000000000000000000000000000000000000000b0130e075bc4c0000000000000000000000000000000000000000000000000016c4abbebea01000000000000000000000000000000000000000000000000000012f98aca198799000000000000000000000000000000000000000000000000000dc5f2cbcad064000000000000000000000000000000000000000000000000000768d0e7d69c64000000000000000000000000000000000000000000000000000d6e32745e64e120000000000000000000000000000000000000000000000000022af9051fb7df0000000000000000000000000000000000000000000000000005b44cc8a3edd24000000000000000000000000000000000000000000000000011941125f9c7440000000000000000000000000000000000000000000000000016ccdbd89e618b0000000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000cefc80a22ea71800000000000000000000000000000000000000000000000000e44c5c47422910000000000000000000000000000000000000000000000000006cfb75e49d2480000000000000000000000000000000000000000000000000026eda3b157d802000000000000000000000000000000000000000000000000001b717e29deb4ace000000000000000000000000000000000000000000000000010472719932a6b8000000000000000000000000000000000000000000000000026fad2c54f50a10000000000000000000000000000000000000000000000000003a7a3f4cb24d600000000000000000000000000000000000000000000000000057d403c01bf47800000000000000000000000000000000000000000000000001b814fddc919b200000000000000000000000000000000000000000000000000ada55474b8134000000000000000000000000000000000000000000000000000191acdb4641b6600000000000000000000000000000000000000000000000000108ce37c7386c20000000000000000000000000000000000000000000000000004890406c0152e00000000000000000000000000000000000000000000000000627042301bc093000000000000000000000000000000000000000000000000011e9cf96fd980440000000000000000000000000000000000000000000000000011de1e6db450c000000000000000000000000000000000000000000000000000b1bdc4837fc5fbc000000000000000000000000000000000000000000000000056c7900e991d50000000000000000000000000000000000000000000000000008aa61b8f260292000000000000000000000000000000000000000000000000000f2e9cfe2db3e600000000000000000000000000000000000000000000000000796e3ea3f8ab0000000000000000000000000000000000000000000000000000f12210c4d9a68c000000000000000000000000000000000000000000000000020c938cd382229f0000000000000000000000000000000000000000000000000018308be5d33ace0000000000000000000000000000000000000000000000000110203bee369306c0000000000000000000000000000000000000000000000001792093f073ee3d00000000000000000000000000000000000000000000000000363988e957a7fb00000000000000000000000000000000000000000000000000079d69b0c20f1f000000000000000000000000000000000000000000000000003cb71f51fc5580000000000000000000000000000000000000000000000000000dd59c87e477b0000000000000000000000000000000000000000000000000000cc55449d7fa86000000000000000000000000000000000000000000000000017bf61bcf7627a90000000000000000000000000000000000000000000000000039a69cc571a525400000000000000000000000000000000000000000000000016c4abbebea0100000000000000000000000000000000000000000000000000000ca6efd872606b000000000000000000000000000000000000000000000000008290835e45e8910000000000000000000000000000000000000000000000000001158e460913d00000000000000000000000000000000000000000000000000110eeea23db7271000000000000000000000000000000000000000000000000001f711def073e90000000000000000000000000000000000000000000000000000b65aa8619ca200000000000000000000000000000000000000000000002327b99dd505733a8000000000000000000000000000000000000000000000002327b99dd505733a8000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102485760003560e01c80635d098b381161013b578063a9059cbb116100b8578063ea2f0b371161007c578063ea2f0b3714610709578063ee42d3a314610725578063f83c2d0d14610755578063fd17766714610773578063fd46aa191461079157610248565b8063a9059cbb1461062b578063c5c7647a1461065b578063d46968631461068b578063d56926a0146106bb578063dd62ed3e146106d957610248565b80638456cb59116100ff5780638456cb59146105975780638da5cb5b146105a15780638ea5220f146105bf57806395d89b41146105dd578063a457c2d7146105fb57610248565b80635d098b38146104e157806370a08231146104fd5780637400243c1461052d57806375f0a8741461055d57806379cc67901461057b57610248565b806339509351116101c9578063437823ec1161018d578063437823ec146104295780634bd6636d146104455780634d0adf6b146104755780635342acb4146104935780635c975abb146104c357610248565b806339509351146103995780633f4ba83a146103c957806340c10f19146103d35780634174f1a5146103ef57806342966c681461040d57610248565b8063234cb05111610210578063234cb0511461030557806323b872dd1461030f5780632ac234c01461033f5780632ff2e9dc1461035d578063313ce5671461037b57610248565b806306fdde031461024d57806307fad7ae1461026b578063095ea7b31461029b57806318160ddd146102cb5780631f53ac02146102e9575b600080fd5b6102556107c1565b60405161026291906126a7565b60405180910390f35b61028560048036038101906102809190612704565b610853565b6040516102929190612740565b60405180910390f35b6102b560048036038101906102b091906127b9565b610875565b6040516102c29190612814565b60405180910390f35b6102d3610898565b6040516102e09190612740565b60405180910390f35b61030360048036038101906102fe919061282f565b6108a2565b005b61030d6109e5565b005b6103296004803603810190610324919061285c565b610b40565b6040516103369190612814565b60405180910390f35b610347610cfe565b6040516103549190612740565b60405180910390f35b610365610d03565b6040516103729190612740565b60405180910390f35b610383610d13565b60405161039091906128cb565b60405180910390f35b6103b360048036038101906103ae91906127b9565b610d1c565b6040516103c09190612814565b60405180910390f35b6103d1610d53565b005b6103ed60048036038101906103e891906127b9565b610ded565b005b6103f7610ffa565b6040516104049190612740565b60405180910390f35b61042760048036038101906104229190612704565b611000565b005b610443600480360381019061043e919061282f565b61109c565b005b61045f600480360381019061045a919061282f565b611187565b60405161046c9190612740565b60405180910390f35b61047d61120c565b60405161048a9190612740565b60405180910390f35b6104ad60048036038101906104a8919061282f565b611211565b6040516104ba9190612814565b60405180910390f35b6104cb611231565b6040516104d89190612814565b60405180910390f35b6104fb60048036038101906104f6919061282f565b611248565b005b6105176004803603810190610512919061282f565b61138b565b6040516105249190612740565b60405180910390f35b61054760048036038101906105429190612704565b61139d565b6040516105549190612740565b60405180910390f35b6105656113cd565b60405161057291906128f5565b60405180910390f35b610595600480360381019061059091906127b9565b6113f3565b005b61059f611413565b005b6105a96114ad565b6040516105b69190612931565b60405180910390f35b6105c76114d3565b6040516105d491906128f5565b60405180910390f35b6105e56114f9565b6040516105f291906126a7565b60405180910390f35b610615600480360381019061061091906127b9565b61158b565b6040516106229190612814565b60405180910390f35b610645600480360381019061064091906127b9565b611602565b6040516106529190612814565b60405180910390f35b61067560048036038101906106709190612704565b6117ae565b6040516106829190612740565b60405180910390f35b6106a560048036038101906106a0919061282f565b6117d0565b6040516106b29190612740565b60405180910390f35b6106c361182c565b6040516106d09190612740565b60405180910390f35b6106f360048036038101906106ee919061294c565b61183a565b6040516107009190612740565b60405180910390f35b610723600480360381019061071e919061282f565b6118c1565b005b61073f600480360381019061073a919061282f565b6119ac565b60405161074c9190612740565b60405180910390f35b61075d6119c4565b60405161076a9190612740565b60405180910390f35b61077b611a3d565b6040516107889190612740565b60405180910390f35b6107ab60048036038101906107a69190612704565b611a42565b6040516107b89190612740565b60405180910390f35b6060600380546107d0906129bb565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc906129bb565b80156108495780601f1061081e57610100808354040283529160200191610849565b820191906000526020600020905b81548152906001019060200180831161082c57829003601f168201915b5050505050905090565b600060646005836108649190612a1b565b61086e9190612a8c565b9050919050565b600080610880611a64565b905061088d818585611a6c565b600191505092915050565b6000600254905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099890612b9b565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612b2f565b60405180910390fd5b6000610a7f6119c4565b9050610aad600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611c35565b610ad8600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661138b565b600b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600080829050600080600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610bed5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610c1457610bfb85611a42565b9250610c06856117ae565b9150610c1186611187565b90505b610c1f878785611d8b565b610c5787610c2b611a64565b8588610c3e8c610c39611a64565b61183a565b610c489190612bbb565b610c529190612bef565b611a6c565b6000821180610c665750600081115b15610ca457610ca386600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168385610c9e9190612bef565b611d8b565b5b610cad8661138b565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050509392505050565b600181565b6bdef376571332906a8800000081565b60006012905090565b600080610d27611a64565b9050610d48818585610d39858961183a565b610d439190612bef565b611a6c565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90612b2f565b60405180910390fd5b610deb611dff565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7490612b2f565b60405180910390fd5b69021e19e0c9bab2400000811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612c6f565b60405180910390fd5b600060646001610ed8610898565b610ee29190612a1b565b610eec9190612a8c565b905080821115610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2890612d01565b60405180910390fd5b6064600182610f409190612a1b565b610f4a9190612a8c565b82610f548561138b565b610f5e9190612bef565b1115610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612d93565b60405180910390fd5b610fa98383611c35565b610fb28361138b565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61271081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612b2f565b60405180910390fd5b61109981611e62565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612b2f565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000806111938361138b565b90506000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006064600583856111eb9190612bbb565b6111f59190612a1b565b6111ff9190612a8c565b9050809350505050919050565b600181565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600560009054906101000a900460ff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90612dff565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611396826117d0565b9050919050565b6000806113a9836117ae565b905060006113b684610853565b905080826113c49190612bef565b92505050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611405826113ff611a64565b83611e76565b61140f8282611f02565b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90612b2f565b60405180910390fd5b6114ab6120cf565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611508906129bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611534906129bb565b80156115815780601f1061155657610100808354040283529160200191611581565b820191906000526020600020905b81548152906001019060200180831161156457829003601f168201915b5050505050905090565b600080611596611a64565b905060006115a4828661183a565b9050838110156115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e090612e91565b60405180910390fd5b6115f68286868403611a6c565b60019250505092915050565b600080829050600080600a6000611617611a64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116b65750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116dd576116c485611a42565b92506116cf856117ae565b91506116da86611187565b90505b6116ef6116e8611a64565b8785611d8b565b6116ff6116fa611a64565b612132565b61170886612132565b60008211806117175750600081115b156117555761175486600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838561174f9190612bef565b611d8b565b5b61175e8661138b565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001935050505092915050565b600060646005836117bf9190612a1b565b6117c99190612a8c565b9050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461181b836121a6565b6118259190612bef565b9050919050565b69021e19e0c9bab240000081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890612b2f565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b6020528060005260406000206000915090505481565b600080606460016119d3610898565b6119dd9190612a1b565b6119e79190612a8c565b90506000611a16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661138b565b611a1e610898565b611a289190612bbb565b90508082611a369190612bbb565b9250505090565b600581565b600080611a4e8361139d565b90508083611a5c9190612bbb565b915050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad290612f23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190612fb5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c289190612740565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613021565b60405180910390fd5b611cb0600083836121ee565b8060026000828254611cc29190612bef565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d739190612740565b60405180910390a3611d87600083836121fe565b5050565b6000611d9683611187565b905080600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612bef565b92505081905550611df9848484612203565b50505050565b611e07612479565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e4b611a64565b604051611e5891906128f5565b60405180910390a1565b611e73611e6d611a64565b82611f02565b50565b6000611e82848461183a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611efc5781811015611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee59061308d565b60405180910390fd5b611efb8484848403611a6c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f689061311f565b60405180910390fd5b611f7d826000836121ee565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffa906131b1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120b69190612740565b60405180910390a36120ca836000846121fe565b505050565b6120d76124c2565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861211b611a64565b60405161212891906128f5565b60405180910390a1565b61213b8161250c565b6121a357600d819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121f98383836125ba565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226990613243565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d8906132d5565b60405180910390fd5b6122ec8383836121ee565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236990613367565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124609190612740565b60405180910390a36124738484846121fe565b50505050565b612481611231565b6124c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b7906133d3565b60405180910390fd5b565b6124ca611231565b1561250a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125019061343f565b60405180910390fd5b565b600080600090505b600d805490508110156125af578273ffffffffffffffffffffffffffffffffffffffff16600d828154811061254c5761254b61345f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361259c5760019150506125b5565b80806125a79061348e565b915050612514565b50600090505b919050565b6125c5838383612612565b6125cd611231565b1561260d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260490613548565b60405180910390fd5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612651578082015181840152602081019050612636565b60008484015250505050565b6000601f19601f8301169050919050565b600061267982612617565b6126838185612622565b9350612693818560208601612633565b61269c8161265d565b840191505092915050565b600060208201905081810360008301526126c1818461266e565b905092915050565b600080fd5b6000819050919050565b6126e1816126ce565b81146126ec57600080fd5b50565b6000813590506126fe816126d8565b92915050565b60006020828403121561271a576127196126c9565b5b6000612728848285016126ef565b91505092915050565b61273a816126ce565b82525050565b60006020820190506127556000830184612731565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127868261275b565b9050919050565b6127968161277b565b81146127a157600080fd5b50565b6000813590506127b38161278d565b92915050565b600080604083850312156127d0576127cf6126c9565b5b60006127de858286016127a4565b92505060206127ef858286016126ef565b9150509250929050565b60008115159050919050565b61280e816127f9565b82525050565b60006020820190506128296000830184612805565b92915050565b600060208284031215612845576128446126c9565b5b6000612853848285016127a4565b91505092915050565b600080600060608486031215612875576128746126c9565b5b6000612883868287016127a4565b9350506020612894868287016127a4565b92505060406128a5868287016126ef565b9150509250925092565b600060ff82169050919050565b6128c5816128af565b82525050565b60006020820190506128e060008301846128bc565b92915050565b6128ef8161277b565b82525050565b600060208201905061290a60008301846128e6565b92915050565b600061291b8261275b565b9050919050565b61292b81612910565b82525050565b60006020820190506129466000830184612922565b92915050565b60008060408385031215612963576129626126c9565b5b6000612971858286016127a4565b9250506020612982858286016127a4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129d357607f821691505b6020821081036129e6576129e561298c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a26826126ce565b9150612a31836126ce565b9250828202612a3f816126ce565b91508282048414831517612a5657612a556129ec565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a97826126ce565b9150612aa2836126ce565b925082612ab257612ab1612a5d565b5b828204905092915050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e000000000000000000000000000000000000602082015250565b6000612b19602e83612622565b9150612b2482612abd565b604082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f496e76616c6964206465762077616c6c65742061646472657373000000000000600082015250565b6000612b85601a83612622565b9150612b9082612b4f565b602082019050919050565b60006020820190508181036000830152612bb481612b78565b9050919050565b6000612bc6826126ce565b9150612bd1836126ce565b9250828203905081811115612be957612be86129ec565b5b92915050565b6000612bfa826126ce565b9150612c05836126ce565b9250828201905080821115612c1d57612c1c6129ec565b5b92915050565b7f4d696e696d756d206d696e7420616d6f756e74206e6f74206d65740000000000600082015250565b6000612c59601b83612622565b9150612c6482612c23565b602082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f4d696e7420616d6f756e742065786365656473206d6178696d756d206c696d6960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ceb602183612622565b9150612cf682612c8f565b604082019050919050565b60006020820190508181036000830152612d1a81612cde565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320616e74692d77686160008201527f6c65206c696d6974000000000000000000000000000000000000000000000000602082015250565b6000612d7d602883612622565b9150612d8882612d21565b604082019050919050565b60006020820190508181036000830152612dac81612d70565b9050919050565b7f496e76616c6964206d61726b6574696e672077616c6c65742061646472657373600082015250565b6000612de9602083612622565b9150612df482612db3565b602082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612e7b602583612622565b9150612e8682612e1f565b604082019050919050565b60006020820190508181036000830152612eaa81612e6e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f0d602483612622565b9150612f1882612eb1565b604082019050919050565b60006020820190508181036000830152612f3c81612f00565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f9f602283612622565b9150612faa82612f43565b604082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061300b601f83612622565b915061301682612fd5565b602082019050919050565b6000602082019050818103600083015261303a81612ffe565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613077601d83612622565b915061308282613041565b602082019050919050565b600060208201905081810360008301526130a68161306a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613109602183612622565b9150613114826130ad565b604082019050919050565b60006020820190508181036000830152613138816130fc565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061319b602283612622565b91506131a68261313f565b604082019050919050565b600060208201905081810360008301526131ca8161318e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061322d602583612622565b9150613238826131d1565b604082019050919050565b6000602082019050818103600083015261325c81613220565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132bf602383612622565b91506132ca82613263565b604082019050919050565b600060208201905081810360008301526132ee816132b2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613351602683612622565b915061335c826132f5565b604082019050919050565b6000602082019050818103600083015261338081613344565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006133bd601483612622565b91506133c882613387565b602082019050919050565b600060208201905081810360008301526133ec816133b0565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613429601083612622565b9150613434826133f3565b602082019050919050565b600060208201905081810360008301526134588161341c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613499826126ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134cb576134ca6129ec565b5b600182019050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000613532602a83612622565b915061353d826134d6565b604082019050919050565b6000602082019050818103600083015261356181613525565b905091905056fea26469706673582212204d286578bdeddc083f5bcdc2c5840ae963dc81db81b174de7402c87c069f1fca64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000018be942604de4a717fce9f519c23eacbbc1bd078000000000000000000000000543cb0157f517c39bde98d7f2965c37621c1cef700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000003f0000000000000000000000004e9ce36e442e55ecd9025b9a6e0d88485d628a670000000000000000000000002744e8d8e4968f843ccf1221966f94b0447f74f10000000000000000000000000981caf9675d7ae9eebdbb119f9957f7e99676e70000000000000000000000000b00512723fe444fa87f6f4593fe6509defa47f30000000000000000000000000b79ce0cc7c47fa1c36bbcc59dcb7965dafb90c6000000000000000000000000101edbcc6c5b013544a89321b817b243c842010e00000000000000000000000010552477af823ec90345902a9b78d4c06b3a077200000000000000000000000011bb600c75b4ae58b0c98daa652a267ff4882653000000000000000000000000144616fbf8eed40d403d2a0a5b2ecec74afc31bc00000000000000000000000014d7b51e3d60e707cd30298a793baf15a1cd4d2400000000000000000000000015364c3eea0868d04273e50ec060105c36199dc8000000000000000000000000180555d4d45e67520adc7c0c51b512c7a50877f200000000000000000000000018be942604de4a717fce9f519c23eacbbc1bd0780000000000000000000000001a3ff8e8ee0c158b147f4c05d9cdedb7f29e730c0000000000000000000000001d7948233bc84dceafe3324de274513c824e56f80000000000000000000000001e308061b81b811d799cae32b4bc83b85def7a920000000000000000000000002000ac324d60fac113a7ffbc0f67af1d48fd393e00000000000000000000000022648c12acd87912ea1710357b1302c6a4154ebc00000000000000000000000022caf6d2cd6691fa3604a229cff64b0bfc04c93000000000000000000000000024693c83c0fee4131a76f3397e16a6a114a5fe050000000000000000000000002633cc7eaf8c2e1fd7fff1e2bff08281e30825110000000000000000000000002744e8d8e4968f843ccf1221966f94b0447f74f10000000000000000000000002ac68bae138549a173506f37df6f0f67035d54a60000000000000000000000002c5485a2e7acfefc48b2ce78b1de9326fa4013690000000000000000000000002d79ba716114dbed2c0967655d6db1066bf864580000000000000000000000002fc4d047a71f619bf63ab82449491ef44d03a3f70000000000000000000000003016a43b482d0480460f6625115bd372fe90c6bf00000000000000000000000030c960755a29b2cf1fbc92ee1b759fb30eff4967000000000000000000000000316c41e1288a8bf94b221584bb5c0189714f4fa200000000000000000000000031f5a46d1baae7f692bb835599afd6d7bc99fb5700000000000000000000000037c310c9e600c9d8ab138102c44ebb7e648afb6700000000000000000000000037f60e5fd9788152000f3660db3559a16172648d000000000000000000000000390479f269408ae51f7d73d0f9e2f654faf37f2a0000000000000000000000003d14fef0acab4f7997a9eacb682f2d90831b63e900000000000000000000000041c1b48a5a88fca1e3c3263fc480ab8c73d4252f000000000000000000000000455cd98d405432e5431a2faef1d3d14585c15700000000000000000000000000468df31ea8ddd151c2b01a6ec0b34fe3fd54a82f00000000000000000000000048e7344ecf7d1f9c4d5141f3f6b18910d3bc14100000000000000000000000004a51500fa149a20cdd4ba25a9d5329847489bb280000000000000000000000004a5b0ca237d551088fd02a1b9f80e75d1328d8f70000000000000000000000004e10bc99a87319fe5419d9bf38b8a9aa74dd69a00000000000000000000000004ef3335540a7eb986a93e0dcd5899cdb1eed013b0000000000000000000000004f435aff3510de8148fb0dfbea5a84471ac29ed40000000000000000000000004fe5b965e3bd76eff36280471030ef9b0e6e2c1d00000000000000000000000053b450e029dd0bbd8fdef460ce605f085359b562000000000000000000000000543cb0157f517c39bde98d7f2965c37621c1cef7000000000000000000000000555b6ee8fab3dfdbcca9121721c435fd4c7a1fd10000000000000000000000005634699397964581a2af56aa712ad47c19ee99d6000000000000000000000000569eea9f2af0aea55f1d4e602f1422f84221d4d700000000000000000000000057a3c0a3e63ca31464a52849ab36627b090b15aa0000000000000000000000005eeb231216d54b7942c47c145826c6874f99e5580000000000000000000000005fc9db2da13470ee43dc4003417a35c2f08d69b7000000000000000000000000613101d75b96ed8c10b8e20429a03cdd8d9e082c0000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b500000000000000000000000062707bf611e78af443997cbc5fe477d130c125800000000000000000000000006338ff5a91de80912bc639e9ffe1f28ddbf5184c00000000000000000000000064198cfc07c824e1860fd290448dc6996175770e00000000000000000000000064b192e167a1e602db4a73db37023e64b3a1752f000000000000000000000000663df699c98bd638e57015551b48c9258f0e3f0600000000000000000000000068e1d4fa7ac82894aa88536c79fccf8a2c1797730000000000000000000000006bc55f8a9c19a6e779a0411111517f138e58191d000000000000000000000000c70e75b34840c65aeeff767e31761573212d3b3d0000000000000000000000006bc55f8a9c19a6e779a0411111517f138e58191d000000000000000000000000000000000000000000000000000000000000003f00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000011387d9f99fd15060000000000000000000000000000000000000000000000000b63872f12c06a98000000000000000000000000000000000000000000000000038a727d6c585aa4000000000000000000000000000000000000000000000000004a5df734bbb01f000000000000000000000000000000000000000000000000008256167194202c000000000000000000000000000000000000000000000000001e8107fcb0084e000000000000000000000000000000000000000000000000002266fba0b12ea50000000000000000000000000000000000000000000000000000cec76f0e715200000000000000000000000000000000000000000000000000b0130e075bc4c0000000000000000000000000000000000000000000000000016c4abbebea01000000000000000000000000000000000000000000000000000012f98aca198799000000000000000000000000000000000000000000000000000dc5f2cbcad064000000000000000000000000000000000000000000000000000768d0e7d69c64000000000000000000000000000000000000000000000000000d6e32745e64e120000000000000000000000000000000000000000000000000022af9051fb7df0000000000000000000000000000000000000000000000000005b44cc8a3edd24000000000000000000000000000000000000000000000000011941125f9c7440000000000000000000000000000000000000000000000000016ccdbd89e618b0000000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000cefc80a22ea71800000000000000000000000000000000000000000000000000e44c5c47422910000000000000000000000000000000000000000000000000006cfb75e49d2480000000000000000000000000000000000000000000000000026eda3b157d802000000000000000000000000000000000000000000000000001b717e29deb4ace000000000000000000000000000000000000000000000000010472719932a6b8000000000000000000000000000000000000000000000000026fad2c54f50a10000000000000000000000000000000000000000000000000003a7a3f4cb24d600000000000000000000000000000000000000000000000000057d403c01bf47800000000000000000000000000000000000000000000000001b814fddc919b200000000000000000000000000000000000000000000000000ada55474b8134000000000000000000000000000000000000000000000000000191acdb4641b6600000000000000000000000000000000000000000000000000108ce37c7386c20000000000000000000000000000000000000000000000000004890406c0152e00000000000000000000000000000000000000000000000000627042301bc093000000000000000000000000000000000000000000000000011e9cf96fd980440000000000000000000000000000000000000000000000000011de1e6db450c000000000000000000000000000000000000000000000000000b1bdc4837fc5fbc000000000000000000000000000000000000000000000000056c7900e991d50000000000000000000000000000000000000000000000000008aa61b8f260292000000000000000000000000000000000000000000000000000f2e9cfe2db3e600000000000000000000000000000000000000000000000000796e3ea3f8ab0000000000000000000000000000000000000000000000000000f12210c4d9a68c000000000000000000000000000000000000000000000000020c938cd382229f0000000000000000000000000000000000000000000000000018308be5d33ace0000000000000000000000000000000000000000000000000110203bee369306c0000000000000000000000000000000000000000000000001792093f073ee3d00000000000000000000000000000000000000000000000000363988e957a7fb00000000000000000000000000000000000000000000000000079d69b0c20f1f000000000000000000000000000000000000000000000000003cb71f51fc5580000000000000000000000000000000000000000000000000000dd59c87e477b0000000000000000000000000000000000000000000000000000cc55449d7fa86000000000000000000000000000000000000000000000000017bf61bcf7627a90000000000000000000000000000000000000000000000000039a69cc571a525400000000000000000000000000000000000000000000000016c4abbebea0100000000000000000000000000000000000000000000000000000ca6efd872606b000000000000000000000000000000000000000000000000008290835e45e8910000000000000000000000000000000000000000000000000001158e460913d00000000000000000000000000000000000000000000000000110eeea23db7271000000000000000000000000000000000000000000000000001f711def073e90000000000000000000000000000000000000000000000000000b65aa8619ca200000000000000000000000000000000000000000000002327b99dd505733a8000000000000000000000000000000000000000000000002327b99dd505733a8000000
-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x18BE942604DE4a717fcE9F519c23eAcbBc1bd078
Arg [1] : _devWallet (address): 0x543cB0157f517c39bDe98D7F2965c37621C1cEf7
Arg [2] : airdropRecipients (address[]): 0x4E9ce36E442e55EcD9025B9a6E0D88485d628A67,0x2744E8d8E4968f843Ccf1221966F94B0447F74f1,0x0981CaF9675d7AE9eebDbb119f9957f7e99676E7,0x0B00512723FE444fa87f6f4593fe6509Defa47F3,0x0b79cE0Cc7C47fa1C36BbCC59dCB7965dAFb90c6,0x101EDBCC6c5b013544a89321b817b243C842010e,0x10552477Af823eC90345902A9B78D4C06B3a0772,0x11BB600c75B4ae58B0c98DaA652a267fF4882653,0x144616Fbf8eEd40D403D2a0a5B2ECeC74AFC31bc,0x14d7B51E3d60E707cd30298a793bAf15a1CD4d24,0x15364c3eEA0868D04273E50eC060105C36199dC8,0x180555D4d45e67520adC7c0c51b512c7A50877f2,0x18BE942604DE4a717fcE9F519c23eAcbBc1bd078,0x1a3FF8E8eE0c158b147f4C05D9cdEDB7f29e730c,0x1D7948233Bc84dceaFe3324de274513c824e56F8,0x1E308061b81B811d799caE32B4Bc83b85deF7a92,0x2000aC324D60fac113a7ffBc0F67af1d48fD393E,0x22648C12acD87912EA1710357B1302c6a4154Ebc,0x22Caf6D2Cd6691FA3604A229cFf64B0BfC04c930,0x24693c83C0FEe4131A76F3397e16a6a114a5fe05,0x2633Cc7EaF8C2e1FD7FFF1e2BfF08281e3082511,0x2744E8d8E4968f843Ccf1221966F94B0447F74f1,0x2AC68BaE138549A173506F37df6F0F67035D54A6,0x2C5485A2e7acfEfC48B2cE78b1De9326fa401369,0x2d79ba716114dbed2c0967655d6Db1066BF86458,0x2FC4D047a71f619BF63ab82449491eF44D03a3F7,0x3016A43B482d0480460f6625115bd372FE90c6bf,0x30c960755A29b2Cf1fbC92eE1B759FB30eff4967,0x316C41E1288a8bf94B221584bb5c0189714f4Fa2,0x31f5A46d1BaAe7F692BB835599AfD6d7BC99FB57,0x37C310C9E600c9d8aB138102c44Ebb7E648aFb67,0x37F60E5Fd9788152000F3660DB3559A16172648D,0x390479F269408Ae51f7d73d0F9E2f654Faf37f2A,0x3D14FeF0acaB4f7997a9eacb682F2d90831B63E9,0x41C1b48A5A88FCA1E3c3263FC480aB8c73D4252F,0x455cd98D405432e5431a2FaEF1D3d14585c15700,0x468dF31Ea8DDd151c2b01A6eC0B34fe3fd54a82f,0x48E7344Ecf7d1F9C4d5141f3f6B18910D3BC1410,0x4A51500Fa149A20CDD4ba25a9D5329847489Bb28,0x4A5b0ca237d551088Fd02A1B9F80E75D1328D8f7,0x4E10bC99A87319fE5419d9BF38b8a9aA74Dd69a0,0x4Ef3335540a7EB986A93e0Dcd5899cDB1Eed013B,0x4F435aFF3510dE8148FB0DfBea5a84471ac29Ed4,0x4Fe5b965E3BD76eFf36280471030ef9b0E6e2C1D,0x53B450e029dD0BBD8fdEf460cE605f085359b562,0x543cB0157f517c39bDe98D7F2965c37621C1cEf7,0x555B6eE8faB3DfdBcCa9121721c435FD4C7a1fd1,0x5634699397964581a2af56aa712aD47c19eE99D6,0x569eeA9f2Af0AEa55f1D4e602F1422F84221D4d7,0x57A3C0a3e63ca31464A52849ab36627b090b15Aa,0x5eeB231216d54B7942c47c145826c6874F99E558,0x5FC9Db2Da13470eE43DC4003417a35C2F08d69b7,0x613101D75b96ED8c10b8e20429a03CdD8d9e082c,0x6131B5fae19EA4f9D964eAc0408E4408b66337b5,0x62707Bf611E78aF443997Cbc5Fe477d130c12580,0x6338Ff5a91De80912bc639E9ffe1F28dDBF5184C,0x64198CfC07c824e1860fd290448Dc6996175770e,0x64B192e167a1e602db4a73db37023e64b3a1752f,0x663dF699c98Bd638E57015551b48C9258F0e3F06,0x68e1D4fa7aC82894aa88536C79fcCf8A2C179773,0x6Bc55f8A9C19A6E779A0411111517F138E58191d,0xC70E75b34840c65aEEff767E31761573212D3B3d,0x6Bc55f8A9C19A6E779A0411111517F138E58191d
Arg [3] : airdropAmounts (uint256[]): 1000000000000000000000,81322300000000000000000,53782000000000000000000,16721000000000000000000,1371830000000000000000,2404280000000000000000,562700000000000000000,634610000000000000000,14900000000000000000,3248000000000000000000,6720000000000000000000,350022800000000000000,254071360000000000000,136680000000000000000,247748210000000000000,39990000000000000000,105225700000000000000,324264000000000000000,420590000000000000000,20000000000000000000,238639000000000000000,263210000000000000000,125648000000000000000,718100000000000000000,506240110000000000000,300275000000000000000,719050000000000000000,67420000000000000000,101259000000000000000,507380000000000000000,3203200000000000000000,463100000000000000000,305300000000000000000,83660000000000000000,1815870000000000000000,5287080000000000000000,329600000000000000000,3278747900000000000000,1600800000000000000000,2557620000000000000000,280060000000000000000,2240000000000000000000,4448120000000000000000,9676726000000000000000,446220000000000000000,5019837100000000000000,6956770000000000000000,1000270000000000000000,140470000000000000000,1120000000000000000000,255200000000000000000,235580000000000000000,7009050000000000000000,1063470100000000000000,6720000000000000000000,233390000000000000000,2408490000000000000000,20000000000000000000,5034730000000000000000,580000000000000000000,210240000000000000000,680000000000000000000000000,680000000000000000000000000
-----Encoded View---------------
132 Constructor Arguments found :
Arg [0] : 00000000000000000000000018be942604de4a717fce9f519c23eacbbc1bd078
Arg [1] : 000000000000000000000000543cb0157f517c39bde98d7f2965c37621c1cef7
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000880
Arg [4] : 000000000000000000000000000000000000000000000000000000000000003f
Arg [5] : 0000000000000000000000004e9ce36e442e55ecd9025b9a6e0d88485d628a67
Arg [6] : 0000000000000000000000002744e8d8e4968f843ccf1221966f94b0447f74f1
Arg [7] : 0000000000000000000000000981caf9675d7ae9eebdbb119f9957f7e99676e7
Arg [8] : 0000000000000000000000000b00512723fe444fa87f6f4593fe6509defa47f3
Arg [9] : 0000000000000000000000000b79ce0cc7c47fa1c36bbcc59dcb7965dafb90c6
Arg [10] : 000000000000000000000000101edbcc6c5b013544a89321b817b243c842010e
Arg [11] : 00000000000000000000000010552477af823ec90345902a9b78d4c06b3a0772
Arg [12] : 00000000000000000000000011bb600c75b4ae58b0c98daa652a267ff4882653
Arg [13] : 000000000000000000000000144616fbf8eed40d403d2a0a5b2ecec74afc31bc
Arg [14] : 00000000000000000000000014d7b51e3d60e707cd30298a793baf15a1cd4d24
Arg [15] : 00000000000000000000000015364c3eea0868d04273e50ec060105c36199dc8
Arg [16] : 000000000000000000000000180555d4d45e67520adc7c0c51b512c7a50877f2
Arg [17] : 00000000000000000000000018be942604de4a717fce9f519c23eacbbc1bd078
Arg [18] : 0000000000000000000000001a3ff8e8ee0c158b147f4c05d9cdedb7f29e730c
Arg [19] : 0000000000000000000000001d7948233bc84dceafe3324de274513c824e56f8
Arg [20] : 0000000000000000000000001e308061b81b811d799cae32b4bc83b85def7a92
Arg [21] : 0000000000000000000000002000ac324d60fac113a7ffbc0f67af1d48fd393e
Arg [22] : 00000000000000000000000022648c12acd87912ea1710357b1302c6a4154ebc
Arg [23] : 00000000000000000000000022caf6d2cd6691fa3604a229cff64b0bfc04c930
Arg [24] : 00000000000000000000000024693c83c0fee4131a76f3397e16a6a114a5fe05
Arg [25] : 0000000000000000000000002633cc7eaf8c2e1fd7fff1e2bff08281e3082511
Arg [26] : 0000000000000000000000002744e8d8e4968f843ccf1221966f94b0447f74f1
Arg [27] : 0000000000000000000000002ac68bae138549a173506f37df6f0f67035d54a6
Arg [28] : 0000000000000000000000002c5485a2e7acfefc48b2ce78b1de9326fa401369
Arg [29] : 0000000000000000000000002d79ba716114dbed2c0967655d6db1066bf86458
Arg [30] : 0000000000000000000000002fc4d047a71f619bf63ab82449491ef44d03a3f7
Arg [31] : 0000000000000000000000003016a43b482d0480460f6625115bd372fe90c6bf
Arg [32] : 00000000000000000000000030c960755a29b2cf1fbc92ee1b759fb30eff4967
Arg [33] : 000000000000000000000000316c41e1288a8bf94b221584bb5c0189714f4fa2
Arg [34] : 00000000000000000000000031f5a46d1baae7f692bb835599afd6d7bc99fb57
Arg [35] : 00000000000000000000000037c310c9e600c9d8ab138102c44ebb7e648afb67
Arg [36] : 00000000000000000000000037f60e5fd9788152000f3660db3559a16172648d
Arg [37] : 000000000000000000000000390479f269408ae51f7d73d0f9e2f654faf37f2a
Arg [38] : 0000000000000000000000003d14fef0acab4f7997a9eacb682f2d90831b63e9
Arg [39] : 00000000000000000000000041c1b48a5a88fca1e3c3263fc480ab8c73d4252f
Arg [40] : 000000000000000000000000455cd98d405432e5431a2faef1d3d14585c15700
Arg [41] : 000000000000000000000000468df31ea8ddd151c2b01a6ec0b34fe3fd54a82f
Arg [42] : 00000000000000000000000048e7344ecf7d1f9c4d5141f3f6b18910d3bc1410
Arg [43] : 0000000000000000000000004a51500fa149a20cdd4ba25a9d5329847489bb28
Arg [44] : 0000000000000000000000004a5b0ca237d551088fd02a1b9f80e75d1328d8f7
Arg [45] : 0000000000000000000000004e10bc99a87319fe5419d9bf38b8a9aa74dd69a0
Arg [46] : 0000000000000000000000004ef3335540a7eb986a93e0dcd5899cdb1eed013b
Arg [47] : 0000000000000000000000004f435aff3510de8148fb0dfbea5a84471ac29ed4
Arg [48] : 0000000000000000000000004fe5b965e3bd76eff36280471030ef9b0e6e2c1d
Arg [49] : 00000000000000000000000053b450e029dd0bbd8fdef460ce605f085359b562
Arg [50] : 000000000000000000000000543cb0157f517c39bde98d7f2965c37621c1cef7
Arg [51] : 000000000000000000000000555b6ee8fab3dfdbcca9121721c435fd4c7a1fd1
Arg [52] : 0000000000000000000000005634699397964581a2af56aa712ad47c19ee99d6
Arg [53] : 000000000000000000000000569eea9f2af0aea55f1d4e602f1422f84221d4d7
Arg [54] : 00000000000000000000000057a3c0a3e63ca31464a52849ab36627b090b15aa
Arg [55] : 0000000000000000000000005eeb231216d54b7942c47c145826c6874f99e558
Arg [56] : 0000000000000000000000005fc9db2da13470ee43dc4003417a35c2f08d69b7
Arg [57] : 000000000000000000000000613101d75b96ed8c10b8e20429a03cdd8d9e082c
Arg [58] : 0000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b5
Arg [59] : 00000000000000000000000062707bf611e78af443997cbc5fe477d130c12580
Arg [60] : 0000000000000000000000006338ff5a91de80912bc639e9ffe1f28ddbf5184c
Arg [61] : 00000000000000000000000064198cfc07c824e1860fd290448dc6996175770e
Arg [62] : 00000000000000000000000064b192e167a1e602db4a73db37023e64b3a1752f
Arg [63] : 000000000000000000000000663df699c98bd638e57015551b48c9258f0e3f06
Arg [64] : 00000000000000000000000068e1d4fa7ac82894aa88536c79fccf8a2c179773
Arg [65] : 0000000000000000000000006bc55f8a9c19a6e779a0411111517f138e58191d
Arg [66] : 000000000000000000000000c70e75b34840c65aeeff767e31761573212d3b3d
Arg [67] : 0000000000000000000000006bc55f8a9c19a6e779a0411111517f138e58191d
Arg [68] : 000000000000000000000000000000000000000000000000000000000000003f
Arg [69] : 00000000000000000000000000000000000000000000003635c9adc5dea00000
Arg [70] : 0000000000000000000000000000000000000000000011387d9f99fd15060000
Arg [71] : 000000000000000000000000000000000000000000000b63872f12c06a980000
Arg [72] : 00000000000000000000000000000000000000000000038a727d6c585aa40000
Arg [73] : 00000000000000000000000000000000000000000000004a5df734bbb01f0000
Arg [74] : 00000000000000000000000000000000000000000000008256167194202c0000
Arg [75] : 00000000000000000000000000000000000000000000001e8107fcb0084e0000
Arg [76] : 00000000000000000000000000000000000000000000002266fba0b12ea50000
Arg [77] : 000000000000000000000000000000000000000000000000cec76f0e71520000
Arg [78] : 0000000000000000000000000000000000000000000000b0130e075bc4c00000
Arg [79] : 00000000000000000000000000000000000000000000016c4abbebea01000000
Arg [80] : 000000000000000000000000000000000000000000000012f98aca1987990000
Arg [81] : 00000000000000000000000000000000000000000000000dc5f2cbcad0640000
Arg [82] : 00000000000000000000000000000000000000000000000768d0e7d69c640000
Arg [83] : 00000000000000000000000000000000000000000000000d6e32745e64e12000
Arg [84] : 0000000000000000000000000000000000000000000000022af9051fb7df0000
Arg [85] : 000000000000000000000000000000000000000000000005b44cc8a3edd24000
Arg [86] : 000000000000000000000000000000000000000000000011941125f9c7440000
Arg [87] : 000000000000000000000000000000000000000000000016ccdbd89e618b0000
Arg [88] : 000000000000000000000000000000000000000000000001158e460913d00000
Arg [89] : 00000000000000000000000000000000000000000000000cefc80a22ea718000
Arg [90] : 00000000000000000000000000000000000000000000000e44c5c47422910000
Arg [91] : 000000000000000000000000000000000000000000000006cfb75e49d2480000
Arg [92] : 000000000000000000000000000000000000000000000026eda3b157d8020000
Arg [93] : 00000000000000000000000000000000000000000000001b717e29deb4ace000
Arg [94] : 000000000000000000000000000000000000000000000010472719932a6b8000
Arg [95] : 000000000000000000000000000000000000000000000026fad2c54f50a10000
Arg [96] : 000000000000000000000000000000000000000000000003a7a3f4cb24d60000
Arg [97] : 0000000000000000000000000000000000000000000000057d403c01bf478000
Arg [98] : 00000000000000000000000000000000000000000000001b814fddc919b20000
Arg [99] : 0000000000000000000000000000000000000000000000ada55474b813400000
Arg [100] : 0000000000000000000000000000000000000000000000191acdb4641b660000
Arg [101] : 0000000000000000000000000000000000000000000000108ce37c7386c20000
Arg [102] : 000000000000000000000000000000000000000000000004890406c0152e0000
Arg [103] : 0000000000000000000000000000000000000000000000627042301bc0930000
Arg [104] : 00000000000000000000000000000000000000000000011e9cf96fd980440000
Arg [105] : 000000000000000000000000000000000000000000000011de1e6db450c00000
Arg [106] : 0000000000000000000000000000000000000000000000b1bdc4837fc5fbc000
Arg [107] : 000000000000000000000000000000000000000000000056c7900e991d500000
Arg [108] : 00000000000000000000000000000000000000000000008aa61b8f2602920000
Arg [109] : 00000000000000000000000000000000000000000000000f2e9cfe2db3e60000
Arg [110] : 0000000000000000000000000000000000000000000000796e3ea3f8ab000000
Arg [111] : 0000000000000000000000000000000000000000000000f12210c4d9a68c0000
Arg [112] : 00000000000000000000000000000000000000000000020c938cd382229f0000
Arg [113] : 000000000000000000000000000000000000000000000018308be5d33ace0000
Arg [114] : 000000000000000000000000000000000000000000000110203bee369306c000
Arg [115] : 0000000000000000000000000000000000000000000001792093f073ee3d0000
Arg [116] : 0000000000000000000000000000000000000000000000363988e957a7fb0000
Arg [117] : 0000000000000000000000000000000000000000000000079d69b0c20f1f0000
Arg [118] : 00000000000000000000000000000000000000000000003cb71f51fc55800000
Arg [119] : 00000000000000000000000000000000000000000000000dd59c87e477b00000
Arg [120] : 00000000000000000000000000000000000000000000000cc55449d7fa860000
Arg [121] : 00000000000000000000000000000000000000000000017bf61bcf7627a90000
Arg [122] : 000000000000000000000000000000000000000000000039a69cc571a5254000
Arg [123] : 00000000000000000000000000000000000000000000016c4abbebea01000000
Arg [124] : 00000000000000000000000000000000000000000000000ca6efd872606b0000
Arg [125] : 00000000000000000000000000000000000000000000008290835e45e8910000
Arg [126] : 000000000000000000000000000000000000000000000001158e460913d00000
Arg [127] : 000000000000000000000000000000000000000000000110eeea23db72710000
Arg [128] : 00000000000000000000000000000000000000000000001f711def073e900000
Arg [129] : 00000000000000000000000000000000000000000000000b65aa8619ca200000
Arg [130] : 000000000000000000000000000000000000000002327b99dd505733a8000000
Arg [131] : 000000000000000000000000000000000000000002327b99dd505733a8000000
Deployed Bytecode Sourcemap
26011:9471:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12252:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31674:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14603:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13372:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;34926:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31324:205;;;:::i;:::-;;33628:837;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26477:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26248:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13214:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16088:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35276:65;;;:::i;:::-;;30732:584;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26199:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35108:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;34473:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;32535:341;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26361:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26528:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;34708:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29937:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32093:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26131:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25769:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;35207:61;;;:::i;:::-;;26096:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26168:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12471:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16829:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32884:736;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31537:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29773:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26414:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14132:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;34591:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26585:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31816:267;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26315:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32357:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12252:100;12306:13;12339:5;12332:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12252:100;:::o;31674:130::-;31743:7;31793:3;26353:1;31770:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;31763:33;;31674:130;;;:::o;14603:201::-;14686:4;14703:13;14719:12;:10;:12::i;:::-;14703:28;;14742:32;14751:5;14758:7;14767:6;14742:8;:32::i;:::-;14792:4;14785:11;;;14603:201;;;;:::o;13372:108::-;13433:7;13460:12;;13453:19;;13372:108;:::o;34926:174::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;35026:1:::1;35004:24;;:10;:24;;::::0;34996:63:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;35082:10;35070:9;;:22;;;;;;;;;;;;;;;;;;34926:174:::0;:::o;31324:205::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;31375:21:::1;31399:24;:22;:24::i;:::-;31375:48;;31434:31;31440:9;;;;;;;;;;;31451:13;31434:5;:31::i;:::-;31501:20;31511:9;;;;;;;;;;;31501;:20::i;:::-;31476:11;:22;31488:9;;;;;;;;;;;31476:22;;;;;;;;;;;;;;;:45;;;;31364:165;31324:205::o:0;33628:837::-;33716:4;33733:22;33758:5;33733:30;;33774:20;33809:24;33855:17;:23;33873:4;33855:23;;;;;;;;;;;;;;;;;;;;;;;;;33854:24;:50;;;;;33883:17;:21;33901:2;33883:21;;;;;;;;;;;;;;;;;;;;;;;;;33882:22;33854:50;33850:251;;;33938:30;33962:5;33938:23;:30::i;:::-;33921:47;;33998:28;34020:5;33998:21;:28::i;:::-;33983:43;;34060:29;34086:2;34060:25;:29::i;:::-;34041:48;;33850:251;34113:35;34123:4;34129:2;34133:14;34113:9;:35::i;:::-;34159:84;34168:4;34174:12;:10;:12::i;:::-;34228:14;34220:5;34188:29;34198:4;34204:12;:10;:12::i;:::-;34188:9;:29::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;34159:8;:84::i;:::-;34275:1;34260:12;:16;:40;;;;34299:1;34280:16;:20;34260:40;34256:136;;;34317:63;34327:2;34331:15;;;;;;;;;;;34363:16;34348:12;:31;;;;:::i;:::-;34317:9;:63::i;:::-;34256:136;34422:13;34432:2;34422:9;:13::i;:::-;34404:11;:15;34416:2;34404:15;;;;;;;;;;;;;;;:31;;;;34453:4;34446:11;;;;;33628:837;;;;;:::o;26477:44::-;26520:1;26477:44;:::o;26248:60::-;26289:19;26248:60;:::o;13214:93::-;13272:5;13297:2;13290:9;;13214:93;:::o;16088:238::-;16176:4;16193:13;16209:12;:10;:12::i;:::-;16193:28;;16232:64;16241:5;16248:7;16285:10;16257:25;16267:5;16274:7;16257:9;:25::i;:::-;:38;;;;:::i;:::-;16232:8;:64::i;:::-;16314:4;16307:11;;;16088:238;;;;:::o;35276:65::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;35323:10:::1;:8;:10::i;:::-;35276:65::o:0;30732:584::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;26456:14:::1;30809:5;:24;;30801:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;30876:23;30937:3;26520:1;30902:13;:11;:13::i;:::-;:32;;;;:::i;:::-;:38;;;;:::i;:::-;30876:64;;30968:15;30959:5;:24;;30951:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;31104:3;26406:1;31065:15;:36;;;;:::i;:::-;:42;;;;:::i;:::-;31056:5;31040:13;31050:2;31040:9;:13::i;:::-;:21;;;;:::i;:::-;:67;;31032:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;31197:16;31203:2;31207:5;31197;:16::i;:::-;31295:13;31305:2;31295:9;:13::i;:::-;31277:11;:15;31289:2;31277:15;;;;;;;;;;;;;;;:31;;;;30790:526;30732:584:::0;;:::o;26199:42::-;26236:5;26199:42;:::o;35108:91::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;35174:17:::1;35185:5;35174:10;:17::i;:::-;35108:91:::0;:::o;34473:110::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;34571:4:::1;34542:17;:26;34560:7;34542:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;34473:110:::0;:::o;32535:341::-;32610:7;32630:22;32655:20;32665:9;32655;:20::i;:::-;32630:45;;32686:27;32716:11;:22;32728:9;32716:22;;;;;;;;;;;;;;;;32686:52;;32749:24;32831:3;26353:1;32794:19;32777:14;:36;;;;:::i;:::-;32776:52;;;;:::i;:::-;:58;;;;:::i;:::-;32749:85;;32852:16;32845:23;;;;;32535:341;;;:::o;26361:46::-;26406:1;26361:46;:::o;26528:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;5512:86::-;5559:4;5583:7;;;;;;;;;;;5576:14;;5512:86;:::o;34708:210::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;34826:1:::1;34798:30;;:16;:30;;::::0;34790:75:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;34894:16;34876:15;;:34;;;;;;;;;;;;;;;;;;34708:210:::0;:::o;29937:133::-;30003:7;30030:32;30054:7;30030:23;:32::i;:::-;30023:39;;29937:133;;;:::o;32093:256::-;32158:7;32178:20;32201:29;32223:6;32201:21;:29::i;:::-;32178:52;;32241:21;32265:30;32288:6;32265:22;:30::i;:::-;32241:54;;32328:13;32313:12;:28;;;;:::i;:::-;32306:35;;;;32093:256;;;:::o;26131:30::-;;;;;;;;;;;;;:::o;25769:164::-;25846:46;25862:7;25871:12;:10;:12::i;:::-;25885:6;25846:15;:46::i;:::-;25903:22;25909:7;25918:6;25903:5;:22::i;:::-;25769:164;;:::o;35207:61::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;35252:8:::1;:6;:8::i;:::-;35207:61::o:0;26096:28::-;;;;;;;;;;;;;:::o;26168:24::-;;;;;;;;;;;;;:::o;12471:104::-;12527:13;12560:7;12553:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12471:104;:::o;16829:436::-;16922:4;16939:13;16955:12;:10;:12::i;:::-;16939:28;;16978:24;17005:25;17015:5;17022:7;17005:9;:25::i;:::-;16978:52;;17069:15;17049:16;:35;;17041:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17162:60;17171:5;17178:7;17206:15;17187:16;:34;17162:8;:60::i;:::-;17253:4;17246:11;;;;16829:436;;;;:::o;32884:736::-;32954:4;32967:22;32992:5;32967:30;;33004:20;33035:24;33077:17;:31;33095:12;:10;:12::i;:::-;33077:31;;;;;;;;;;;;;;;;;;;;;;;;;33076:32;:58;;;;;33113:17;:21;33131:2;33113:21;;;;;;;;;;;;;;;;;;;;;;;;;33112:22;33076:58;33072:243;;;33164:30;33188:5;33164:23;:30::i;:::-;33147:47;;33220:28;33242:5;33220:21;:28::i;:::-;33205:43;;33278:29;33304:2;33278:25;:29::i;:::-;33259:48;;33072:243;33323:43;33333:12;:10;:12::i;:::-;33347:2;33351:14;33323:9;:43::i;:::-;33373:24;33384:12;:10;:12::i;:::-;33373:10;:24::i;:::-;33404:14;33415:2;33404:10;:14::i;:::-;33446:1;33431:12;:16;:40;;;;33470:1;33451:16;:20;33431:40;33427:128;;;33484:63;33494:2;33498:15;;;;;;;;;;;33530:16;33515:12;:31;;;;:::i;:::-;33484:9;:63::i;:::-;33427:128;33581:13;33591:2;33581:9;:13::i;:::-;33563:11;:15;33575:2;33563:15;;;;;;;;;;;;;;;:31;;;;33608:4;33601:11;;;;;32884:736;;;;:::o;31537:129::-;31605:7;31655:3;26353:1;31632:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;31625:33;;31537:129;;;:::o;29773:156::-;29844:7;29894:18;:27;29913:7;29894:27;;;;;;;;;;;;;;;;29867:24;29883:7;29867:15;:24::i;:::-;:54;;;;:::i;:::-;29860:61;;29773:156;;;:::o;26414:56::-;26456:14;26414:56;:::o;14132:151::-;14221:7;14248:11;:18;14260:5;14248:18;;;;;;;;;;;;;;;:27;14267:7;14248:27;;;;;;;;;;;;;;;;14241:34;;14132:151;;;;:::o;34591:109::-;35403:5;;;;;;;;;;;35389:19;;:10;:19;;;35381:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;34687:5:::1;34658:17;:26;34676:7;34658:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;34591:109:::0;:::o;26585:47::-;;;;;;;;;;;;;;;;;:::o;31816:267::-;31871:7;31891:23;31952:3;26520:1;31917:13;:11;:13::i;:::-;:32;;;;:::i;:::-;:38;;;;:::i;:::-;31891:64;;31966:21;32006:20;32016:9;;;;;;;;;;;32006;:20::i;:::-;31990:13;:11;:13::i;:::-;:36;;;;:::i;:::-;31966:60;;32062:13;32044:15;:31;;;;:::i;:::-;32037:38;;;;31816:267;:::o;26315:39::-;26353:1;26315:39;:::o;32357:170::-;32427:7;32447:12;32462:26;32481:6;32462:18;:26::i;:::-;32447:41;;32515:4;32506:6;:13;;;;:::i;:::-;32499:20;;;32357:170;;;:::o;3625:98::-;3678:7;3705:10;3698:17;;3625:98;:::o;20856:380::-;21009:1;20992:19;;:5;:19;;;20984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21090:1;21071:21;;:7;:21;;;21063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21174:6;21144:11;:18;21156:5;21144:18;;;;;;;;;;;;;;;:27;21163:7;21144:27;;;;;;;;;;;;;;;:36;;;;21212:7;21196:32;;21205:5;21196:32;;;21221:6;21196:32;;;;;;:::i;:::-;;;;;;;;20856:380;;;:::o;18862:548::-;18965:1;18946:21;;:7;:21;;;18938:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19016:49;19045:1;19049:7;19058:6;19016:20;:49::i;:::-;19094:6;19078:12;;:22;;;;;;;:::i;:::-;;;;;;;;19271:6;19249:9;:18;19259:7;19249:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;19325:7;19304:37;;19321:1;19304:37;;;19334:6;19304:37;;;;;;:::i;:::-;;;;;;;;19354:48;19382:1;19386:7;19395:6;19354:19;:48::i;:::-;18862:548;;:::o;30078:415::-;30260:24;30287:36;30313:9;30287:25;:36::i;:::-;30260:63;;30367:16;30334:18;:29;30353:9;30334:29;;;;;;;;;;;;;;;;:49;;;;;;;:::i;:::-;;;;;;;;30443:42;30459:6;30467:9;30478:6;30443:15;:42::i;:::-;30166:327;30078:415;;;:::o;6367:120::-;5376:16;:14;:16::i;:::-;6436:5:::1;6426:7;;:15;;;;;;;;;;;;;;;;;;6457:22;6466:12;:10;:12::i;:::-;6457:22;;;;;;:::i;:::-;;;;;;;;6367:120::o:0;25359:91::-;25415:27;25421:12;:10;:12::i;:::-;25435:6;25415:5;:27::i;:::-;25359:91;:::o;21527:453::-;21662:24;21689:25;21699:5;21706:7;21689:9;:25::i;:::-;21662:52;;21749:17;21729:16;:37;21725:248;;21811:6;21791:16;:26;;21783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21895:51;21904:5;21911:7;21939:6;21920:16;:25;21895:8;:51::i;:::-;21725:248;21651:329;21527:453;;;:::o;19743:675::-;19846:1;19827:21;;:7;:21;;;19819:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19899:49;19920:7;19937:1;19941:6;19899:20;:49::i;:::-;19961:22;19986:9;:18;19996:7;19986:18;;;;;;;;;;;;;;;;19961:43;;20041:6;20023:14;:24;;20015:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20160:6;20143:14;:23;20122:9;:18;20132:7;20122:18;;;;;;;;;;;;;;;:44;;;;20277:6;20261:12;;:22;;;;;;;;;;;20338:1;20312:37;;20321:7;20312:37;;;20342:6;20312:37;;;;;;:::i;:::-;;;;;;;;20362:48;20382:7;20399:1;20403:6;20362:19;:48::i;:::-;19808:610;19743:675;;:::o;6108:118::-;5117:19;:17;:19::i;:::-;6178:4:::1;6168:7;;:14;;;;;;;;;;;;;;;;;;6198:20;6205:12;:10;:12::i;:::-;6198:20;;;;;;:::i;:::-;;;;;;;;6108:118::o:0;28344:135::-;28405:17;28415:6;28405:9;:17::i;:::-;28400:72;;28439:8;28453:6;28439:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28400:72;28344:135;:::o;13543:127::-;13617:7;13644:9;:18;13654:7;13644:18;;;;;;;;;;;;;;;;13637:25;;13543:127;;;:::o;30503:175::-;30626:44;30653:4;30659:2;30663:6;30626:26;:44::i;:::-;30503:175;;;:::o;23309:124::-;;;;:::o;17735:840::-;17882:1;17866:18;;:4;:18;;;17858:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17959:1;17945:16;;:2;:16;;;17937:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18014:38;18035:4;18041:2;18045:6;18014:20;:38::i;:::-;18065:19;18087:9;:15;18097:4;18087:15;;;;;;;;;;;;;;;;18065:37;;18136:6;18121:11;:21;;18113:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18253:6;18239:11;:20;18221:9;:15;18231:4;18221:15;;;;;;;;;;;;;;;:38;;;;18456:6;18439:9;:13;18449:2;18439:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18506:2;18491:26;;18500:4;18491:26;;;18510:6;18491:26;;;;;;:::i;:::-;;;;;;;;18530:37;18550:4;18556:2;18560:6;18530:19;:37::i;:::-;17847:728;17735:840;;;:::o;5856:108::-;5923:8;:6;:8::i;:::-;5915:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;5856:108::o;5671:::-;5742:8;:6;:8::i;:::-;5741:9;5733:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5671:108::o;28487:250::-;28545:4;28567:9;28579:1;28567:13;;28562:145;28586:8;:15;;;;28582:1;:19;28562:145;;;28642:6;28627:21;;:8;28636:1;28627:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:21;;;28623:73;;28676:4;28669:11;;;;;28623:73;28603:3;;;;;:::i;:::-;;;;28562:145;;;;28724:5;28717:12;;28487:250;;;;:::o;24497:272::-;24640:44;24667:4;24673:2;24677:6;24640:26;:44::i;:::-;24706:8;:6;:8::i;:::-;24705:9;24697:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24497:272;;;:::o;22580:125::-;;;;:::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:77;1713:7;1742:5;1731:16;;1676:77;;;:::o;1759:122::-;1832:24;1850:5;1832:24;:::i;:::-;1825:5;1822:35;1812:63;;1871:1;1868;1861:12;1812:63;1759:122;:::o;1887:139::-;1933:5;1971:6;1958:20;1949:29;;1987:33;2014:5;1987:33;:::i;:::-;1887:139;;;;:::o;2032:329::-;2091:6;2140:2;2128:9;2119:7;2115:23;2111:32;2108:119;;;2146:79;;:::i;:::-;2108:119;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2032:329;;;;:::o;2367:118::-;2454:24;2472:5;2454:24;:::i;:::-;2449:3;2442:37;2367:118;;:::o;2491:222::-;2584:4;2622:2;2611:9;2607:18;2599:26;;2635:71;2703:1;2692:9;2688:17;2679:6;2635:71;:::i;:::-;2491:222;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:329::-;4192:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:119;;;4247:79;;:::i;:::-;4209:119;4367:1;4392:53;4437:7;4428:6;4417:9;4413:22;4392:53;:::i;:::-;4382:63;;4338:117;4133:329;;;;:::o;4468:619::-;4545:6;4553;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4736:1;4761:53;4806:7;4797:6;4786:9;4782:22;4761:53;:::i;:::-;4751:63;;4707:117;4863:2;4889:53;4934:7;4925:6;4914:9;4910:22;4889:53;:::i;:::-;4879:63;;4834:118;4991:2;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4962:118;4468:619;;;;;:::o;5093:86::-;5128:7;5168:4;5161:5;5157:16;5146:27;;5093:86;;;:::o;5185:112::-;5268:22;5284:5;5268:22;:::i;:::-;5263:3;5256:35;5185:112;;:::o;5303:214::-;5392:4;5430:2;5419:9;5415:18;5407:26;;5443:67;5507:1;5496:9;5492:17;5483:6;5443:67;:::i;:::-;5303:214;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:104::-;5920:7;5949:24;5967:5;5949:24;:::i;:::-;5938:35;;5875:104;;;:::o;5985:142::-;6088:32;6114:5;6088:32;:::i;:::-;6083:3;6076:45;5985:142;;:::o;6133:254::-;6242:4;6280:2;6269:9;6265:18;6257:26;;6293:87;6377:1;6366:9;6362:17;6353:6;6293:87;:::i;:::-;6133:254;;;;:::o;6393:474::-;6461:6;6469;6518:2;6506:9;6497:7;6493:23;6489:32;6486:119;;;6524:79;;:::i;:::-;6486:119;6644:1;6669:53;6714:7;6705:6;6694:9;6690:22;6669:53;:::i;:::-;6659:63;;6615:117;6771:2;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6742:118;6393:474;;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:320;7103:6;7140:1;7134:4;7130:12;7120:22;;7187:1;7181:4;7177:12;7208:18;7198:81;;7264:4;7256:6;7252:17;7242:27;;7198:81;7326:2;7318:6;7315:14;7295:18;7292:38;7289:84;;7345:18;;:::i;:::-;7289:84;7110:269;7059:320;;;:::o;7385:180::-;7433:77;7430:1;7423:88;7530:4;7527:1;7520:15;7554:4;7551:1;7544:15;7571:410;7611:7;7634:20;7652:1;7634:20;:::i;:::-;7629:25;;7668:20;7686:1;7668:20;:::i;:::-;7663:25;;7723:1;7720;7716:9;7745:30;7763:11;7745:30;:::i;:::-;7734:41;;7924:1;7915:7;7911:15;7908:1;7905:22;7885:1;7878:9;7858:83;7835:139;;7954:18;;:::i;:::-;7835:139;7619:362;7571:410;;;;:::o;7987:180::-;8035:77;8032:1;8025:88;8132:4;8129:1;8122:15;8156:4;8153:1;8146:15;8173:185;8213:1;8230:20;8248:1;8230:20;:::i;:::-;8225:25;;8264:20;8282:1;8264:20;:::i;:::-;8259:25;;8303:1;8293:35;;8308:18;;:::i;:::-;8293:35;8350:1;8347;8343:9;8338:14;;8173:185;;;;:::o;8364:233::-;8504:34;8500:1;8492:6;8488:14;8481:58;8573:16;8568:2;8560:6;8556:15;8549:41;8364:233;:::o;8603:366::-;8745:3;8766:67;8830:2;8825:3;8766:67;:::i;:::-;8759:74;;8842:93;8931:3;8842:93;:::i;:::-;8960:2;8955:3;8951:12;8944:19;;8603:366;;;:::o;8975:419::-;9141:4;9179:2;9168:9;9164:18;9156:26;;9228:9;9222:4;9218:20;9214:1;9203:9;9199:17;9192:47;9256:131;9382:4;9256:131;:::i;:::-;9248:139;;8975:419;;;:::o;9400:176::-;9540:28;9536:1;9528:6;9524:14;9517:52;9400:176;:::o;9582:366::-;9724:3;9745:67;9809:2;9804:3;9745:67;:::i;:::-;9738:74;;9821:93;9910:3;9821:93;:::i;:::-;9939:2;9934:3;9930:12;9923:19;;9582:366;;;:::o;9954:419::-;10120:4;10158:2;10147:9;10143:18;10135:26;;10207:9;10201:4;10197:20;10193:1;10182:9;10178:17;10171:47;10235:131;10361:4;10235:131;:::i;:::-;10227:139;;9954:419;;;:::o;10379:194::-;10419:4;10439:20;10457:1;10439:20;:::i;:::-;10434:25;;10473:20;10491:1;10473:20;:::i;:::-;10468:25;;10517:1;10514;10510:9;10502:17;;10541:1;10535:4;10532:11;10529:37;;;10546:18;;:::i;:::-;10529:37;10379:194;;;;:::o;10579:191::-;10619:3;10638:20;10656:1;10638:20;:::i;:::-;10633:25;;10672:20;10690:1;10672:20;:::i;:::-;10667:25;;10715:1;10712;10708:9;10701:16;;10736:3;10733:1;10730:10;10727:36;;;10743:18;;:::i;:::-;10727:36;10579:191;;;;:::o;10776:177::-;10916:29;10912:1;10904:6;10900:14;10893:53;10776:177;:::o;10959:366::-;11101:3;11122:67;11186:2;11181:3;11122:67;:::i;:::-;11115:74;;11198:93;11287:3;11198:93;:::i;:::-;11316:2;11311:3;11307:12;11300:19;;10959:366;;;:::o;11331:419::-;11497:4;11535:2;11524:9;11520:18;11512:26;;11584:9;11578:4;11574:20;11570:1;11559:9;11555:17;11548:47;11612:131;11738:4;11612:131;:::i;:::-;11604:139;;11331:419;;;:::o;11756:220::-;11896:34;11892:1;11884:6;11880:14;11873:58;11965:3;11960:2;11952:6;11948:15;11941:28;11756:220;:::o;11982:366::-;12124:3;12145:67;12209:2;12204:3;12145:67;:::i;:::-;12138:74;;12221:93;12310:3;12221:93;:::i;:::-;12339:2;12334:3;12330:12;12323:19;;11982:366;;;:::o;12354:419::-;12520:4;12558:2;12547:9;12543:18;12535:26;;12607:9;12601:4;12597:20;12593:1;12582:9;12578:17;12571:47;12635:131;12761:4;12635:131;:::i;:::-;12627:139;;12354:419;;;:::o;12779:227::-;12919:34;12915:1;12907:6;12903:14;12896:58;12988:10;12983:2;12975:6;12971:15;12964:35;12779:227;:::o;13012:366::-;13154:3;13175:67;13239:2;13234:3;13175:67;:::i;:::-;13168:74;;13251:93;13340:3;13251:93;:::i;:::-;13369:2;13364:3;13360:12;13353:19;;13012:366;;;:::o;13384:419::-;13550:4;13588:2;13577:9;13573:18;13565:26;;13637:9;13631:4;13627:20;13623:1;13612:9;13608:17;13601:47;13665:131;13791:4;13665:131;:::i;:::-;13657:139;;13384:419;;;:::o;13809:182::-;13949:34;13945:1;13937:6;13933:14;13926:58;13809:182;:::o;13997:366::-;14139:3;14160:67;14224:2;14219:3;14160:67;:::i;:::-;14153:74;;14236:93;14325:3;14236:93;:::i;:::-;14354:2;14349:3;14345:12;14338:19;;13997:366;;;:::o;14369:419::-;14535:4;14573:2;14562:9;14558:18;14550:26;;14622:9;14616:4;14612:20;14608:1;14597:9;14593:17;14586:47;14650:131;14776:4;14650:131;:::i;:::-;14642:139;;14369:419;;;:::o;14794:224::-;14934:34;14930:1;14922:6;14918:14;14911:58;15003:7;14998:2;14990:6;14986:15;14979:32;14794:224;:::o;15024:366::-;15166:3;15187:67;15251:2;15246:3;15187:67;:::i;:::-;15180:74;;15263:93;15352:3;15263:93;:::i;:::-;15381:2;15376:3;15372:12;15365:19;;15024:366;;;:::o;15396:419::-;15562:4;15600:2;15589:9;15585:18;15577:26;;15649:9;15643:4;15639:20;15635:1;15624:9;15620:17;15613:47;15677:131;15803:4;15677:131;:::i;:::-;15669:139;;15396:419;;;:::o;15821:223::-;15961:34;15957:1;15949:6;15945:14;15938:58;16030:6;16025:2;16017:6;16013:15;16006:31;15821:223;:::o;16050:366::-;16192:3;16213:67;16277:2;16272:3;16213:67;:::i;:::-;16206:74;;16289:93;16378:3;16289:93;:::i;:::-;16407:2;16402:3;16398:12;16391:19;;16050:366;;;:::o;16422:419::-;16588:4;16626:2;16615:9;16611:18;16603:26;;16675:9;16669:4;16665:20;16661:1;16650:9;16646:17;16639:47;16703:131;16829:4;16703:131;:::i;:::-;16695:139;;16422:419;;;:::o;16847:221::-;16987:34;16983:1;16975:6;16971:14;16964:58;17056:4;17051:2;17043:6;17039:15;17032:29;16847:221;:::o;17074:366::-;17216:3;17237:67;17301:2;17296:3;17237:67;:::i;:::-;17230:74;;17313:93;17402:3;17313:93;:::i;:::-;17431:2;17426:3;17422:12;17415:19;;17074:366;;;:::o;17446:419::-;17612:4;17650:2;17639:9;17635:18;17627:26;;17699:9;17693:4;17689:20;17685:1;17674:9;17670:17;17663:47;17727:131;17853:4;17727:131;:::i;:::-;17719:139;;17446:419;;;:::o;17871:181::-;18011:33;18007:1;17999:6;17995:14;17988:57;17871:181;:::o;18058:366::-;18200:3;18221:67;18285:2;18280:3;18221:67;:::i;:::-;18214:74;;18297:93;18386:3;18297:93;:::i;:::-;18415:2;18410:3;18406:12;18399:19;;18058:366;;;:::o;18430:419::-;18596:4;18634:2;18623:9;18619:18;18611:26;;18683:9;18677:4;18673:20;18669:1;18658:9;18654:17;18647:47;18711:131;18837:4;18711:131;:::i;:::-;18703:139;;18430:419;;;:::o;18855:179::-;18995:31;18991:1;18983:6;18979:14;18972:55;18855:179;:::o;19040:366::-;19182:3;19203:67;19267:2;19262:3;19203:67;:::i;:::-;19196:74;;19279:93;19368:3;19279:93;:::i;:::-;19397:2;19392:3;19388:12;19381:19;;19040:366;;;:::o;19412:419::-;19578:4;19616:2;19605:9;19601:18;19593:26;;19665:9;19659:4;19655:20;19651:1;19640:9;19636:17;19629:47;19693:131;19819:4;19693:131;:::i;:::-;19685:139;;19412:419;;;:::o;19837:220::-;19977:34;19973:1;19965:6;19961:14;19954:58;20046:3;20041:2;20033:6;20029:15;20022:28;19837:220;:::o;20063:366::-;20205:3;20226:67;20290:2;20285:3;20226:67;:::i;:::-;20219:74;;20302:93;20391:3;20302:93;:::i;:::-;20420:2;20415:3;20411:12;20404:19;;20063:366;;;:::o;20435:419::-;20601:4;20639:2;20628:9;20624:18;20616:26;;20688:9;20682:4;20678:20;20674:1;20663:9;20659:17;20652:47;20716:131;20842:4;20716:131;:::i;:::-;20708:139;;20435:419;;;:::o;20860:221::-;21000:34;20996:1;20988:6;20984:14;20977:58;21069:4;21064:2;21056:6;21052:15;21045:29;20860:221;:::o;21087:366::-;21229:3;21250:67;21314:2;21309:3;21250:67;:::i;:::-;21243:74;;21326:93;21415:3;21326:93;:::i;:::-;21444:2;21439:3;21435:12;21428:19;;21087:366;;;:::o;21459:419::-;21625:4;21663:2;21652:9;21648:18;21640:26;;21712:9;21706:4;21702:20;21698:1;21687:9;21683:17;21676:47;21740:131;21866:4;21740:131;:::i;:::-;21732:139;;21459:419;;;:::o;21884:224::-;22024:34;22020:1;22012:6;22008:14;22001:58;22093:7;22088:2;22080:6;22076:15;22069:32;21884:224;:::o;22114:366::-;22256:3;22277:67;22341:2;22336:3;22277:67;:::i;:::-;22270:74;;22353:93;22442:3;22353:93;:::i;:::-;22471:2;22466:3;22462:12;22455:19;;22114:366;;;:::o;22486:419::-;22652:4;22690:2;22679:9;22675:18;22667:26;;22739:9;22733:4;22729:20;22725:1;22714:9;22710:17;22703:47;22767:131;22893:4;22767:131;:::i;:::-;22759:139;;22486:419;;;:::o;22911:222::-;23051:34;23047:1;23039:6;23035:14;23028:58;23120:5;23115:2;23107:6;23103:15;23096:30;22911:222;:::o;23139:366::-;23281:3;23302:67;23366:2;23361:3;23302:67;:::i;:::-;23295:74;;23378:93;23467:3;23378:93;:::i;:::-;23496:2;23491:3;23487:12;23480:19;;23139:366;;;:::o;23511:419::-;23677:4;23715:2;23704:9;23700:18;23692:26;;23764:9;23758:4;23754:20;23750:1;23739:9;23735:17;23728:47;23792:131;23918:4;23792:131;:::i;:::-;23784:139;;23511:419;;;:::o;23936:225::-;24076:34;24072:1;24064:6;24060:14;24053:58;24145:8;24140:2;24132:6;24128:15;24121:33;23936:225;:::o;24167:366::-;24309:3;24330:67;24394:2;24389:3;24330:67;:::i;:::-;24323:74;;24406:93;24495:3;24406:93;:::i;:::-;24524:2;24519:3;24515:12;24508:19;;24167:366;;;:::o;24539:419::-;24705:4;24743:2;24732:9;24728:18;24720:26;;24792:9;24786:4;24782:20;24778:1;24767:9;24763:17;24756:47;24820:131;24946:4;24820:131;:::i;:::-;24812:139;;24539:419;;;:::o;24964:170::-;25104:22;25100:1;25092:6;25088:14;25081:46;24964:170;:::o;25140:366::-;25282:3;25303:67;25367:2;25362:3;25303:67;:::i;:::-;25296:74;;25379:93;25468:3;25379:93;:::i;:::-;25497:2;25492:3;25488:12;25481:19;;25140:366;;;:::o;25512:419::-;25678:4;25716:2;25705:9;25701:18;25693:26;;25765:9;25759:4;25755:20;25751:1;25740:9;25736:17;25729:47;25793:131;25919:4;25793:131;:::i;:::-;25785:139;;25512:419;;;:::o;25937:166::-;26077:18;26073:1;26065:6;26061:14;26054:42;25937:166;:::o;26109:366::-;26251:3;26272:67;26336:2;26331:3;26272:67;:::i;:::-;26265:74;;26348:93;26437:3;26348:93;:::i;:::-;26466:2;26461:3;26457:12;26450:19;;26109:366;;;:::o;26481:419::-;26647:4;26685:2;26674:9;26670:18;26662:26;;26734:9;26728:4;26724:20;26720:1;26709:9;26705:17;26698:47;26762:131;26888:4;26762:131;:::i;:::-;26754:139;;26481:419;;;:::o;26906:180::-;26954:77;26951:1;26944:88;27051:4;27048:1;27041:15;27075:4;27072:1;27065:15;27092:233;27131:3;27154:24;27172:5;27154:24;:::i;:::-;27145:33;;27200:66;27193:5;27190:77;27187:103;;27270:18;;:::i;:::-;27187:103;27317:1;27310:5;27306:13;27299:20;;27092:233;;;:::o;27331:229::-;27471:34;27467:1;27459:6;27455:14;27448:58;27540:12;27535:2;27527:6;27523:15;27516:37;27331:229;:::o;27566:366::-;27708:3;27729:67;27793:2;27788:3;27729:67;:::i;:::-;27722:74;;27805:93;27894:3;27805:93;:::i;:::-;27923:2;27918:3;27914:12;27907:19;;27566:366;;;:::o;27938:419::-;28104:4;28142:2;28131:9;28127:18;28119:26;;28191:9;28185:4;28181:20;28177:1;28166:9;28162:17;28155:47;28219:131;28345:4;28219:131;:::i;:::-;28211:139;;27938:419;;;:::o
Swarm Source
ipfs://4d286578bdeddc083f5bcdc2c5840ae963dc81db81b174de7402c87c069f1fca
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.