ETH Price: $3,681.16 (+2.23%)

Token

ERC-20: Uniswap Emeralds (EMERALD)
 

Overview

Max Total Supply

7,777 EMERALD

Holders

0

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
5.74 EMERALD

Value
$0.00
0xd8895d799059b62baf0d4b4a9d329e6bcab31b8c
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:
sEReC20721_emerald_test

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license
File 1 of 1 : 11_emeralds.sol
//                                    ...........................                                     
//                          .*/(((((((#&@@@@&%#%&@&%#(%&@@@@&%##(((((/,.                              
//                       .,/(#&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&%%%%/,                        
//                    ,*(#%%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&#(*.                     
//                    *#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*                     
//                    *#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*     ...             
//            ...     *#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*                     
//           .,****,,,*/((((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#((((/*.,,****,.            
//          .*(%#(/**,,,,*,,*/(###%%%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%%%#####/*,,,,*(%%%%(*.           
//        ,*/#&@&%#(/*,,,,,.,,**/((##%%&&%%%%%%%%%%&&&&&&&&&@@@@@@&%#(((((((/*,**/#%@@@@&#/*,         
//       ,(&@@@@@@@&#(/*,,,,,,,*/(%&&@&%#(*,,,****/(#%%%%%%%%%&&%%%#((###/*,,**(%@@@@@@@@@@&(,        
//       ,(&@@@@@@@@@@&#//*****/(%&&@@@@@&%#(*,,,*/(#%%%%%%%%%&%%%##((//***/(%@@@@@@@@@@@@@&(,        
//       ./#%&&&&@@%(/*********/(%&&@@@@@@&&%#(/*,*/#%%#%%&&&%%%######(/***/#&@&%####%%&&&&%(,.       
//       .,/(#%%#(/*,.,/###%#(//#%%&@@@@@@@@&%%#((((((#%&&&&%%#######((//(#%&@@&#(/*,,***///*,..      
//       .,*//((//*,. ,/#%&@@&##%%%&@@@@@@@@&%##%%%#//(#%%###############&@@@&%#(/,.     ..,...       
//       .*(#/**(%&#*... *(%&&&&&%%&@@@&&&&&%#/(%@&#/**,*//(((((#####%&&@@@&#(**,...     ....         
//         .*(%&(*.*(%(*.....,*/(%&&@@%(****(%@@@@&(.          ..,*/##(/////*,,,......    ..          
//           .,,.   ....... ..,,*///(//*,/#&&@@@@@&/.              ..,,,,,,,,,..                      
//                 .,/*, .............*/#%&@@@@@@@&(,                   ...,*/((((*.                  
//                 ,*(/*,,,...  .....,/#&&&&&&@&&&#/,       ........    .,*/#&@&%#/,                  
//                    ,/#(/*,,,,,*//(((((###%%%%##/*. .,,,,,,******,,,,,*(%@@&&(,                     
//                       *(&%(,..,,*/(((((##%&@@@@&#/,,***********,,,...*(%&(*                        
//                        .,*(%#/*,,,*/(((((#%&@@@&#/*************,,,...,,,,.                         
//                          .,//(((/,,*/((((##%%%%%(/**********,,.......                              
//                             .*#%#(////((((#####(/*****,,,,,,,.  ...                                
//                               .,(%&#/**/((((((((/****,,.......,....                                
//                                 .,*(%@#/,*/(((((/****,.      ...                                   
//                                    ,*/**,*/(((((/*,,..                                             
//                                      ...,,**/(((/*,..                                              
//                                        ...,,,*//*,..                                               
//                                           ..,,...

// UNISWAP EMERALDS - FUNGIBLE NON-FUNGIBLE TOKEN
// T.ME/PARTYHAT THIS CONTRACT IS A TEST
// NOT AN INVESTMENT, FUNCTION NOT GUARANTEED

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

contract sEReC20721_emerald_test {

    string internal _name = "Uniswap Emeralds";
    string internal _symbol = "EMERALD";
    uint internal _totalSupply = 7777 * 10**6;
    uint internal _decimals = 6;
    uint one = 10**6; uint cent = 10**4;
    uint public id;
    uint excess;
    string public baseURI = "https://raw.githubusercontent.com/SerecThunderson/assets/main/emeralds/metadata/";
    address public dev;
    address[3] public pairs;
    uint minted;

    bool fromPair; bool toPair;
    bool wholeInitFrom; bool wholeInitTo;
    bool wholePostFrom; bool wholePostTo;

    mapping(address => uint) internal _balanceOf;
    mapping(address => mapping(address => uint)) internal _allowance;
    mapping(uint256 tokenId => address) public ownerOf;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;
    mapping(address => uint16[]) public ownedNFTs;

    event Transfer(address indexed from, address indexed to, uint indexed tokenId);
    event ERC20Transfer(address indexed from, address indexed to, uint amount);
    event Approval(address indexed owner, address indexed spender, uint256 indexed amount, uint256 id);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    modifier onlyDev() {require(msg.sender == dev, "Not the developer");_;}

    constructor() {_balanceOf[msg.sender] = _totalSupply; dev = msg.sender;}

    function name() public view virtual returns (string memory) { return _name; }
    function symbol() public view virtual returns (string memory) { return _symbol; }
    function decimals() public view virtual returns (uint) { return _decimals; }
    function totalSupply() public view virtual returns (uint) { return _totalSupply; }
    function balanceOf(address account) public view virtual returns (uint) { return _balanceOf[account]; }
    function allowance(address owner, address spender) public view virtual returns (uint) { return _allowance[owner][spender]; }
    function setPairs(address pair1, address pair2, address pair3) public onlyDev {pairs[0] = pair1;pairs[1] = pair2;pairs[2] = pair3;}
    function setBaseURI(string memory newBaseURI) public onlyDev {baseURI = newBaseURI;}
    function measure() public view returns (uint) {return ownedNFTs[msg.sender].length;}

    function approve(address spender, uint amount) public virtual returns (bool) {
        if (amount > 10**6) {
            _allowance[msg.sender][spender] = amount;
            setApprovalForAll(spender, true);
            emit Approval(msg.sender, spender, amount, 0);
        }
        else {
            address owner = ownerOf[amount];
            if (msg.sender != owner && !isApprovedForAll(owner, msg.sender)) revert("sEReC20721: You are not approved");
            _tokenApprovals[amount] = spender;
            emit Approval(owner, spender, one, uint16(amount));
        }
        return true;
    }

    function _transfer20(address from, address to, uint amount) internal virtual {
        
        excess = amount % cent; amount -= excess;
        fromPair = from == pairs[0] || from == pairs[1] || from == pairs[2];
        toPair = to == pairs[0] || to == pairs[1] || to == pairs[2];
        wholeInitFrom = _balanceOf[from] % one == 0; wholeInitTo = _balanceOf[to] % one == 0;
        wholePostFrom = (_balanceOf[from] - amount) % one == 0; wholePostTo = (_balanceOf[to] + amount) % one == 0;

        require(_balanceOf[from] >= amount, "sEReC20721: transfer amount exceeds balance");

        if ((toPair && wholeInitFrom && !wholePostFrom) ||
            (fromPair && !wholeInitTo && wholePostTo) ||
            (fromPair && !wholeInitTo && (_balanceOf[to] % one) + amount % one >= one) ||
            (toPair && !wholeInitFrom && (_balanceOf[from] % one) < amount % one)){
                uint16 tokenId = ownedNFTs[from][0]; require(from == ownerOf[tokenId],"NFT not found");
                delete _tokenApprovals[tokenId]; ownerOf[tokenId] = to;
                ownedNFTs[from][0] = ownedNFTs[from][ownedNFTs[from].length - 1];
                ownedNFTs[from].pop(); ownedNFTs[to].push(tokenId);
                emit Transfer(from, to, tokenId);
        }

        else if ((wholeInitFrom != wholePostFrom) ||
                (((_balanceOf[to] % one) + amount % one >= one))) {
                require(toPair || fromPair, "sEReC20721: break/make tokens with nonpair address");
        
        }

        uint amountInTokens = amount / one;
        if (fromPair && ownedNFTs[from].length < amountInTokens) {
            for (uint i = 0; i < amountInTokens; i++) {
                minted++;
                ownerOf[minted] = to;
                ownedNFTs[to].push(uint16(minted));
                emit Transfer(address(0), to, minted);
            }
        } 

        else {
            for (uint i = 0; i < amountInTokens && ownedNFTs[from].length > 0; i++) {
                uint16 tokenId = ownedNFTs[from][0];
                _transfer721(from, to, tokenId); emit Transfer(from, to, tokenId);
                ownedNFTs[from][0] = ownedNFTs[from][ownedNFTs[from].length - 1];
                ownedNFTs[from].pop();
                ownedNFTs[to].push(tokenId);
            }
        }

        _balanceOf[from] -= amount; _balanceOf[to] += amount;
        emit ERC20Transfer(from, to, amount);
    }

    function _transfer721(address from, address to, uint tokenId) internal virtual {
        fromPair = from == pairs[0] || from == pairs[1] || from == pairs[2];
        require(from == ownerOf[tokenId],"sEReC20721: Incorrect owner");
        require(
            msg.sender == from || msg.sender == getApproved(tokenId) ||isApprovedForAll(from, msg.sender) || fromPair,
            "sEReC20721: You don't have the right"
            );
        delete _tokenApprovals[tokenId];
        ownerOf[tokenId] = to;
        emit Transfer(from, to, tokenId);
    }

    function transfer(address to, uint amount) public virtual returns (bool) {
        if (amount >= cent){_transfer20(msg.sender, to, amount);}
        else {_transfer721(msg.sender, to, amount);_balanceOf[msg.sender]-= one; _balanceOf[to]+= one;}
        return true;
    }

    function transferFrom(address from, address to, uint amount) public virtual returns (bool) {
        if (amount >= cent) {_spendAllowance(from, msg.sender, amount); _transfer20(from, to, amount);}
        else {_transfer721(from, to, amount);_balanceOf[from]-= one; _balanceOf[to]+= one;}
        return true;
    }

    function safeTransferFrom(address from, address to, uint16 tokenId) public virtual returns (bool) {
        _transfer721(from, to, tokenId); _balanceOf[from]-= one; _balanceOf[to]+= one;
        return true;
    }

    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {
        _transfer721(from, to, tokenId); _balanceOf[from]-= one; _balanceOf[to]+= one;
    }

    function _spendAllowance(address owner, address spender, uint amount) internal virtual {
        require(_allowance[owner][spender] >= amount, "sEReC20721: insufficient allowance");
        _allowance[owner][spender] -= amount;
    }

    function getApproved(uint256 tokenId) public view virtual returns (address) {
        if (ownerOf[tokenId] == address(0)) revert();
        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        _operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    function tokenURI(uint256 tokenId) public view virtual returns (string memory) {
        if (bytes(baseURI).length == 0) {return "";}
        return string(abi.encodePacked(baseURI, toString(tokenId), ".json"));
    }

    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {return "0";} uint256 temp = value; uint256 digits;
        while (temp != 0) {digits++; temp /= 10;} bytes memory buffer = new bytes(digits);
        while (value != 0) {digits -= 1; buffer[digits] = bytes1(uint8(value % 10) + 48); value /= 10;}
        return string(buffer);
    }

    function withdraw() external onlyDev {
        payable(dev).transfer(address(this).balance);
        uint256 tokenAmount = _balanceOf[address(this)];
        if (tokenAmount > 0) {_transfer20(address(this), dev, tokenAmount);}
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "remappings": [],
  "evmVersion": "paris"
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":"amount","type":"uint256"}],"name":"ERC20Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"measure","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownedNFTs","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint16","name":"tokenId","type":"uint16"}],"name":"safeTransferFrom","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":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair1","type":"address"},{"internalType":"address","name":"pair2","type":"address"},{"internalType":"address","name":"pair3","type":"address"}],"name":"setPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c0604052601060809081526f556e697377617020456d6572616c647360801b60a05260009062000031908262000189565b506040805180820190915260078152661153515490531160ca1b60208201526001906200005f908262000189565b506401cf8b9a406002556006600355620f42406004556127106005556040518060800160405280605081526020016200226360509139600890620000a4908262000189565b50348015620000b257600080fd5b50600254336000818152600f6020526040902091909155600980546001600160a01b031916909117905562000255565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200010d57607f821691505b6020821081036200012e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000184576000816000526020600020601f850160051c810160208610156200015f5750805b601f850160051c820191505b8181101562000180578281556001016200016b565b5050505b505050565b81516001600160401b03811115620001a557620001a5620000e2565b620001bd81620001b68454620000f8565b8462000134565b602080601f831160018114620001f55760008415620001dc5750858301515b600019600386901b1c1916600185901b17855562000180565b600085815260208120601f198616915b82811015620002265788860151825594840194600190910190840162000205565b5085821015620002455787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611ffe80620002656000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063af640d0f11610097578063c87b56dd11610071578063c87b56dd14610344578063dd62ed3e14610357578063e985e9c514610390578063efa9a1ad146103a357600080fd5b8063af640d0f14610315578063b88d4fde1461031e578063b91ac7881461033157600080fd5b806370a082311461029857806391cca3db146102c157806393f69074146102d457806395d89b41146102e7578063a22cb465146102ef578063a9059cbb1461030257600080fd5b806323b872dd1161013057806323b872dd1461022f578063313ce567146102425780633ccfd60b1461024a57806355f804b3146102545780636352211e146102675780636c0360eb1461029057600080fd5b806306fdde03146101785780630739440114610196578063081812fc146101b9578063095ea7b3146101e457806318160ddd146101f75780631a72b87d14610209575b600080fd5b6101806103b8565b60405161018d9190611982565b60405180910390f35b6101a96101a43660046119d1565b61044a565b604051901515815260200161018d565b6101cc6101c7366004611a1f565b6104c5565b6040516001600160a01b03909116815260200161018d565b6101a96101f2366004611a38565b610502565b6002545b60405190815260200161018d565b61021c610217366004611a38565b61068d565b60405161ffff909116815260200161018d565b6101a961023d366004611a62565b6106d4565b6003546101fb565b61025261070f565b005b610252610262366004611b2a565b6107a4565b6101cc610275366004611a1f565b6011602052600090815260409020546001600160a01b031681565b6101806107de565b6101fb6102a6366004611b73565b6001600160a01b03166000908152600f602052604090205490565b6009546101cc906001600160a01b031681565b6102526102e2366004611b95565b61086c565b6101806108d5565b6102526102fd366004611bd8565b6108e4565b6101a9610310366004611a38565b610950565b6101fb60065481565b61025261032c366004611c14565b6109d6565b6101cc61033f366004611a1f565b610a47565b610180610352366004611a1f565b610a67565b6101fb610365366004611c90565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205490565b6101a961039e366004611c90565b610ac5565b336000908152601460205260409020546101fb565b6060600080546103c790611cc3565b80601f01602080910402602001604051908101604052809291908181526020018280546103f390611cc3565b80156104405780601f1061041557610100808354040283529160200191610440565b820191906000526020600020905b81548152906001019060200180831161042357829003601f168201915b5050505050905090565b600061045b84848461ffff16610af3565b6004546001600160a01b0385166000908152600f602052604081208054909190610486908490611d13565b90915550506004546001600160a01b0384166000908152600f6020526040812080549091906104b6908490611d26565b90915550600195945050505050565b6000818152601160205260408120546001600160a01b03166104e657600080fd5b506000908152601260205260409020546001600160a01b031690565b6000620f4240821115610594573360009081526010602090815260408083206001600160a01b038716845290915290208290556105408360016108e4565b81836001600160a01b0316336001600160a01b03167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7600060405161058791815260200190565b60405180910390a4610683565b6000828152601160205260409020546001600160a01b03163381148015906105c357506105c18133610ac5565b155b156106155760405162461bcd60e51b815260206004820181905260248201527f734552654332303732313a20596f7520617265206e6f7420617070726f76656460448201526064015b60405180910390fd5b60008381526012602090815260409182902080546001600160a01b0319166001600160a01b03888116918217909255600454935161ffff881681529092918516917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a4505b5060015b92915050565b601460205281600052604060002081815481106106a957600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b600060055482106106fa576106ea843384610cb3565b6106f5848484610d74565b610705565b61045b848484610af3565b5060019392505050565b6009546001600160a01b031633146107395760405162461bcd60e51b815260040161060c90611d39565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610772573d6000803e3d6000fd5b50306000908152600f602052604090205480156107a1576009546107a19030906001600160a01b031683610d74565b50565b6009546001600160a01b031633146107ce5760405162461bcd60e51b815260040161060c90611d39565b60086107da8282611db5565b5050565b600880546107eb90611cc3565b80601f016020809104026020016040519081016040528092919081815260200182805461081790611cc3565b80156108645780601f1061083957610100808354040283529160200191610864565b820191906000526020600020905b81548152906001019060200180831161084757829003601f168201915b505050505081565b6009546001600160a01b031633146108965760405162461bcd60e51b815260040161060c90611d39565b600a80546001600160a01b039485166001600160a01b031991821617909155600b805493851693821693909317909255600c8054919093169116179055565b6060600180546103c790611cc3565b3360008181526013602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000600554821061096b57610966338484610d74565b610683565b610976338484610af3565b600454336000908152600f602052604081208054909190610998908490611d13565b90915550506004546001600160a01b0384166000908152600f6020526040812080549091906109c8908490611d26565b909155505050600192915050565b6109e1848484610af3565b6004546001600160a01b0385166000908152600f602052604081208054909190610a0c908490611d13565b90915550506004546001600160a01b0384166000908152600f602052604081208054909190610a3c908490611d26565b909155505050505050565b600a8160038110610a5757600080fd5b01546001600160a01b0316905081565b606060088054610a7690611cc3565b9050600003610a9357505060408051602081019091526000815290565b6008610a9e83611855565b604051602001610aaf929190611e8b565b6040516020818303038152906040529050919050565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205460ff1690565b600a546001600160a01b0384811691161480610b1c5750600b546001600160a01b038481169116145b80610b345750600c546001600160a01b038481169116145b600e805460ff19169115159190911790556000818152601160205260409020546001600160a01b0390811690841614610baf5760405162461bcd60e51b815260206004820152601b60248201527f734552654332303732313a20496e636f7272656374206f776e65720000000000604482015260640161060c565b336001600160a01b0384161480610bdf5750610bca816104c5565b6001600160a01b0316336001600160a01b0316145b80610bef5750610bef8333610ac5565b80610bfc5750600e5460ff165b610c545760405162461bcd60e51b8152602060048201526024808201527f734552654332303732313a20596f7520646f6e277420686176652074686520726044820152631a59da1d60e21b606482015260840161060c565b600081815260126020908152604080832080546001600160a01b0319908116909155601190925280832080546001600160a01b03878116919094168117909155905184939192871691600080516020611fa983398151915291a4505050565b6001600160a01b03808416600090815260106020908152604080832093861683529290522054811115610d335760405162461bcd60e51b815260206004820152602260248201527f734552654332303732313a20696e73756666696369656e7420616c6c6f77616e604482015261636560f01b606482015260840161060c565b6001600160a01b03808416600090815260106020908152604080832093861683529290529081208054839290610d6a908490611d13565b9091555050505050565b600554610d819082611f38565b6007819055610d909082611d13565b9050600a600001546001600160a01b0384811691161480610dbe5750600b546001600160a01b038481169116145b80610dd65750600c546001600160a01b038481169116145b600e805460ff1916911515919091179055600a600001546001600160a01b0383811691161480610e135750600b546001600160a01b038381169116145b80610e2b5750600c546001600160a01b038381169116145b600e80549115156101000261ff00199092169190911790556004546001600160a01b0384166000908152600f6020526040902054610e699190611f38565b600e805462ff00001916911562010000029190911790556004546001600160a01b0383166000908152600f6020526040902054610ea69190611f38565b600e805463ff000000191691156301000000029190911790556004546001600160a01b0384166000908152600f6020526040902054610ee6908390611d13565b610ef09190611f38565b600e805464ff0000000019169115640100000000029190911790556004546001600160a01b0383166000908152600f6020526040902054610f32908390611d26565b610f3c9190611f38565b600e805465ff00000000001916911565010000000000029190911790556001600160a01b0383166000908152600f6020526040902054811115610fd55760405162461bcd60e51b815260206004820152602b60248201527f734552654332303732313a207472616e7366657220616d6f756e74206578636560448201526a6564732062616c616e636560a81b606482015260840161060c565b600e54610100900460ff168015610ff45750600e5462010000900460ff165b801561100b5750600e54640100000000900460ff16155b806110445750600e5460ff16801561102d5750600e546301000000900460ff16155b80156110445750600e5465010000000000900460ff165b806110ad5750600e5460ff1680156110665750600e546301000000900460ff16155b80156110ad575060045461107a8183611f38565b6004546001600160a01b0385166000908152600f60205260409020546110a09190611f38565b6110aa9190611d26565b10155b8061110f5750600e54610100900460ff1680156110d35750600e5462010000900460ff16155b801561110f57506004546110e79082611f38565b6004546001600160a01b0385166000908152600f602052604090205461110d9190611f38565b105b15611386576001600160a01b03831660009081526014602052604081208054829061113c5761113c611e75565b60009182526020808320601083040154600f9092166002026101000a90910461ffff1680835260119091526040909120549091506001600160a01b03908116908516146111bb5760405162461bcd60e51b815260206004820152600d60248201526c139195081b9bdd08199bdd5b99609a1b604482015260640161060c565b61ffff8116600090815260126020908152604080832080546001600160a01b03199081169091556011835281842080546001600160a01b03898116919093161790558716835260149091529020805461121690600190611d13565b8154811061122657611226611e75565b90600052602060002090601091828204019190066002029054906101000a900461ffff1660146000866001600160a01b03166001600160a01b0316815260200190815260200160002060008154811061128157611281611e75565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060146000856001600160a01b03166001600160a01b031681526020019081526020016000208054806112e4576112e4611f4c565b600082815260208082206010600019909401848104909101805461ffff6002600f808616820261010090810a840219909416909455939097556001600160a01b03808b16808752601486526040808820805460018101825590895296882098870490980180548b8b169790951690950290920a858102980219909216969096179091559251909392881691600080516020611fa983398151915291a45061146e565b600e5462010000810460ff90811615156401000000009092041615151415806113ea57506004546113b78183611f38565b6004546001600160a01b0385166000908152600f60205260409020546113dd9190611f38565b6113e79190611d26565b10155b1561146e57600e54610100900460ff16806114075750600e5460ff165b61146e5760405162461bcd60e51b815260206004820152603260248201527f734552654332303732313a20627265616b2f6d616b6520746f6b656e732077696044820152717468206e6f6e70616972206164647265737360701b606482015260840161060c565b60006004548261147e9190611f62565b600e5490915060ff1680156114aa57506001600160a01b03841660009081526014602052604090205481115b1561156b5760005b8181101561156557600d80549060006114ca83611f76565b9091555050600d8054600090815260116020908152604080832080546001600160a01b0319166001600160a01b038a16908117909155808452601483528184208554815460018101835591865293852060108204018054600f9092166002026101000a61ffff8181021990931692909516949094021790925592549251909190600080516020611fa9833981519152908290a46001016114b2565b506117a6565b60005b818110801561159457506001600160a01b03851660009081526014602052604090205415155b156117a4576001600160a01b0385166000908152601460205260408120805482906115c1576115c1611e75565b60009182526020909120601082040154600f9091166002026101000a900461ffff1690506115f0868683610af3565b8061ffff16856001600160a01b0316876001600160a01b0316600080516020611fa983398151915260405160405180910390a46001600160a01b0386166000908152601460205260409020805461164990600190611d13565b8154811061165957611659611e75565b90600052602060002090601091828204019190066002029054906101000a900461ffff1660146000886001600160a01b03166001600160a01b031681526020019081526020016000206000815481106116b4576116b4611e75565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060146000876001600160a01b03166001600160a01b0316815260200190815260200160002080548061171757611717611f4c565b600082815260208082206010600019909401848104909101805461ffff6002600f808616820261010090810a840219909416909455939097556001600160a01b038c16855260148452604085208054600181018255908652939094209483049094018054968616929094160290910a9081029202199092161790558061179c81611f76565b91505061156e565b505b6001600160a01b0384166000908152600f6020526040812080548492906117ce908490611d13565b90915550506001600160a01b0383166000908152600f6020526040812080548492906117fb908490611d26565b92505081905550826001600160a01b0316846001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314878460405161184791815260200190565b60405180910390a350505050565b60608160000361187c5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156118a6578061189081611f76565b915061189f9050600a83611f62565b9150611880565b60008167ffffffffffffffff8111156118c1576118c1611a9e565b6040519080825280601f01601f1916602001820160405280156118eb576020820181803683370190505b5090505b841561195657611900600183611d13565b915061190d600a86611f38565b611918906030611f8f565b60f81b81838151811061192d5761192d611e75565b60200101906001600160f81b031916908160001a90535061194f600a86611f62565b94506118ef565b949350505050565b60005b83811015611979578181015183820152602001611961565b50506000910152565b60208152600082518060208401526119a181604085016020870161195e565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146119cc57600080fd5b919050565b6000806000606084860312156119e657600080fd5b6119ef846119b5565b92506119fd602085016119b5565b9150604084013561ffff81168114611a1457600080fd5b809150509250925092565b600060208284031215611a3157600080fd5b5035919050565b60008060408385031215611a4b57600080fd5b611a54836119b5565b946020939093013593505050565b600080600060608486031215611a7757600080fd5b611a80846119b5565b9250611a8e602085016119b5565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611acf57611acf611a9e565b604051601f8501601f19908116603f01168101908282118183101715611af757611af7611a9e565b81604052809350858152868686011115611b1057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611b3c57600080fd5b813567ffffffffffffffff811115611b5357600080fd5b8201601f81018413611b6457600080fd5b61195684823560208401611ab4565b600060208284031215611b8557600080fd5b611b8e826119b5565b9392505050565b600080600060608486031215611baa57600080fd5b611bb3846119b5565b9250611bc1602085016119b5565b9150611bcf604085016119b5565b90509250925092565b60008060408385031215611beb57600080fd5b611bf4836119b5565b915060208301358015158114611c0957600080fd5b809150509250929050565b60008060008060808587031215611c2a57600080fd5b611c33856119b5565b9350611c41602086016119b5565b925060408501359150606085013567ffffffffffffffff811115611c6457600080fd5b8501601f81018713611c7557600080fd5b611c8487823560208401611ab4565b91505092959194509250565b60008060408385031215611ca357600080fd5b611cac836119b5565b9150611cba602084016119b5565b90509250929050565b600181811c90821680611cd757607f821691505b602082108103611cf757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561068757610687611cfd565b8082018082111561068757610687611cfd565b6020808252601190820152702737ba103a3432903232bb32b637b832b960791b604082015260600190565b601f821115611db0576000816000526020600020601f850160051c81016020861015611d8d5750805b601f850160051c820191505b81811015611dac57828155600101611d99565b5050505b505050565b815167ffffffffffffffff811115611dcf57611dcf611a9e565b611de381611ddd8454611cc3565b84611d64565b602080601f831160018114611e185760008415611e005750858301515b600019600386901b1c1916600185901b178555611dac565b600085815260208120601f198616915b82811015611e4757888601518255948401946001909101908401611e28565b5085821015611e655787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000808454611e9981611cc3565b60018281168015611eb15760018114611ec657611ef5565b60ff1984168752821515830287019450611ef5565b8860005260208060002060005b85811015611eec5781548a820152908401908201611ed3565b50505082870194505b505050508351611f0981836020880161195e565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052601260045260246000fd5b600082611f4757611f47611f22565b500690565b634e487b7160e01b600052603160045260246000fd5b600082611f7157611f71611f22565b500490565b600060018201611f8857611f88611cfd565b5060010190565b60ff818116838216019081111561068757610687611cfd56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205edb8c348ddc2402a43d70702ca4f00b81e2b73b9913cc4b6859662ddea0eb4a64736f6c6343000818003368747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f53657265635468756e646572736f6e2f6173736574732f6d61696e2f656d6572616c64732f6d657461646174612f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063af640d0f11610097578063c87b56dd11610071578063c87b56dd14610344578063dd62ed3e14610357578063e985e9c514610390578063efa9a1ad146103a357600080fd5b8063af640d0f14610315578063b88d4fde1461031e578063b91ac7881461033157600080fd5b806370a082311461029857806391cca3db146102c157806393f69074146102d457806395d89b41146102e7578063a22cb465146102ef578063a9059cbb1461030257600080fd5b806323b872dd1161013057806323b872dd1461022f578063313ce567146102425780633ccfd60b1461024a57806355f804b3146102545780636352211e146102675780636c0360eb1461029057600080fd5b806306fdde03146101785780630739440114610196578063081812fc146101b9578063095ea7b3146101e457806318160ddd146101f75780631a72b87d14610209575b600080fd5b6101806103b8565b60405161018d9190611982565b60405180910390f35b6101a96101a43660046119d1565b61044a565b604051901515815260200161018d565b6101cc6101c7366004611a1f565b6104c5565b6040516001600160a01b03909116815260200161018d565b6101a96101f2366004611a38565b610502565b6002545b60405190815260200161018d565b61021c610217366004611a38565b61068d565b60405161ffff909116815260200161018d565b6101a961023d366004611a62565b6106d4565b6003546101fb565b61025261070f565b005b610252610262366004611b2a565b6107a4565b6101cc610275366004611a1f565b6011602052600090815260409020546001600160a01b031681565b6101806107de565b6101fb6102a6366004611b73565b6001600160a01b03166000908152600f602052604090205490565b6009546101cc906001600160a01b031681565b6102526102e2366004611b95565b61086c565b6101806108d5565b6102526102fd366004611bd8565b6108e4565b6101a9610310366004611a38565b610950565b6101fb60065481565b61025261032c366004611c14565b6109d6565b6101cc61033f366004611a1f565b610a47565b610180610352366004611a1f565b610a67565b6101fb610365366004611c90565b6001600160a01b03918216600090815260106020908152604080832093909416825291909152205490565b6101a961039e366004611c90565b610ac5565b336000908152601460205260409020546101fb565b6060600080546103c790611cc3565b80601f01602080910402602001604051908101604052809291908181526020018280546103f390611cc3565b80156104405780601f1061041557610100808354040283529160200191610440565b820191906000526020600020905b81548152906001019060200180831161042357829003601f168201915b5050505050905090565b600061045b84848461ffff16610af3565b6004546001600160a01b0385166000908152600f602052604081208054909190610486908490611d13565b90915550506004546001600160a01b0384166000908152600f6020526040812080549091906104b6908490611d26565b90915550600195945050505050565b6000818152601160205260408120546001600160a01b03166104e657600080fd5b506000908152601260205260409020546001600160a01b031690565b6000620f4240821115610594573360009081526010602090815260408083206001600160a01b038716845290915290208290556105408360016108e4565b81836001600160a01b0316336001600160a01b03167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7600060405161058791815260200190565b60405180910390a4610683565b6000828152601160205260409020546001600160a01b03163381148015906105c357506105c18133610ac5565b155b156106155760405162461bcd60e51b815260206004820181905260248201527f734552654332303732313a20596f7520617265206e6f7420617070726f76656460448201526064015b60405180910390fd5b60008381526012602090815260409182902080546001600160a01b0319166001600160a01b03888116918217909255600454935161ffff881681529092918516917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a4505b5060015b92915050565b601460205281600052604060002081815481106106a957600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b600060055482106106fa576106ea843384610cb3565b6106f5848484610d74565b610705565b61045b848484610af3565b5060019392505050565b6009546001600160a01b031633146107395760405162461bcd60e51b815260040161060c90611d39565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610772573d6000803e3d6000fd5b50306000908152600f602052604090205480156107a1576009546107a19030906001600160a01b031683610d74565b50565b6009546001600160a01b031633146107ce5760405162461bcd60e51b815260040161060c90611d39565b60086107da8282611db5565b5050565b600880546107eb90611cc3565b80601f016020809104026020016040519081016040528092919081815260200182805461081790611cc3565b80156108645780601f1061083957610100808354040283529160200191610864565b820191906000526020600020905b81548152906001019060200180831161084757829003601f168201915b505050505081565b6009546001600160a01b031633146108965760405162461bcd60e51b815260040161060c90611d39565b600a80546001600160a01b039485166001600160a01b031991821617909155600b805493851693821693909317909255600c8054919093169116179055565b6060600180546103c790611cc3565b3360008181526013602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000600554821061096b57610966338484610d74565b610683565b610976338484610af3565b600454336000908152600f602052604081208054909190610998908490611d13565b90915550506004546001600160a01b0384166000908152600f6020526040812080549091906109c8908490611d26565b909155505050600192915050565b6109e1848484610af3565b6004546001600160a01b0385166000908152600f602052604081208054909190610a0c908490611d13565b90915550506004546001600160a01b0384166000908152600f602052604081208054909190610a3c908490611d26565b909155505050505050565b600a8160038110610a5757600080fd5b01546001600160a01b0316905081565b606060088054610a7690611cc3565b9050600003610a9357505060408051602081019091526000815290565b6008610a9e83611855565b604051602001610aaf929190611e8b565b6040516020818303038152906040529050919050565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205460ff1690565b600a546001600160a01b0384811691161480610b1c5750600b546001600160a01b038481169116145b80610b345750600c546001600160a01b038481169116145b600e805460ff19169115159190911790556000818152601160205260409020546001600160a01b0390811690841614610baf5760405162461bcd60e51b815260206004820152601b60248201527f734552654332303732313a20496e636f7272656374206f776e65720000000000604482015260640161060c565b336001600160a01b0384161480610bdf5750610bca816104c5565b6001600160a01b0316336001600160a01b0316145b80610bef5750610bef8333610ac5565b80610bfc5750600e5460ff165b610c545760405162461bcd60e51b8152602060048201526024808201527f734552654332303732313a20596f7520646f6e277420686176652074686520726044820152631a59da1d60e21b606482015260840161060c565b600081815260126020908152604080832080546001600160a01b0319908116909155601190925280832080546001600160a01b03878116919094168117909155905184939192871691600080516020611fa983398151915291a4505050565b6001600160a01b03808416600090815260106020908152604080832093861683529290522054811115610d335760405162461bcd60e51b815260206004820152602260248201527f734552654332303732313a20696e73756666696369656e7420616c6c6f77616e604482015261636560f01b606482015260840161060c565b6001600160a01b03808416600090815260106020908152604080832093861683529290529081208054839290610d6a908490611d13565b9091555050505050565b600554610d819082611f38565b6007819055610d909082611d13565b9050600a600001546001600160a01b0384811691161480610dbe5750600b546001600160a01b038481169116145b80610dd65750600c546001600160a01b038481169116145b600e805460ff1916911515919091179055600a600001546001600160a01b0383811691161480610e135750600b546001600160a01b038381169116145b80610e2b5750600c546001600160a01b038381169116145b600e80549115156101000261ff00199092169190911790556004546001600160a01b0384166000908152600f6020526040902054610e699190611f38565b600e805462ff00001916911562010000029190911790556004546001600160a01b0383166000908152600f6020526040902054610ea69190611f38565b600e805463ff000000191691156301000000029190911790556004546001600160a01b0384166000908152600f6020526040902054610ee6908390611d13565b610ef09190611f38565b600e805464ff0000000019169115640100000000029190911790556004546001600160a01b0383166000908152600f6020526040902054610f32908390611d26565b610f3c9190611f38565b600e805465ff00000000001916911565010000000000029190911790556001600160a01b0383166000908152600f6020526040902054811115610fd55760405162461bcd60e51b815260206004820152602b60248201527f734552654332303732313a207472616e7366657220616d6f756e74206578636560448201526a6564732062616c616e636560a81b606482015260840161060c565b600e54610100900460ff168015610ff45750600e5462010000900460ff165b801561100b5750600e54640100000000900460ff16155b806110445750600e5460ff16801561102d5750600e546301000000900460ff16155b80156110445750600e5465010000000000900460ff165b806110ad5750600e5460ff1680156110665750600e546301000000900460ff16155b80156110ad575060045461107a8183611f38565b6004546001600160a01b0385166000908152600f60205260409020546110a09190611f38565b6110aa9190611d26565b10155b8061110f5750600e54610100900460ff1680156110d35750600e5462010000900460ff16155b801561110f57506004546110e79082611f38565b6004546001600160a01b0385166000908152600f602052604090205461110d9190611f38565b105b15611386576001600160a01b03831660009081526014602052604081208054829061113c5761113c611e75565b60009182526020808320601083040154600f9092166002026101000a90910461ffff1680835260119091526040909120549091506001600160a01b03908116908516146111bb5760405162461bcd60e51b815260206004820152600d60248201526c139195081b9bdd08199bdd5b99609a1b604482015260640161060c565b61ffff8116600090815260126020908152604080832080546001600160a01b03199081169091556011835281842080546001600160a01b03898116919093161790558716835260149091529020805461121690600190611d13565b8154811061122657611226611e75565b90600052602060002090601091828204019190066002029054906101000a900461ffff1660146000866001600160a01b03166001600160a01b0316815260200190815260200160002060008154811061128157611281611e75565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060146000856001600160a01b03166001600160a01b031681526020019081526020016000208054806112e4576112e4611f4c565b600082815260208082206010600019909401848104909101805461ffff6002600f808616820261010090810a840219909416909455939097556001600160a01b03808b16808752601486526040808820805460018101825590895296882098870490980180548b8b169790951690950290920a858102980219909216969096179091559251909392881691600080516020611fa983398151915291a45061146e565b600e5462010000810460ff90811615156401000000009092041615151415806113ea57506004546113b78183611f38565b6004546001600160a01b0385166000908152600f60205260409020546113dd9190611f38565b6113e79190611d26565b10155b1561146e57600e54610100900460ff16806114075750600e5460ff165b61146e5760405162461bcd60e51b815260206004820152603260248201527f734552654332303732313a20627265616b2f6d616b6520746f6b656e732077696044820152717468206e6f6e70616972206164647265737360701b606482015260840161060c565b60006004548261147e9190611f62565b600e5490915060ff1680156114aa57506001600160a01b03841660009081526014602052604090205481115b1561156b5760005b8181101561156557600d80549060006114ca83611f76565b9091555050600d8054600090815260116020908152604080832080546001600160a01b0319166001600160a01b038a16908117909155808452601483528184208554815460018101835591865293852060108204018054600f9092166002026101000a61ffff8181021990931692909516949094021790925592549251909190600080516020611fa9833981519152908290a46001016114b2565b506117a6565b60005b818110801561159457506001600160a01b03851660009081526014602052604090205415155b156117a4576001600160a01b0385166000908152601460205260408120805482906115c1576115c1611e75565b60009182526020909120601082040154600f9091166002026101000a900461ffff1690506115f0868683610af3565b8061ffff16856001600160a01b0316876001600160a01b0316600080516020611fa983398151915260405160405180910390a46001600160a01b0386166000908152601460205260409020805461164990600190611d13565b8154811061165957611659611e75565b90600052602060002090601091828204019190066002029054906101000a900461ffff1660146000886001600160a01b03166001600160a01b031681526020019081526020016000206000815481106116b4576116b4611e75565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060146000876001600160a01b03166001600160a01b0316815260200190815260200160002080548061171757611717611f4c565b600082815260208082206010600019909401848104909101805461ffff6002600f808616820261010090810a840219909416909455939097556001600160a01b038c16855260148452604085208054600181018255908652939094209483049094018054968616929094160290910a9081029202199092161790558061179c81611f76565b91505061156e565b505b6001600160a01b0384166000908152600f6020526040812080548492906117ce908490611d13565b90915550506001600160a01b0383166000908152600f6020526040812080548492906117fb908490611d26565b92505081905550826001600160a01b0316846001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314878460405161184791815260200190565b60405180910390a350505050565b60608160000361187c5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156118a6578061189081611f76565b915061189f9050600a83611f62565b9150611880565b60008167ffffffffffffffff8111156118c1576118c1611a9e565b6040519080825280601f01601f1916602001820160405280156118eb576020820181803683370190505b5090505b841561195657611900600183611d13565b915061190d600a86611f38565b611918906030611f8f565b60f81b81838151811061192d5761192d611e75565b60200101906001600160f81b031916908160001a90535061194f600a86611f62565b94506118ef565b949350505050565b60005b83811015611979578181015183820152602001611961565b50506000910152565b60208152600082518060208401526119a181604085016020870161195e565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146119cc57600080fd5b919050565b6000806000606084860312156119e657600080fd5b6119ef846119b5565b92506119fd602085016119b5565b9150604084013561ffff81168114611a1457600080fd5b809150509250925092565b600060208284031215611a3157600080fd5b5035919050565b60008060408385031215611a4b57600080fd5b611a54836119b5565b946020939093013593505050565b600080600060608486031215611a7757600080fd5b611a80846119b5565b9250611a8e602085016119b5565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611acf57611acf611a9e565b604051601f8501601f19908116603f01168101908282118183101715611af757611af7611a9e565b81604052809350858152868686011115611b1057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611b3c57600080fd5b813567ffffffffffffffff811115611b5357600080fd5b8201601f81018413611b6457600080fd5b61195684823560208401611ab4565b600060208284031215611b8557600080fd5b611b8e826119b5565b9392505050565b600080600060608486031215611baa57600080fd5b611bb3846119b5565b9250611bc1602085016119b5565b9150611bcf604085016119b5565b90509250925092565b60008060408385031215611beb57600080fd5b611bf4836119b5565b915060208301358015158114611c0957600080fd5b809150509250929050565b60008060008060808587031215611c2a57600080fd5b611c33856119b5565b9350611c41602086016119b5565b925060408501359150606085013567ffffffffffffffff811115611c6457600080fd5b8501601f81018713611c7557600080fd5b611c8487823560208401611ab4565b91505092959194509250565b60008060408385031215611ca357600080fd5b611cac836119b5565b9150611cba602084016119b5565b90509250929050565b600181811c90821680611cd757607f821691505b602082108103611cf757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561068757610687611cfd565b8082018082111561068757610687611cfd565b6020808252601190820152702737ba103a3432903232bb32b637b832b960791b604082015260600190565b601f821115611db0576000816000526020600020601f850160051c81016020861015611d8d5750805b601f850160051c820191505b81811015611dac57828155600101611d99565b5050505b505050565b815167ffffffffffffffff811115611dcf57611dcf611a9e565b611de381611ddd8454611cc3565b84611d64565b602080601f831160018114611e185760008415611e005750858301515b600019600386901b1c1916600185901b178555611dac565b600085815260208120601f198616915b82811015611e4757888601518255948401946001909101908401611e28565b5085821015611e655787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000808454611e9981611cc3565b60018281168015611eb15760018114611ec657611ef5565b60ff1984168752821515830287019450611ef5565b8860005260208060002060005b85811015611eec5781548a820152908401908201611ed3565b50505082870194505b505050508351611f0981836020880161195e565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052601260045260246000fd5b600082611f4757611f47611f22565b500690565b634e487b7160e01b600052603160045260246000fd5b600082611f7157611f71611f22565b500490565b600060018201611f8857611f88611cfd565b5060010190565b60ff818116838216019081111561068757610687611cfd56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205edb8c348ddc2402a43d70702ca4f00b81e2b73b9913cc4b6859662ddea0eb4a64736f6c63430008180033

Deployed Bytecode Sourcemap

3384:8770:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4881:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10052:216;;;;;;:::i;:::-;;:::i;:::-;;;1438:14:1;;1431:22;1413:41;;1401:2;1386:18;10052:216:0;1273:187:1;10727:181:0;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1814:32:1;;;1796:51;;1784:2;1769:18;10727:181:0;1650:203:1;5778:619:0;;;;;;:::i;:::-;;:::i;5133:82::-;5200:12;;5133:82;;;2263:25:1;;;2251:2;2236:18;5133:82:0;2117:177:1;4304:45:0;;;;;;:::i;:::-;;:::i;:::-;;;2473:6:1;2461:19;;;2443:38;;2431:2;2416:18;4304:45:0;2299:188:1;9725:319:0;;;;;;:::i;:::-;;:::i;5051:76::-;5115:9;;5051:76;;11915:236;;;:::i;:::-;;5596:84;;;;;;:::i;:::-;;:::i;4111:50::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;4111:50:0;;;3680:106;;;:::i;5221:102::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5301:19:0;5286:4;5301:19;;;:10;:19;;;;;;;5221:102;3793:18;;;;;-1:-1:-1;;;;;3793:18:0;;;5459:131;;;;;;:::i;:::-;;:::i;4964:81::-;;;:::i;10916:207::-;;;;;;:::i;:::-;;:::i;9442:275::-;;;;;;:::i;:::-;;:::i;3641:14::-;;;;;;10276:199;;;;;;:::i;:::-;;:::i;3818:23::-;;;;;;:::i;:::-;;:::i;11294:220::-;;;;;;:::i;:::-;;:::i;5329:124::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5424:17:0;;;5409:4;5424:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;5329:124;11131:155;;;;;;:::i;:::-;;:::i;5686:84::-;5750:10;5726:4;5740:21;;;:9;:21;;;;;:28;5686:84;;4881:77;4926:13;4950:5;4943:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4881:77;:::o;10052:216::-;10144:4;10161:31;10174:4;10180:2;10184:7;10161:31;;:12;:31::i;:::-;10213:3;;-1:-1:-1;;;;;10194:16:0;;;;;;:10;:16;;;;;:22;;:16;;;:22;;10213:3;;10194:22;:::i;:::-;;;;-1:-1:-1;;10235:3:0;;-1:-1:-1;;;;;10218:14:0;;;;;;:10;:14;;;;;:20;;:14;;;:20;;10235:3;;10218:20;:::i;:::-;;;;-1:-1:-1;10256:4:0;;10052:216;-1:-1:-1;;;;;10052:216:0:o;10727:181::-;10794:7;10818:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10818:16:0;10814:44;;10850:8;;;10814:44;-1:-1:-1;10876:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10876:24:0;;10727:181::o;5778:619::-;5849:4;5879:5;5870:6;:14;5866:502;;;5912:10;5901:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;5901:31:0;;;;;;;;;:40;;;5956:32;5924:7;5983:4;5956:17;:32::i;:::-;6038:6;6029:7;-1:-1:-1;;;;;6008:40:0;6017:10;-1:-1:-1;;;;;6008:40:0;;6046:1;6008:40;;;;2263:25:1;;2251:2;2236:18;;2117:177;6008:40:0;;;;;;;;5866:502;;;6090:13;6106:15;;;:7;:15;;;;;;-1:-1:-1;;;;;6106:15:0;6140:10;:19;;;;;:59;;;6164:35;6181:5;6188:10;6164:16;:35::i;:::-;6163:36;6140:59;6136:107;;;6201:42;;-1:-1:-1;;;6201:42:0;;7041:2:1;6201:42:0;;;7023:21:1;;;7060:18;;;7053:30;7119:34;7099:18;;;7092:62;7171:18;;6201:42:0;;;;;;;;6136:107;6258:23;;;;:15;:23;;;;;;;;;:33;;-1:-1:-1;;;;;;6258:33:0;-1:-1:-1;;;;;6258:33:0;;;;;;;;;6336:3;;6311:45;;2473:6:1;2461:19;;2443:38;;6258:33:0;;6311:45;;;;;;2416:18:1;6311:45:0;;;;;;;6075:293;5866:502;-1:-1:-1;6385:4:0;5778:619;;;;;:::o;4304:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9725:319::-;9810:4;9841;;9831:6;:14;9827:188;;9848:41;9864:4;9870:10;9882:6;9848:15;:41::i;:::-;9891:29;9903:4;9909:2;9913:6;9891:11;:29::i;:::-;9827:188;;;9938:30;9951:4;9957:2;9961:6;9938:12;:30::i;9827:188::-;-1:-1:-1;10032:4:0;9725:319;;;;;:::o;11915:236::-;4764:3;;-1:-1:-1;;;;;4764:3:0;4750:10;:17;4742:47;;;;-1:-1:-1;;;4742:47:0;;;;;;;:::i;:::-;11971:3:::1;::::0;11963:44:::1;::::0;-1:-1:-1;;;;;11971:3:0;;::::1;::::0;11985:21:::1;11963:44:::0;::::1;;;::::0;11971:3:::1;11963:44:::0;11971:3;11963:44;11985:21;11971:3;11963:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12059:4:0::1;12018:19;12040:25:::0;;;:10:::1;:25;::::0;;;;;12080:15;;12076:68:::1;;12125:3;::::0;12098:44:::1;::::0;12118:4:::1;::::0;-1:-1:-1;;;;;12125:3:0::1;12130:11:::0;12098::::1;:44::i;:::-;11952:199;11915:236::o:0;5596:84::-;4764:3;;-1:-1:-1;;;;;4764:3:0;4750:10;:17;4742:47;;;;-1:-1:-1;;;4742:47:0;;;;;;;:::i;:::-;5658:7:::1;:20;5668:10:::0;5658:7;:20:::1;:::i;:::-;;5596:84:::0;:::o;3680:106::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5459:131::-;4764:3;;-1:-1:-1;;;;;4764:3:0;4750:10;:17;4742:47;;;;-1:-1:-1;;;4742:47:0;;;;;;;:::i;:::-;5538:5:::1;:16:::0;;-1:-1:-1;;;;;5538:16:0;;::::1;-1:-1:-1::0;;;;;;5538:16:0;;::::1;;::::0;;;5555:8;:16;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5572:8;:16;;;;;::::1;::::0;::::1;;::::0;;5459:131::o;4964:81::-;5011:13;5035:7;5028:14;;;;;:::i;10916:207::-;11021:10;11002:30;;;;:18;:30;;;;;;;;-1:-1:-1;;;;;11002:40:0;;;;;;;;;;;;:51;;-1:-1:-1;;11002:51:0;;;;;;;;;;11069:46;;1413:41:1;;;11002:40:0;;11021:10;11069:46;;1386:18:1;11069:46:0;;;;;;;10916:207;;:::o;9442:275::-;9509:4;9540;;9530:6;:14;9526:162;;9546:35;9558:10;9570:2;9574:6;9546:11;:35::i;:::-;9526:162;;;9599:36;9612:10;9624:2;9628:6;9599:12;:36::i;:::-;9661:3;;9647:10;9636:22;;;;:10;:22;;;;;:28;;:22;;;:28;;9661:3;;9636:28;:::i;:::-;;;;-1:-1:-1;;9683:3:0;;-1:-1:-1;;;;;9666:14:0;;;;;;:10;:14;;;;;:20;;:14;;;:20;;9683:3;;9666:20;:::i;:::-;;;;-1:-1:-1;;;9705:4:0;9442:275;;;;:::o;10276:199::-;10390:31;10403:4;10409:2;10413:7;10390:12;:31::i;:::-;10442:3;;-1:-1:-1;;;;;10423:16:0;;;;;;:10;:16;;;;;:22;;:16;;;:22;;10442:3;;10423:22;:::i;:::-;;;;-1:-1:-1;;10464:3:0;;-1:-1:-1;;;;;10447:14:0;;;;;;:10;:14;;;;;:20;;:14;;;:20;;10464:3;;10447:20;:::i;:::-;;;;-1:-1:-1;;;;;;10276:199:0:o;3818:23::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3818:23:0;;-1:-1:-1;3818:23:0;:::o;11294:220::-;11358:13;11394:7;11388:21;;;;;:::i;:::-;;;11413:1;11388:26;11384:44;;-1:-1:-1;;11417:9:0;;;;;;;;;-1:-1:-1;11417:9:0;;;11294:220::o;11384:44::-;11469:7;11478:17;11487:7;11478:8;:17::i;:::-;11452:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11438:68;;11294:220;;;:::o;11131:155::-;-1:-1:-1;;;;;11243:25:0;;;11219:4;11243:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;11131:155::o;8872:562::-;8981:5;:8;-1:-1:-1;;;;;8973:16:0;;;8981:8;;8973:16;;:36;;-1:-1:-1;9001:8:0;;-1:-1:-1;;;;;8993:16:0;;;9001:8;;8993:16;8973:36;:56;;;-1:-1:-1;9021:8:0;;-1:-1:-1;;;;;9013:16:0;;;9021:8;;9013:16;8973:56;8962:8;:67;;-1:-1:-1;;8962:67:0;;;;;;;;;;-1:-1:-1;9056:16:0;;;:7;:16;;;;;;-1:-1:-1;;;;;9056:16:0;;;9048:24;;;;9040:63;;;;-1:-1:-1;;;9040:63:0;;11462:2:1;9040:63:0;;;11444:21:1;11501:2;11481:18;;;11474:30;11540:29;11520:18;;;11513:57;11587:18;;9040:63:0;11260:351:1;9040:63:0;9136:10;-1:-1:-1;;;;;9136:18:0;;;;:56;;;9172:20;9184:7;9172:11;:20::i;:::-;-1:-1:-1;;;;;9158:34:0;:10;-1:-1:-1;;;;;9158:34:0;;9136:56;:93;;;;9195:34;9212:4;9218:10;9195:16;:34::i;:::-;9136:105;;;-1:-1:-1;9233:8:0;;;;9136:105;9114:195;;;;-1:-1:-1;;;9114:195:0;;11818:2:1;9114:195:0;;;11800:21:1;11857:2;11837:18;;;11830:30;11896:34;11876:18;;;11869:62;-1:-1:-1;;;11947:18:1;;;11940:34;11991:19;;9114:195:0;11616:400:1;9114:195:0;9327:24;;;;:15;:24;;;;;;;;9320:31;;-1:-1:-1;;;;;;9320:31:0;;;;;;9362:7;:16;;;;;;:21;;-1:-1:-1;;;;;9362:21:0;;;;;;;;;;;;9399:27;;9343:7;;9362:21;;9399:27;;;-1:-1:-1;;;;;;;;;;;9399:27:0;;8872:562;;;:::o;10483:236::-;-1:-1:-1;;;;;10589:17:0;;;;;;;:10;:17;;;;;;;;:26;;;;;;;;;;:36;-1:-1:-1;10589:36:0;10581:83;;;;-1:-1:-1;;;10581:83:0;;12223:2:1;10581:83:0;;;12205:21:1;12262:2;12242:18;;;12235:30;12301:34;12281:18;;;12274:62;-1:-1:-1;;;12352:18:1;;;12345:32;12394:19;;10581:83:0;12021:398:1;10581:83:0;-1:-1:-1;;;;;10675:17:0;;;;;;;:10;:17;;;;;;;;:26;;;;;;;;;;;:36;;10705:6;;10675:17;:36;;10705:6;;10675:36;:::i;:::-;;;;-1:-1:-1;;;;;10483:236:0:o;6405:2459::-;6521:4;;6512:13;;:6;:13;:::i;:::-;6503:6;:22;;;6527:16;;;;:::i;:::-;;-1:-1:-1;6573:5:0;6579:1;6573:8;;-1:-1:-1;;;;;6565:16:0;;;6573:8;;6565:16;;:36;;-1:-1:-1;6593:8:0;;-1:-1:-1;;;;;6585:16:0;;;6593:8;;6585:16;6565:36;:56;;;-1:-1:-1;6613:8:0;;-1:-1:-1;;;;;6605:16:0;;;6613:8;;6605:16;6565:56;6554:8;:67;;-1:-1:-1;;6554:67:0;;;;;;;;;;6647:5;-1:-1:-1;6647:8:0;;-1:-1:-1;;;;;6641:14:0;;;6647:8;;6641:14;;:32;;-1:-1:-1;6665:8:0;;-1:-1:-1;;;;;6659:14:0;;;6665:8;;6659:14;6641:32;:50;;;-1:-1:-1;6683:8:0;;-1:-1:-1;;;;;6677:14:0;;;6683:8;;6677:14;6641:50;6632:6;:59;;;;;;;-1:-1:-1;;6632:59:0;;;;;;;;;6737:3;;-1:-1:-1;;;;;6718:16:0;;-1:-1:-1;6718:16:0;;;:10;:16;;;;;;:22;;6737:3;6718:22;:::i;:::-;6702:13;:43;;-1:-1:-1;;6702:43:0;6718:27;;6702:43;;;;;;;;6778:3;;-1:-1:-1;;;;;6761:14:0;;-1:-1:-1;6761:14:0;;;:10;:14;;;;;;:20;;6778:3;6761:20;:::i;:::-;6747:11;:39;;-1:-1:-1;;6747:39:0;6761:25;;6747:39;;;;;;;;6843:3;;-1:-1:-1;;;;;6814:16:0;;-1:-1:-1;6814:16:0;;;:10;:16;;;;;;:25;;6833:6;;6814:25;:::i;:::-;6813:33;;;;:::i;:::-;6797:13;:54;;-1:-1:-1;;6797:54:0;6813:38;;6797:54;;;;;;;;:13;6895:3;-1:-1:-1;;;;;6868:14:0;;-1:-1:-1;6868:14:0;;;:10;:14;;;;;;:23;;6885:6;;6868:23;:::i;:::-;6867:31;;;;:::i;:::-;6853:11;:50;;-1:-1:-1;;6853:50:0;6867:36;;6853:50;;;;;;;;-1:-1:-1;;;;;6924:16:0;;-1:-1:-1;6924:16:0;;;:10;:16;;;;;;-1:-1:-1;;6924:26:0;6916:82;;;;-1:-1:-1;;;6916:82:0;;12875:2:1;6916:82:0;;;12857:21:1;12914:2;12894:18;;;12887:30;12953:34;12933:18;;;12926:62;-1:-1:-1;;;13004:18:1;;;12997:41;13055:19;;6916:82:0;12673:407:1;6916:82:0;7016:6;;;;;;;:23;;;;-1:-1:-1;7026:13:0;;;;;;;7016:23;:41;;;;-1:-1:-1;7044:13:0;;;;;;;7043:14;7016:41;7015:101;;;-1:-1:-1;7076:8:0;;;;:24;;;;-1:-1:-1;7089:11:0;;;;;;;7088:12;7076:24;:39;;;;-1:-1:-1;7104:11:0;;;;;;;7076:39;7015:192;;;-1:-1:-1;7134:8:0;;;;:24;;;;-1:-1:-1;7147:11:0;;;;;;;7146:12;7134:24;:72;;;;-1:-1:-1;7203:3:0;;7187:12;7203:3;7187:6;:12;:::i;:::-;7180:3;;-1:-1:-1;;;;;7163:14:0;;;;;;:10;:14;;;;;;:20;;7180:3;7163:20;:::i;:::-;7162:37;;;;:::i;:::-;:44;;7134:72;7015:278;;;-1:-1:-1;7225:6:0;;;;;;;:24;;;;-1:-1:-1;7236:13:0;;;;;;;7235:14;7225:24;:67;;;;-1:-1:-1;7289:3:0;;7280:12;;:6;:12;:::i;:::-;7273:3;;-1:-1:-1;;;;;7254:16:0;;;;;;:10;:16;;;;;;:22;;7273:3;7254:22;:::i;:::-;7253:39;7225:67;7011:922;;;-1:-1:-1;;;;;7330:15:0;;7313:14;7330:15;;;:9;:15;;;;;:18;;7313:14;;7330:18;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;7366:16;;;:7;:16;;;;;;;;7330:18;;-1:-1:-1;;;;;;7366:16:0;;;7358:24;;;;7350:49;;;;-1:-1:-1;;;7350:49:0;;13287:2:1;7350:49:0;;;13269:21:1;13326:2;13306:18;;;13299:30;-1:-1:-1;;;13345:18:1;;;13338:43;13398:18;;7350:49:0;13085:337:1;7350:49:0;7425:24;;;;;;;:15;:24;;;;;;;;7418:31;;-1:-1:-1;;;;;;7418:31:0;;;;;;7451:7;:16;;;;;:21;;-1:-1:-1;;;;;7451:21:0;;;;;;;;;;7512:15;;;;:9;:15;;;;;7528:22;;:26;;7418:31;;7528:26;:::i;:::-;7512:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7491:9;:15;7501:4;-1:-1:-1;;;;;7491:15:0;-1:-1:-1;;;;;7491:15:0;;;;;;;;;;;;7507:1;7491:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;7574:9;:15;7584:4;-1:-1:-1;;;;;7574:15:0;-1:-1:-1;;;;;7574:15:0;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;7574:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7597:13:0;;;;;;:9;:13;;;;;;:27;;7574:21;7597:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7648;;7597;;:13;7648:27;;;-1:-1:-1;;;;;;;;;;;7648:27:0;;7294:393;7011:922;;;7726:13;;7709;;;7726;7709;;;:30;;7726:13;;;;;7709:30;;;;;7708:101;;-1:-1:-1;7804:3:0;;7788:12;7804:3;7788:6;:12;:::i;:::-;7781:3;;-1:-1:-1;;;;;7764:14:0;;;;;;:10;:14;;;;;;:20;;7781:3;7764:20;:::i;:::-;7763:37;;;;:::i;:::-;:44;;7708:101;7704:229;;;7838:6;;;;;;;;:18;;-1:-1:-1;7848:8:0;;;;7838:18;7830:81;;;;-1:-1:-1;;;7830:81:0;;13761:2:1;7830:81:0;;;13743:21:1;13800:2;13780:18;;;13773:30;13839:34;13819:18;;;13812:62;-1:-1:-1;;;13890:18:1;;;13883:48;13948:19;;7830:81:0;13559:414:1;7830:81:0;7945:19;7976:3;;7967:6;:12;;;;:::i;:::-;7994:8;;7945:34;;-1:-1:-1;7994:8:0;;:51;;;;-1:-1:-1;;;;;;8006:15:0;;;;;;:9;:15;;;;;:22;:39;-1:-1:-1;7994:51:0;7990:755;;;8067:6;8062:233;8083:14;8079:1;:18;8062:233;;;8123:6;:8;;;:6;:8;;;:::i;:::-;;;;-1:-1:-1;;8158:6:0;;;8150:15;;;;:7;:15;;;;;;;;:20;;-1:-1:-1;;;;;;8150:20:0;-1:-1:-1;;;;;8150:20:0;;;;;;;;8189:13;;;:9;:13;;;;;8215:6;;8189:34;;-1:-1:-1;8189:34:0;;;;;;;;;;;;;;;;;;;;;;8150:20;8189:34;;;;;;;;;;;;;;;;;;;;;8272:6;;8247:32;;8150:20;;:15;-1:-1:-1;;;;;;;;;;;8247:32:0;8150:15;;8247:32;8099:3;;8062:233;;;;7990:755;;;8344:6;8339:395;8360:14;8356:1;:18;:48;;;;-1:-1:-1;;;;;;8378:15:0;;8403:1;8378:15;;;:9;:15;;;;;:22;:26;;8356:48;8339:395;;;-1:-1:-1;;;;;8447:15:0;;8430:14;8447:15;;;:9;:15;;;;;:18;;8430:14;;8447:18;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8484:31:0;8497:4;8503:2;8447:18;8484:12;:31::i;:::-;8541:7;8522:27;;8537:2;-1:-1:-1;;;;;8522:27:0;8531:4;-1:-1:-1;;;;;8522:27:0;-1:-1:-1;;;;;;;;;;;8522:27:0;;;;;;;;;-1:-1:-1;;;;;8589:15:0;;;;;;:9;:15;;;;;8605:22;;:26;;8630:1;;8605:26;:::i;:::-;8589:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;8568:9;:15;8578:4;-1:-1:-1;;;;;8568:15:0;-1:-1:-1;;;;;8568:15:0;;;;;;;;;;;;8584:1;8568:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;8651:9;:15;8661:4;-1:-1:-1;;;;;8651:15:0;-1:-1:-1;;;;;8651:15:0;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;8651:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8691:13:0;;;;:9;:13;;;;;:27;;8651:21;8691:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8406:3;;;;:::i;:::-;;;;8339:395;;;;7990:755;-1:-1:-1;;;;;8757:16:0;;;;;;:10;:16;;;;;:26;;8777:6;;8757:16;:26;;8777:6;;8757:26;:::i;:::-;;;;-1:-1:-1;;;;;;;8785:14:0;;;;;;:10;:14;;;;;:24;;8803:6;;8785:14;:24;;8803:6;;8785:24;:::i;:::-;;;;;;;;8845:2;-1:-1:-1;;;;;8825:31:0;8839:4;-1:-1:-1;;;;;8825:31:0;;8849:6;8825:31;;;;2263:25:1;;2251:2;2236:18;;2117:177;8825:31:0;;;;;;;;6482:2382;6405:2459;;;:::o;11522:385::-;11578:13;11608:5;11617:1;11608:10;11604:29;;-1:-1:-1;;11621:10:0;;;;;;;;;;;;-1:-1:-1;;;11621:10:0;;;;;11522:385::o;11604:29::-;11649:5;11634:12;11681:41;11688:9;;11681:41;;11700:8;;;;:::i;:::-;;-1:-1:-1;11710:10:0;;-1:-1:-1;11718:2:0;11710:10;;:::i;:::-;;;11681:41;;;11723:19;11755:6;11745:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11745:17:0;;11723:39;;11773:95;11780:10;;11773:95;;11793:11;11803:1;11793:11;;:::i;:::-;;-1:-1:-1;11836:10:0;11844:2;11836:5;:10;:::i;:::-;11830:22;;11850:2;11830:22;:::i;:::-;11823:30;;11806:6;11813;11806:14;;;;;;;;:::i;:::-;;;;:47;-1:-1:-1;;;;;11806:47:0;;;;;;;;-1:-1:-1;11855:11:0;11864:2;11855:11;;:::i;:::-;;;11773:95;;;11892:6;11522:385;-1:-1:-1;;;;11522:385:0:o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:420::-;924:6;932;940;993:2;981:9;972:7;968:23;964:32;961:52;;;1009:1;1006;999:12;961:52;1032:29;1051:9;1032:29;:::i;:::-;1022:39;;1080:38;1114:2;1103:9;1099:18;1080:38;:::i;:::-;1070:48;;1168:2;1157:9;1153:18;1140:32;1212:6;1205:5;1201:18;1194:5;1191:29;1181:57;;1234:1;1231;1224:12;1181:57;1257:5;1247:15;;;848:420;;;;;:::o;1465:180::-;1524:6;1577:2;1565:9;1556:7;1552:23;1548:32;1545:52;;;1593:1;1590;1583:12;1545:52;-1:-1:-1;1616:23:1;;1465:180;-1:-1:-1;1465:180:1:o;1858:254::-;1926:6;1934;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;2026:29;2045:9;2026:29;:::i;:::-;2016:39;2102:2;2087:18;;;;2074:32;;-1:-1:-1;;;1858:254:1:o;2492:328::-;2569:6;2577;2585;2638:2;2626:9;2617:7;2613:23;2609:32;2606:52;;;2654:1;2651;2644:12;2606:52;2677:29;2696:9;2677:29;:::i;:::-;2667:39;;2725:38;2759:2;2748:9;2744:18;2725:38;:::i;:::-;2715:48;;2810:2;2799:9;2795:18;2782:32;2772:42;;2492:328;;;;;:::o;2825:127::-;2886:10;2881:3;2877:20;2874:1;2867:31;2917:4;2914:1;2907:15;2941:4;2938:1;2931:15;2957:632;3022:5;3052:18;3093:2;3085:6;3082:14;3079:40;;;3099:18;;:::i;:::-;3174:2;3168:9;3142:2;3228:15;;-1:-1:-1;;3224:24:1;;;3250:2;3220:33;3216:42;3204:55;;;3274:18;;;3294:22;;;3271:46;3268:72;;;3320:18;;:::i;:::-;3360:10;3356:2;3349:22;3389:6;3380:15;;3419:6;3411;3404:22;3459:3;3450:6;3445:3;3441:16;3438:25;3435:45;;;3476:1;3473;3466:12;3435:45;3526:6;3521:3;3514:4;3506:6;3502:17;3489:44;3581:1;3574:4;3565:6;3557;3553:19;3549:30;3542:41;;;;2957:632;;;;;:::o;3594:451::-;3663:6;3716:2;3704:9;3695:7;3691:23;3687:32;3684:52;;;3732:1;3729;3722:12;3684:52;3772:9;3759:23;3805:18;3797:6;3794:30;3791:50;;;3837:1;3834;3827:12;3791:50;3860:22;;3913:4;3905:13;;3901:27;-1:-1:-1;3891:55:1;;3942:1;3939;3932:12;3891:55;3965:74;4031:7;4026:2;4013:16;4008:2;4004;4000:11;3965:74;:::i;4050:186::-;4109:6;4162:2;4150:9;4141:7;4137:23;4133:32;4130:52;;;4178:1;4175;4168:12;4130:52;4201:29;4220:9;4201:29;:::i;:::-;4191:39;4050:186;-1:-1:-1;;;4050:186:1:o;4241:334::-;4318:6;4326;4334;4387:2;4375:9;4366:7;4362:23;4358:32;4355:52;;;4403:1;4400;4393:12;4355:52;4426:29;4445:9;4426:29;:::i;:::-;4416:39;;4474:38;4508:2;4497:9;4493:18;4474:38;:::i;:::-;4464:48;;4531:38;4565:2;4554:9;4550:18;4531:38;:::i;:::-;4521:48;;4241:334;;;;;:::o;4580:347::-;4645:6;4653;4706:2;4694:9;4685:7;4681:23;4677:32;4674:52;;;4722:1;4719;4712:12;4674:52;4745:29;4764:9;4745:29;:::i;:::-;4735:39;;4824:2;4813:9;4809:18;4796:32;4871:5;4864:13;4857:21;4850:5;4847:32;4837:60;;4893:1;4890;4883:12;4837:60;4916:5;4906:15;;;4580:347;;;;;:::o;4932:667::-;5027:6;5035;5043;5051;5104:3;5092:9;5083:7;5079:23;5075:33;5072:53;;;5121:1;5118;5111:12;5072:53;5144:29;5163:9;5144:29;:::i;:::-;5134:39;;5192:38;5226:2;5215:9;5211:18;5192:38;:::i;:::-;5182:48;;5277:2;5266:9;5262:18;5249:32;5239:42;;5332:2;5321:9;5317:18;5304:32;5359:18;5351:6;5348:30;5345:50;;;5391:1;5388;5381:12;5345:50;5414:22;;5467:4;5459:13;;5455:27;-1:-1:-1;5445:55:1;;5496:1;5493;5486:12;5445:55;5519:74;5585:7;5580:2;5567:16;5562:2;5558;5554:11;5519:74;:::i;:::-;5509:84;;;4932:667;;;;;;;:::o;5604:260::-;5672:6;5680;5733:2;5721:9;5712:7;5708:23;5704:32;5701:52;;;5749:1;5746;5739:12;5701:52;5772:29;5791:9;5772:29;:::i;:::-;5762:39;;5820:38;5854:2;5843:9;5839:18;5820:38;:::i;:::-;5810:48;;5604:260;;;;;:::o;5869:380::-;5948:1;5944:12;;;;5991;;;6012:61;;6066:4;6058:6;6054:17;6044:27;;6012:61;6119:2;6111:6;6108:14;6088:18;6085:38;6082:161;;6165:10;6160:3;6156:20;6153:1;6146:31;6200:4;6197:1;6190:15;6228:4;6225:1;6218:15;6082:161;;5869:380;;;:::o;6254:127::-;6315:10;6310:3;6306:20;6303:1;6296:31;6346:4;6343:1;6336:15;6370:4;6367:1;6360:15;6386:128;6453:9;;;6474:11;;;6471:37;;;6488:18;;:::i;6519:125::-;6584:9;;;6605:10;;;6602:36;;;6618:18;;:::i;7394:341::-;7596:2;7578:21;;;7635:2;7615:18;;;7608:30;-1:-1:-1;;;7669:2:1;7654:18;;7647:47;7726:2;7711:18;;7394:341::o;7866:543::-;7968:2;7963:3;7960:11;7957:446;;;8004:1;8028:5;8025:1;8018:16;8072:4;8069:1;8059:18;8142:2;8130:10;8126:19;8123:1;8119:27;8113:4;8109:38;8178:4;8166:10;8163:20;8160:47;;;-1:-1:-1;8201:4:1;8160:47;8256:2;8251:3;8247:12;8244:1;8240:20;8234:4;8230:31;8220:41;;8311:82;8329:2;8322:5;8319:13;8311:82;;;8374:17;;;8355:1;8344:13;8311:82;;;8315:3;;;7957:446;7866:543;;;:::o;8585:1345::-;8711:3;8705:10;8738:18;8730:6;8727:30;8724:56;;;8760:18;;:::i;:::-;8789:97;8879:6;8839:38;8871:4;8865:11;8839:38;:::i;:::-;8833:4;8789:97;:::i;:::-;8941:4;;8998:2;8987:14;;9015:1;9010:663;;;;9717:1;9734:6;9731:89;;;-1:-1:-1;9786:19:1;;;9780:26;9731:89;-1:-1:-1;;8542:1:1;8538:11;;;8534:24;8530:29;8520:40;8566:1;8562:11;;;8517:57;9833:81;;8980:944;;9010:663;7813:1;7806:14;;;7850:4;7837:18;;-1:-1:-1;;9046:20:1;;;9164:236;9178:7;9175:1;9172:14;9164:236;;;9267:19;;;9261:26;9246:42;;9359:27;;;;9327:1;9315:14;;;;9194:19;;9164:236;;;9168:3;9428:6;9419:7;9416:19;9413:201;;;9489:19;;;9483:26;-1:-1:-1;;9572:1:1;9568:14;;;9584:3;9564:24;9560:37;9556:42;9541:58;9526:74;;9413:201;-1:-1:-1;;;;;9660:1:1;9644:14;;;9640:22;9627:36;;-1:-1:-1;8585:1345:1:o;9935:127::-;9996:10;9991:3;9987:20;9984:1;9977:31;10027:4;10024:1;10017:15;10051:4;10048:1;10041:15;10067:1188;10344:3;10373:1;10406:6;10400:13;10436:36;10462:9;10436:36;:::i;:::-;10491:1;10508:17;;;10534:133;;;;10681:1;10676:358;;;;10501:533;;10534:133;-1:-1:-1;;10567:24:1;;10555:37;;10640:14;;10633:22;10621:35;;10612:45;;;-1:-1:-1;10534:133:1;;10676:358;10707:6;10704:1;10697:17;10737:4;10782;10779:1;10769:18;10809:1;10823:165;10837:6;10834:1;10831:13;10823:165;;;10915:14;;10902:11;;;10895:35;10958:16;;;;10852:10;;10823:165;;;10827:3;;;11017:6;11012:3;11008:16;11001:23;;10501:533;;;;;11065:6;11059:13;11081:68;11140:8;11135:3;11128:4;11120:6;11116:17;11081:68;:::i;:::-;-1:-1:-1;;;11171:18:1;;11198:22;;;11247:1;11236:13;;10067:1188;-1:-1:-1;;;;10067:1188:1:o;12424:127::-;12485:10;12480:3;12476:20;12473:1;12466:31;12516:4;12513:1;12506:15;12540:4;12537:1;12530:15;12556:112;12588:1;12614;12604:35;;12619:18;;:::i;:::-;-1:-1:-1;12653:9:1;;12556:112::o;13427:127::-;13488:10;13483:3;13479:20;13476:1;13469:31;13519:4;13516:1;13509:15;13543:4;13540:1;13533:15;13978:120;14018:1;14044;14034:35;;14049:18;;:::i;:::-;-1:-1:-1;14083:9:1;;13978:120::o;14103:135::-;14142:3;14163:17;;;14160:43;;14183:18;;:::i;:::-;-1:-1:-1;14230:1:1;14219:13;;14103:135::o;14243:148::-;14331:4;14310:12;;;14324;;;14306:31;;14349:13;;14346:39;;;14365:18;;:::i

Swarm Source

ipfs://5edb8c348ddc2402a43d70702ca4f00b81e2b73b9913cc4b6859662ddea0eb4a
Loading...
Loading
Loading...
Loading
[ 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.