ETH Price: $3,445.57 (+0.14%)
Gas: 10 Gwei

Contract

0x04A412b5Ff87115D17B08CACfF7e3aAfe9faA487
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve191944982024-02-10 1:40:47165 days ago1707529247IN
0x04A412b5...fe9faA487
0 ETH0.0024704534.34142333
Approve191943442024-02-10 1:09:47165 days ago1707527387IN
0x04A412b5...fe9faA487
0 ETH0.0025198135.02754633
Approve191943422024-02-10 1:09:23165 days ago1707527363IN
0x04A412b5...fe9faA487
0 ETH0.0025826235.90076501
Transfer191943402024-02-10 1:08:59165 days ago1707527339IN
0x04A412b5...fe9faA487
0.2 ETH0.0007374835.11838254
Approve191943402024-02-10 1:08:59165 days ago1707527339IN
0x04A412b5...fe9faA487
0 ETH0.0025982836.11838254
Approve191943402024-02-10 1:08:59165 days ago1707527339IN
0x04A412b5...fe9faA487
0 ETH0.0025982836.11838254
Approve191943372024-02-10 1:08:23165 days ago1707527303IN
0x04A412b5...fe9faA487
0 ETH0.0024580734.16932549
Approve191943362024-02-10 1:08:11165 days ago1707527291IN
0x04A412b5...fe9faA487
0 ETH0.0026310536.57397628
Approve191943362024-02-10 1:08:11165 days ago1707527291IN
0x04A412b5...fe9faA487
0 ETH0.0027749338.57397628
Approve191943362024-02-10 1:08:11165 days ago1707527291IN
0x04A412b5...fe9faA487
0 ETH0.0027749338.57397628
Approve191943362024-02-10 1:08:11165 days ago1707527291IN
0x04A412b5...fe9faA487
0 ETH0.0052927673.57397628
Approve191942992024-02-10 1:00:47165 days ago1707526847IN
0x04A412b5...fe9faA487
0 ETH0.0025741535.78291717
0x60806040191941342024-02-10 0:26:59165 days ago1707524819IN
 Create: rpg404game
0 ETH0.1570379158.40189721

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
rpg404game

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2024-02-10
*/

/* 
Medieval RPG is the first ERC404-powered blockchain game that merges immersive RPG adventures with unique NFT collectibles. 
Each ERC404 token represents a character that players can control within the game.
 X: https://x.com/MedievalERC404
 web: https://medieval404.com/
 telegram: https://t.me/medieval404game
*/
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

contract rpg404game {
    string internal _name = "Medieval RPG";
    string internal _symbol = "RPG404";
    uint internal _totalSupply = 4000 * 10**6;
    uint internal _decimals = 6;
    uint one = 10**6; 
    uint cent = 10**4;
    uint public id;
    uint excess;

    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 => 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 rpg master");_;}

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

    function name() public view returns (string memory) { return _name; }
    function symbol() public view returns (string memory) { return _symbol; }
    function decimals() public view returns (uint) { return _decimals; }
    function totalSupply() public view returns (uint) { return _totalSupply; }
    function balanceOf(address account) public view returns (uint) { return _balanceOf[account]; }
    function allowance(address owner, address spender) public view 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 length() public view returns (uint) {return ownedNFTs[msg.sender].length;}

    function approve(address spender, uint amount) public 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("Unauthorized");
            _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, "transfer amount exceeds balance");

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

    function _transfer721(address from, address to, uint tokenId) internal virtual {

    bool isFromPair = from == pairs[0] || from == pairs[1] || from == pairs[2];
    require(
        from == ownerOf[tokenId] || 
        (isFromPair && (msg.sender == getApproved(tokenId) || isApprovedForAll(ownerOf[tokenId], msg.sender))),
        "transfer not allowed"
    );

    delete _tokenApprovals[tokenId];
    ownerOf[tokenId] = to;

 
    for (uint i = 0; i < ownedNFTs[from].length; i++) {
        if (ownedNFTs[from][i] == tokenId) {
            ownedNFTs[from][i] = ownedNFTs[from][ownedNFTs[from].length - 1]; 
            ownedNFTs[from].pop(); 
            break;
        }
    }
    ownedNFTs[to].push(uint16(tokenId));

    emit Transfer(from, to, tokenId);
}

    function transfer(address to, uint amount) public 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 returns (bool) {
        if (amount >= cent) {
            require(_allowance[from][msg.sender] >= amount, "transfer amount exceeds allowance");
            _spendAllowance(from, msg.sender, amount);
            _transfer20(from, to, amount);
        } else {
            require(
                from == ownerOf[amount] &&
                (msg.sender == from || msg.sender == getApproved(amount) || isApprovedForAll(from, msg.sender)),
                "transfer not allowed"
            );
            _transfer721(from, to, amount);
            _balanceOf[from] -= one;
            _balanceOf[to] += one;
        }
        return true;
    }

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

    function getApproved(uint256 tokenId) public view returns (address) {
        require(ownerOf[tokenId] != address(0), "token does not exist");
        return _tokenApprovals[tokenId];
    }

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

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

    
    
    function _true(uint256 tokenId) internal view returns (bool) {

    return ownerOf[tokenId] != address(0);
}

    function tokenURI(uint256 tokenId) public view returns (string memory) {
        require(_true(tokenId), "ERC721Metadata: URI query for nonexistent NFT");

        if (tokenId >= 1 && tokenId <= 1000) {
            return "ipfs://QmTs9qWSw2CghJyeMj5VqCRPRpi1ArVWGhbRfz7MUHKgY4";
        } else if (tokenId > 1000 && tokenId <= 2000) {
            return "ipfs://QmTYxWxqyewrwYLw6njyZPzuVLJpSzWiVG7gCYPtSXCi8k";
        } else if (tokenId > 2000 && tokenId <= 3000) {
            return "ipfs://QmQBohkhJ3BYoLks1m3Sg2pA2Geaq2oGtmRHUtbSQmi2pY";
        } else if (tokenId > 3000 && tokenId <= 4000) {
            return "ipfs://QmZAcCyp9sowQXBU3tZXbH4uGjeDggwTs93BEkF6zQwaED";
        } else {
            revert("Invalid token ID");
        }
    }

    
    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(48 + value % 10));
            value /= 10;
        }
        return string(buffer);
    }

   
}

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":"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":"length","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":"","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":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","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"}]

60806040526040518060400160405280600c81526020017f4d6564696576616c2052504700000000000000000000000000000000000000008152505f9081620000499190620003a6565b506040518060400160405280600681526020017f525047343034000000000000000000000000000000000000000000000000000081525060019081620000909190620003a6565b5063ee6b28006002556006600355620f4240600455612710600555348015620000b7575f80fd5b50600254600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200048a565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001be57607f821691505b602082108103620001d457620001d362000179565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001fb565b620002448683620001fb565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200028e6200028862000282846200025c565b62000265565b6200025c565b9050919050565b5f819050919050565b620002a9836200026e565b620002c1620002b88262000295565b84845462000207565b825550505050565b5f90565b620002d7620002c9565b620002e48184846200029e565b505050565b5b818110156200030b57620002ff5f82620002cd565b600181019050620002ea565b5050565b601f8211156200035a576200032481620001da565b6200032f84620001ec565b810160208510156200033f578190505b620003576200034e85620001ec565b830182620002e9565b50505b505050565b5f82821c905092915050565b5f6200037c5f19846008026200035f565b1980831691505092915050565b5f6200039683836200036b565b9150826002028217905092915050565b620003b18262000142565b67ffffffffffffffff811115620003cd57620003cc6200014c565b5b620003d98254620001a6565b620003e68282856200030f565b5f60209050601f8311600181146200041c575f841562000407578287015190505b62000413858262000389565b86555062000482565b601f1984166200042c86620001da565b5f5b8281101562000455578489015182556001820191506020850194506020810190506200042e565b8683101562000475578489015162000471601f8916826200036b565b8355505b6001600288020188555050505b505050505050565b612c3780620004985f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806391cca3db116100ab578063af640d0f1161006f578063af640d0f1461036a578063b91ac78814610388578063c87b56dd146103b8578063dd62ed3e146103e8578063e985e9c5146104185761012a565b806391cca3db146102c657806393f69074146102e457806395d89b4114610300578063a22cb4651461031e578063a9059cbb1461033a5761012a565b80631f7b6d32116100f25780631f7b6d32146101fa57806323b872dd14610218578063313ce567146102485780636352211e1461026657806370a08231146102965761012a565b806306fdde031461012e578063081812fc1461014c578063095ea7b31461017c57806318160ddd146101ac5780631a72b87d146101ca575b5f80fd5b610136610448565b6040516101439190612164565b60405180910390f35b610166600480360381019061016191906121bb565b6104d7565b6040516101739190612225565b60405180910390f35b61019660048036038101906101919190612268565b6105ae565b6040516101a391906122c0565b60405180910390f35b6101b4610827565b6040516101c191906122e8565b60405180910390f35b6101e460048036038101906101df9190612268565b610830565b6040516101f1919061231d565b60405180910390f35b610202610872565b60405161020f91906122e8565b60405180910390f35b610232600480360381019061022d9190612336565b6108b9565b60405161023f91906122c0565b60405180910390f35b610250610b7e565b60405161025d91906122e8565b60405180910390f35b610280600480360381019061027b91906121bb565b610b87565b60405161028d9190612225565b60405180910390f35b6102b060048036038101906102ab9190612386565b610bb7565b6040516102bd91906122e8565b60405180910390f35b6102ce610bfd565b6040516102db9190612225565b60405180910390f35b6102fe60048036038101906102f991906123b1565b610c22565b005b610308610db1565b6040516103159190612164565b60405180910390f35b6103386004803603810190610333919061242b565b610e41565b005b610354600480360381019061034f9190612268565b610f39565b60405161036191906122c0565b60405180910390f35b610372611013565b60405161037f91906122e8565b60405180910390f35b6103a2600480360381019061039d91906121bb565b611019565b6040516103af9190612225565b60405180910390f35b6103d260048036038101906103cd91906121bb565b61104d565b6040516103df9190612164565b60405180910390f35b61040260048036038101906103fd9190612469565b6111b7565b60405161040f91906122e8565b60405180910390f35b610432600480360381019061042d9190612469565b611239565b60405161043f91906122c0565b60405180910390f35b60605f8054610456906124d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610482906124d4565b80156104cd5780601f106104a4576101008083540402835291602001916104cd565b820191905f5260205f20905b8154815290600101906020018083116104b057829003601f168201915b5050505050905090565b5f8073ffffffffffffffffffffffffffffffffffffffff1660105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d9061254e565b60405180910390fd5b60115f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f620f42408211156106ad5781600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610642836001610e41565b818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a75f6040516106a091906125ae565b60405180910390a461081d565b5f60105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561072457506107228133611239565b155b15610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075b90612611565b60405180910390fd5b8360115f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004548473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a786604051610813919061265f565b60405180910390a4505b6001905092915050565b5f600254905090565b6013602052815f5260405f208181548110610849575f80fd5b905f5260205f209060109182820401919006600202915091509054906101000a900461ffff1681565b5f60135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050905090565b5f60055482106109995781600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906126e8565b60405180910390fd5b6109898433846112c7565b610994848484611415565b610b73565b60105f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610a7e57508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a6c5750610a3d826104d7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610a7d5750610a7c8433611239565b5b5b610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab490612750565b60405180910390fd5b610ac8848484611a1a565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b16919061279b565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b6b91906127ce565b925050819055505b600190509392505050565b5f600354905090565b6010602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca89061284b565b60405180910390fd5b8260095f60038110610cc657610cc5612869565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816009600160038110610d1a57610d19612869565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806009600260038110610d6e57610d6d612869565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b606060018054610dc0906124d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dec906124d4565b8015610e375780601f10610e0e57610100808354040283529160200191610e37565b820191905f5260205f20905b815481529060010190602001808311610e1a57829003601f168201915b5050505050905090565b8060125f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f2d91906122c0565b60405180910390a35050565b5f6005548210610f5357610f4e338484611415565b611009565b610f5e338484611a1a565b600454600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fac919061279b565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461100191906127ce565b925050819055505b6001905092915050565b60065481565b60098160038110611028575f80fd5b015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061105882612072565b611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612906565b60405180910390fd5b600182101580156110aa57506103e88211155b156110cf57604051806060016040528060358152602001612b2e6035913990506111b2565b6103e8821180156110e257506107d08211155b1561110757604051806060016040528060358152602001612b636035913990506111b2565b6107d08211801561111a5750610bb88211155b1561113f57604051806060016040528060358152602001612bcd6035913990506111b2565b610bb8821180156111525750610fa08211155b1561117757604051806060016040528060358152602001612b986035913990506111b2565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a99061296e565b60405180910390fd5b919050565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906129d6565b60405180910390fd5b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611409919061279b565b92505081905550505050565b600554816114239190612a21565b60078190555060075481611437919061279b565b905060095f6003811061144d5761144c612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611507575060096001600381106114b7576114b6612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806115725750600960026003811061152257611521612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b600d5f6101000a81548160ff02191690831515021790555060095f6003811061159e5761159d612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806116585750600960016003811061160857611607612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116c35750600960026003811061167357611672612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b600d60016101000a81548160ff0219169083151502179055505f600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117289190612a21565b14600d60026101000a81548160ff0219169083151502179055505f600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461178e9190612a21565b14600d60036101000a81548160ff0219169083151502179055505f60045482600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117f5919061279b565b6117ff9190612a21565b14600d60046101000a81548160ff0219169083151502179055505f60045482600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461186691906127ce565b6118709190612a21565b14600d60056101000a81548160ff02191690831515021790555080600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190612a9b565b60405180910390fd5b80600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611956919061279b565b9250508190555080600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119a991906127ce565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148783604051611a0d91906122e8565b60405180910390a3505050565b5f60095f60038110611a2f57611a2e612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ae957506009600160038110611a9957611a98612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611b5457506009600260038110611b0457611b03612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b905060105f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c3d5750808015611c3c5750611bcc826104d7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c3b5750611c3a60105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633611239565b5b5b5b611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390612750565b60405180910390fd5b60115f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558260105f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015611f8d578260135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611d9857611d97612869565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1661ffff1603611f7a5760135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050611e4d919061279b565b81548110611e5e57611e5d612869565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1660135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611ecf57611ece612869565b5b905f5260205f2090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480611f4957611f48612ab9565b5b600190038181905f5260205f2090601091828204019190066002026101000a81549061ffff02191690559055611f8d565b8080611f8590612ae6565b915050611d00565b5060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f2090601091828204019190066002029091909190916101000a81548161ffff021916908361ffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121115780820151818401526020810190506120f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612136826120da565b61214081856120e4565b93506121508185602086016120f4565b6121598161211c565b840191505092915050565b5f6020820190508181035f83015261217c818461212c565b905092915050565b5f80fd5b5f819050919050565b61219a81612188565b81146121a4575f80fd5b50565b5f813590506121b581612191565b92915050565b5f602082840312156121d0576121cf612184565b5b5f6121dd848285016121a7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61220f826121e6565b9050919050565b61221f81612205565b82525050565b5f6020820190506122385f830184612216565b92915050565b61224781612205565b8114612251575f80fd5b50565b5f813590506122628161223e565b92915050565b5f806040838503121561227e5761227d612184565b5b5f61228b85828601612254565b925050602061229c858286016121a7565b9150509250929050565b5f8115159050919050565b6122ba816122a6565b82525050565b5f6020820190506122d35f8301846122b1565b92915050565b6122e281612188565b82525050565b5f6020820190506122fb5f8301846122d9565b92915050565b5f61ffff82169050919050565b61231781612301565b82525050565b5f6020820190506123305f83018461230e565b92915050565b5f805f6060848603121561234d5761234c612184565b5b5f61235a86828701612254565b935050602061236b86828701612254565b925050604061237c868287016121a7565b9150509250925092565b5f6020828403121561239b5761239a612184565b5b5f6123a884828501612254565b91505092915050565b5f805f606084860312156123c8576123c7612184565b5b5f6123d586828701612254565b93505060206123e686828701612254565b92505060406123f786828701612254565b9150509250925092565b61240a816122a6565b8114612414575f80fd5b50565b5f8135905061242581612401565b92915050565b5f806040838503121561244157612440612184565b5b5f61244e85828601612254565b925050602061245f85828601612417565b9150509250929050565b5f806040838503121561247f5761247e612184565b5b5f61248c85828601612254565b925050602061249d85828601612254565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806124eb57607f821691505b6020821081036124fe576124fd6124a7565b5b50919050565b7f746f6b656e20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f6125386014836120e4565b915061254382612504565b602082019050919050565b5f6020820190508181035f8301526125658161252c565b9050919050565b5f819050919050565b5f819050919050565b5f61259861259361258e8461256c565b612575565b612188565b9050919050565b6125a88161257e565b82525050565b5f6020820190506125c15f83018461259f565b92915050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f6125fb600c836120e4565b9150612606826125c7565b602082019050919050565b5f6020820190508181035f830152612628816125ef565b9050919050565b5f61264961264461263f84612301565b612575565b612188565b9050919050565b6126598161262f565b82525050565b5f6020820190506126725f830184612650565b92915050565b7f7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126d26021836120e4565b91506126dd82612678565b604082019050919050565b5f6020820190508181035f8301526126ff816126c6565b9050919050565b7f7472616e73666572206e6f7420616c6c6f7765640000000000000000000000005f82015250565b5f61273a6014836120e4565b915061274582612706565b602082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127a582612188565b91506127b083612188565b92508282039050818111156127c8576127c761276e565b5b92915050565b5f6127d882612188565b91506127e383612188565b92508282019050808211156127fb576127fa61276e565b5b92915050565b7f6e6f742074686520727067206d617374657200000000000000000000000000005f82015250565b5f6128356012836120e4565b915061284082612801565b602082019050919050565b5f6020820190508181035f83015261286281612829565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e74204e465400000000000000000000000000000000000000602082015250565b5f6128f0602d836120e4565b91506128fb82612896565b604082019050919050565b5f6020820190508181035f83015261291d816128e4565b9050919050565b7f496e76616c696420746f6b656e204944000000000000000000000000000000005f82015250565b5f6129586010836120e4565b915061296382612924565b602082019050919050565b5f6020820190508181035f8301526129858161294c565b9050919050565b7f696e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f6129c06016836120e4565b91506129cb8261298c565b602082019050919050565b5f6020820190508181035f8301526129ed816129b4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a2b82612188565b9150612a3683612188565b925082612a4657612a456129f4565b5b828206905092915050565b7f7472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f612a85601f836120e4565b9150612a9082612a51565b602082019050919050565b5f6020820190508181035f830152612ab281612a79565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f612af082612188565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b2257612b2161276e565b5b60018201905091905056fe697066733a2f2f516d54733971575377324367684a79654d6a355671435250527069314172565747686252667a374d55484b675934697066733a2f2f516d5459785778717965777277594c77366e6a795a507a75564c4a70537a5769564737674359507453584369386b697066733a2f2f516d5a416343797039736f775158425533745a5862483475476a65446767775473393342456b46367a5177614544697066733a2f2f516d51426f686b684a3342596f4c6b73316d3353673270413247656171326f47746d524855746253516d69327059a26469706673582212201c08ad4077ed2952fd113361a40bc7ae809d16bfab23ccb0455abec9fb8484d364736f6c63430008150033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061012a575f3560e01c806391cca3db116100ab578063af640d0f1161006f578063af640d0f1461036a578063b91ac78814610388578063c87b56dd146103b8578063dd62ed3e146103e8578063e985e9c5146104185761012a565b806391cca3db146102c657806393f69074146102e457806395d89b4114610300578063a22cb4651461031e578063a9059cbb1461033a5761012a565b80631f7b6d32116100f25780631f7b6d32146101fa57806323b872dd14610218578063313ce567146102485780636352211e1461026657806370a08231146102965761012a565b806306fdde031461012e578063081812fc1461014c578063095ea7b31461017c57806318160ddd146101ac5780631a72b87d146101ca575b5f80fd5b610136610448565b6040516101439190612164565b60405180910390f35b610166600480360381019061016191906121bb565b6104d7565b6040516101739190612225565b60405180910390f35b61019660048036038101906101919190612268565b6105ae565b6040516101a391906122c0565b60405180910390f35b6101b4610827565b6040516101c191906122e8565b60405180910390f35b6101e460048036038101906101df9190612268565b610830565b6040516101f1919061231d565b60405180910390f35b610202610872565b60405161020f91906122e8565b60405180910390f35b610232600480360381019061022d9190612336565b6108b9565b60405161023f91906122c0565b60405180910390f35b610250610b7e565b60405161025d91906122e8565b60405180910390f35b610280600480360381019061027b91906121bb565b610b87565b60405161028d9190612225565b60405180910390f35b6102b060048036038101906102ab9190612386565b610bb7565b6040516102bd91906122e8565b60405180910390f35b6102ce610bfd565b6040516102db9190612225565b60405180910390f35b6102fe60048036038101906102f991906123b1565b610c22565b005b610308610db1565b6040516103159190612164565b60405180910390f35b6103386004803603810190610333919061242b565b610e41565b005b610354600480360381019061034f9190612268565b610f39565b60405161036191906122c0565b60405180910390f35b610372611013565b60405161037f91906122e8565b60405180910390f35b6103a2600480360381019061039d91906121bb565b611019565b6040516103af9190612225565b60405180910390f35b6103d260048036038101906103cd91906121bb565b61104d565b6040516103df9190612164565b60405180910390f35b61040260048036038101906103fd9190612469565b6111b7565b60405161040f91906122e8565b60405180910390f35b610432600480360381019061042d9190612469565b611239565b60405161043f91906122c0565b60405180910390f35b60605f8054610456906124d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610482906124d4565b80156104cd5780601f106104a4576101008083540402835291602001916104cd565b820191905f5260205f20905b8154815290600101906020018083116104b057829003601f168201915b5050505050905090565b5f8073ffffffffffffffffffffffffffffffffffffffff1660105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056d9061254e565b60405180910390fd5b60115f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f620f42408211156106ad5781600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610642836001610e41565b818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a75f6040516106a091906125ae565b60405180910390a461081d565b5f60105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561072457506107228133611239565b155b15610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075b90612611565b60405180910390fd5b8360115f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004548473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a786604051610813919061265f565b60405180910390a4505b6001905092915050565b5f600254905090565b6013602052815f5260405f208181548110610849575f80fd5b905f5260205f209060109182820401919006600202915091509054906101000a900461ffff1681565b5f60135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050905090565b5f60055482106109995781600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906126e8565b60405180910390fd5b6109898433846112c7565b610994848484611415565b610b73565b60105f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610a7e57508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a6c5750610a3d826104d7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610a7d5750610a7c8433611239565b5b5b610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab490612750565b60405180910390fd5b610ac8848484611a1a565b600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b16919061279b565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b6b91906127ce565b925050819055505b600190509392505050565b5f600354905090565b6010602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca89061284b565b60405180910390fd5b8260095f60038110610cc657610cc5612869565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816009600160038110610d1a57610d19612869565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806009600260038110610d6e57610d6d612869565b5b015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b606060018054610dc0906124d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610dec906124d4565b8015610e375780601f10610e0e57610100808354040283529160200191610e37565b820191905f5260205f20905b815481529060010190602001808311610e1a57829003601f168201915b5050505050905090565b8060125f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f2d91906122c0565b60405180910390a35050565b5f6005548210610f5357610f4e338484611415565b611009565b610f5e338484611a1a565b600454600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fac919061279b565b92505081905550600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461100191906127ce565b925050819055505b6001905092915050565b60065481565b60098160038110611028575f80fd5b015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061105882612072565b611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612906565b60405180910390fd5b600182101580156110aa57506103e88211155b156110cf57604051806060016040528060358152602001612b2e6035913990506111b2565b6103e8821180156110e257506107d08211155b1561110757604051806060016040528060358152602001612b636035913990506111b2565b6107d08211801561111a5750610bb88211155b1561113f57604051806060016040528060358152602001612bcd6035913990506111b2565b610bb8821180156111525750610fa08211155b1561117757604051806060016040528060358152602001612b986035913990506111b2565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a99061296e565b60405180910390fd5b919050565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906129d6565b60405180910390fd5b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611409919061279b565b92505081905550505050565b600554816114239190612a21565b60078190555060075481611437919061279b565b905060095f6003811061144d5761144c612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611507575060096001600381106114b7576114b6612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806115725750600960026003811061152257611521612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b600d5f6101000a81548160ff02191690831515021790555060095f6003811061159e5761159d612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806116585750600960016003811061160857611607612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806116c35750600960026003811061167357611672612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b600d60016101000a81548160ff0219169083151502179055505f600454600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117289190612a21565b14600d60026101000a81548160ff0219169083151502179055505f600454600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461178e9190612a21565b14600d60036101000a81548160ff0219169083151502179055505f60045482600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117f5919061279b565b6117ff9190612a21565b14600d60046101000a81548160ff0219169083151502179055505f60045482600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461186691906127ce565b6118709190612a21565b14600d60056101000a81548160ff02191690831515021790555080600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190612a9b565b60405180910390fd5b80600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611956919061279b565b9250508190555080600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546119a991906127ce565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148783604051611a0d91906122e8565b60405180910390a3505050565b5f60095f60038110611a2f57611a2e612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ae957506009600160038110611a9957611a98612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611b5457506009600260038110611b0457611b03612869565b5b015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b905060105f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c3d5750808015611c3c5750611bcc826104d7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c3b5750611c3a60105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633611239565b5b5b5b611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7390612750565b60405180910390fd5b60115f8381526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558260105f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015611f8d578260135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611d9857611d97612869565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1661ffff1603611f7a5760135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050611e4d919061279b565b81548110611e5e57611e5d612869565b5b905f5260205f2090601091828204019190066002029054906101000a900461ffff1660135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611ecf57611ece612869565b5b905f5260205f2090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480611f4957611f48612ab9565b5b600190038181905f5260205f2090601091828204019190066002026101000a81549061ffff02191690559055611f8d565b8080611f8590612ae6565b915050611d00565b5060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f2090601091828204019190066002029091909190916101000a81548161ffff021916908361ffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660105f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121115780820151818401526020810190506120f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612136826120da565b61214081856120e4565b93506121508185602086016120f4565b6121598161211c565b840191505092915050565b5f6020820190508181035f83015261217c818461212c565b905092915050565b5f80fd5b5f819050919050565b61219a81612188565b81146121a4575f80fd5b50565b5f813590506121b581612191565b92915050565b5f602082840312156121d0576121cf612184565b5b5f6121dd848285016121a7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61220f826121e6565b9050919050565b61221f81612205565b82525050565b5f6020820190506122385f830184612216565b92915050565b61224781612205565b8114612251575f80fd5b50565b5f813590506122628161223e565b92915050565b5f806040838503121561227e5761227d612184565b5b5f61228b85828601612254565b925050602061229c858286016121a7565b9150509250929050565b5f8115159050919050565b6122ba816122a6565b82525050565b5f6020820190506122d35f8301846122b1565b92915050565b6122e281612188565b82525050565b5f6020820190506122fb5f8301846122d9565b92915050565b5f61ffff82169050919050565b61231781612301565b82525050565b5f6020820190506123305f83018461230e565b92915050565b5f805f6060848603121561234d5761234c612184565b5b5f61235a86828701612254565b935050602061236b86828701612254565b925050604061237c868287016121a7565b9150509250925092565b5f6020828403121561239b5761239a612184565b5b5f6123a884828501612254565b91505092915050565b5f805f606084860312156123c8576123c7612184565b5b5f6123d586828701612254565b93505060206123e686828701612254565b92505060406123f786828701612254565b9150509250925092565b61240a816122a6565b8114612414575f80fd5b50565b5f8135905061242581612401565b92915050565b5f806040838503121561244157612440612184565b5b5f61244e85828601612254565b925050602061245f85828601612417565b9150509250929050565b5f806040838503121561247f5761247e612184565b5b5f61248c85828601612254565b925050602061249d85828601612254565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806124eb57607f821691505b6020821081036124fe576124fd6124a7565b5b50919050565b7f746f6b656e20646f6573206e6f742065786973740000000000000000000000005f82015250565b5f6125386014836120e4565b915061254382612504565b602082019050919050565b5f6020820190508181035f8301526125658161252c565b9050919050565b5f819050919050565b5f819050919050565b5f61259861259361258e8461256c565b612575565b612188565b9050919050565b6125a88161257e565b82525050565b5f6020820190506125c15f83018461259f565b92915050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f6125fb600c836120e4565b9150612606826125c7565b602082019050919050565b5f6020820190508181035f830152612628816125ef565b9050919050565b5f61264961264461263f84612301565b612575565b612188565b9050919050565b6126598161262f565b82525050565b5f6020820190506126725f830184612650565b92915050565b7f7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126d26021836120e4565b91506126dd82612678565b604082019050919050565b5f6020820190508181035f8301526126ff816126c6565b9050919050565b7f7472616e73666572206e6f7420616c6c6f7765640000000000000000000000005f82015250565b5f61273a6014836120e4565b915061274582612706565b602082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127a582612188565b91506127b083612188565b92508282039050818111156127c8576127c761276e565b5b92915050565b5f6127d882612188565b91506127e383612188565b92508282019050808211156127fb576127fa61276e565b5b92915050565b7f6e6f742074686520727067206d617374657200000000000000000000000000005f82015250565b5f6128356012836120e4565b915061284082612801565b602082019050919050565b5f6020820190508181035f83015261286281612829565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e74204e465400000000000000000000000000000000000000602082015250565b5f6128f0602d836120e4565b91506128fb82612896565b604082019050919050565b5f6020820190508181035f83015261291d816128e4565b9050919050565b7f496e76616c696420746f6b656e204944000000000000000000000000000000005f82015250565b5f6129586010836120e4565b915061296382612924565b602082019050919050565b5f6020820190508181035f8301526129858161294c565b9050919050565b7f696e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f6129c06016836120e4565b91506129cb8261298c565b602082019050919050565b5f6020820190508181035f8301526129ed816129b4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a2b82612188565b9150612a3683612188565b925082612a4657612a456129f4565b5b828206905092915050565b7f7472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f612a85601f836120e4565b9150612a9082612a51565b602082019050919050565b5f6020820190508181035f830152612ab281612a79565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f612af082612188565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b2257612b2161276e565b5b60018201905091905056fe697066733a2f2f516d54733971575377324367684a79654d6a355671435250527069314172565747686252667a374d55484b675934697066733a2f2f516d5459785778717965777277594c77366e6a795a507a75564c4a70537a5769564737674359507453584369386b697066733a2f2f516d5a416343797039736f775158425533745a5862483475476a65446767775473393342456b46367a5177614544697066733a2f2f516d51426f686b684a3342596f4c6b73316d3353673270413247656171326f47746d524855746253516d69327059a26469706673582212201c08ad4077ed2952fd113361a40bc7ae809d16bfab23ccb0455abec9fb8484d364736f6c63430008150033

Deployed Bytecode Sourcemap

393:7601:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:69;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5993:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2559:591;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2029:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1197:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2468:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5034:727;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1012:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2109:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;677:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2331:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1876:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6193:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4690:336;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;636:14;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;702:23;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:761;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2209:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6400:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1801:69;1838:13;1862:5;1855:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:69;:::o;5993:192::-;6052:7;6108:1;6080:30;;:7;:16;6088:7;6080:16;;;;;;;;;;;;;;;;;;;;;:30;;;6072:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6153:15;:24;6169:7;6153:24;;;;;;;;;;;;;;;;;;;;;6146:31;;5993:192;;;:::o;2559:591::-;2622:4;2652:5;2643:6;:14;2639:482;;;2708:6;2674:10;:22;2685:10;2674:22;;;;;;;;;;;;;;;:31;2697:7;2674:31;;;;;;;;;;;;;;;:40;;;;2729:32;2747:7;2756:4;2729:17;:32::i;:::-;2811:6;2802:7;2781:40;;2790:10;2781:40;;;2819:1;2781:40;;;;;;:::i;:::-;;;;;;;;2639:482;;;2863:13;2879:7;:15;2887:6;2879:15;;;;;;;;;;;;;;;;;;;;;2863:31;;2927:5;2913:19;;:10;:19;;;;:59;;;;;2937:35;2954:5;2961:10;2937:16;:35::i;:::-;2936:36;2913:59;2909:87;;;2974:22;;;;;;;;;;:::i;:::-;;;;;;;;2909:87;3037:7;3011:15;:23;3027:6;3011:23;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3089:3;;3080:7;3064:45;;3073:5;3064:45;;;3101:6;3064:45;;;;;;:::i;:::-;;;;;;;;2848:273;2639:482;3138:4;3131:11;;2559:591;;;;:::o;2029:74::-;2073:4;2088:12;;2081:19;;2029:74;:::o;1197:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2468:83::-;2507:4;2521:9;:21;2531:10;2521:21;;;;;;;;;;;;;;;:28;;;;2514:35;;2468:83;:::o;5034:727::-;5111:4;5142;;5132:6;:14;5128:604;;5203:6;5171:10;:16;5182:4;5171:16;;;;;;;;;;;;;;;:28;5188:10;5171:28;;;;;;;;;;;;;;;;:38;;5163:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;5262:41;5278:4;5284:10;5296:6;5262:15;:41::i;:::-;5318:29;5330:4;5336:2;5340:6;5318:11;:29::i;:::-;5128:604;;;5414:7;:15;5422:6;5414:15;;;;;;;;;;;;;;;;;;;;;5406:23;;:4;:23;;;:139;;;;;5465:4;5451:18;;:10;:18;;;:55;;;;5487:19;5499:6;5487:11;:19::i;:::-;5473:33;;:10;:33;;;5451:55;:93;;;;5510:34;5527:4;5533:10;5510:16;:34::i;:::-;5451:93;5406:139;5380:221;;;;;;;;;;;;:::i;:::-;;;;;;;;;5616:30;5629:4;5635:2;5639:6;5616:12;:30::i;:::-;5681:3;;5661:10;:16;5672:4;5661:16;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;5717:3;;5699:10;:14;5710:2;5699:14;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;5128:604;5749:4;5742:11;;5034:727;;;;;:::o;1955:68::-;1996:4;2011:9;;2004:16;;1955:68;:::o;1012:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;2109:94::-;2166:4;2181:10;:19;2192:7;2181:19;;;;;;;;;;;;;;;;2174:26;;2109:94;;;:::o;677:18::-;;;;;;;;;;;;;:::o;2331:131::-;1657:3;;;;;;;;;;;1643:17;;:10;:17;;;1635:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;2421:5:::1;2410;2416:1;2410:8;;;;;;;:::i;:::-;;;;:16;;;;;;;;;;;;;;;;;;2438:5;2427;2433:1;2427:8;;;;;;;:::i;:::-;;;;:16;;;;;;;;;;;;;;;;;;2455:5;2444;2450:1;2444:8;;;;;;;:::i;:::-;;;;:16;;;;;;;;;;;;;;;;;;2331:131:::0;;;:::o;1876:73::-;1915:13;1939:7;1932:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:73;:::o;6193:199::-;6314:8;6271:18;:30;6290:10;6271:30;;;;;;;;;;;;;;;:40;6302:8;6271:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;6365:8;6338:46;;6353:10;6338:46;;;6375:8;6338:46;;;;;;:::i;:::-;;;;;;;;6193:199;;:::o;4690:336::-;4749:4;4780;;4770:6;:14;4766:231;;4801:35;4813:10;4825:2;4829:6;4801:11;:35::i;:::-;4766:231;;;4869:36;4882:10;4894:2;4898:6;4869:12;:36::i;:::-;4946:3;;4920:10;:22;4931:10;4920:22;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;4982:3;;4964:10;:14;4975:2;4964:14;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;4766:231;5014:4;5007:11;;4690:336;;;;:::o;636:14::-;;;;:::o;702:23::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6686:761::-;6742:13;6776:14;6782:7;6776:5;:14::i;:::-;6768:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6868:1;6857:7;:12;;:31;;;;;6884:4;6873:7;:15;;6857:31;6853:587;;;6905:62;;;;;;;;;;;;;;;;;;;;;6853:587;6999:4;6989:7;:14;:33;;;;;7018:4;7007:7;:15;;6989:33;6985:455;;;7039:62;;;;;;;;;;;;;;;;;;;;;6985:455;7133:4;7123:7;:14;:33;;;;;7152:4;7141:7;:15;;7123:33;7119:321;;;7173:62;;;;;;;;;;;;;;;;;;;;;7119:321;7267:4;7257:7;:14;:33;;;;;7286:4;7275:7;:15;;7257:33;7253:187;;;7307:62;;;;;;;;;;;;;;;;;;;;;7253:187;7402:26;;;;;;;;;;:::i;:::-;;;;;;;;6686:761;;;;:::o;2209:116::-;2281:4;2296:10;:17;2307:5;2296:17;;;;;;;;;;;;;;;:26;2314:7;2296:26;;;;;;;;;;;;;;;;2289:33;;2209:116;;;;:::o;6400:147::-;6480:4;6504:18;:25;6523:5;6504:25;;;;;;;;;;;;;;;:35;6530:8;6504:35;;;;;;;;;;;;;;;;;;;;;;;;;6497:42;;6400:147;;;;:::o;5769:216::-;5897:6;5867:10;:17;5878:5;5867:17;;;;;;;;;;;;;;;:26;5885:7;5867:26;;;;;;;;;;;;;;;;:36;;5859:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5971:6;5941:10;:17;5952:5;5941:17;;;;;;;;;;;;;;;:26;5959:7;5941:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;5769:216;;;:::o;3158:731::-;3264:4;;3255:6;:13;;;;:::i;:::-;3246:6;:22;;;;3290:6;;3280:16;;;;;:::i;:::-;;;3326:5;3332:1;3326:8;;;;;;;:::i;:::-;;;;;;;;;;;;;3318:16;;:4;:16;;;:36;;;;3346:5;3352:1;3346:8;;;;;;;:::i;:::-;;;;;;;;;;;;;3338:16;;:4;:16;;;3318:36;:56;;;;3366:5;3372:1;3366:8;;;;;;;:::i;:::-;;;;;;;;;;;;;3358:16;;:4;:16;;;3318:56;3307:8;;:67;;;;;;;;;;;;;;;;;;3400:5;3406:1;3400:8;;;;;;;:::i;:::-;;;;;;;;;;;;;3394:14;;:2;:14;;;:32;;;;3418:5;3424:1;3418:8;;;;;;;:::i;:::-;;;;;;;;;;;;;3412:14;;:2;:14;;;3394:32;:50;;;;3436:5;3442:1;3436:8;;;;;;;:::i;:::-;;;;;;;;;;;;;3430:14;;:2;:14;;;3394:50;3385:6;;:59;;;;;;;;;;;;;;;;;;3497:1;3490:3;;3471:10;:16;3482:4;3471:16;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:27;3455:13;;:43;;;;;;;;;;;;;;;;;;3548:1;3541:3;;3524:10;:14;3535:2;3524:14;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;:25;3510:11;;:39;;;;;;;;;;;;;;;;;;3613:1;3606:3;;3596:6;3577:10;:16;3588:4;3577:16;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;3576:33;;;;:::i;:::-;:38;3560:13;;:54;;;;;;;;;;;;;;;;;;3675:1;3668:3;;3658:6;3641:10;:14;3652:2;3641:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3640:31;;;;:::i;:::-;:36;3626:11;;:50;;;;;;;;;;;;;;;;;;3717:6;3697:10;:16;3708:4;3697:16;;;;;;;;;;;;;;;;:26;;3689:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3792:6;3772:10;:16;3783:4;3772:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;3828:6;3810:10;:14;3821:2;3810:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;3870:2;3850:31;;3864:4;3850:31;;;3874:6;3850:31;;;;;;:::i;:::-;;;;;;;;3158:731;;;:::o;3897:785::-;3985:15;4011:5;4017:1;4011:8;;;;;;;:::i;:::-;;;;;;;;;;;;;4003:16;;:4;:16;;;:36;;;;4031:5;4037:1;4031:8;;;;;;;:::i;:::-;;;;;;;;;;;;;4023:16;;:4;:16;;;4003:36;:56;;;;4051:5;4057:1;4051:8;;;;;;;:::i;:::-;;;;;;;;;;;;;4043:16;;:4;:16;;;4003:56;3985:74;;4092:7;:16;4100:7;4092:16;;;;;;;;;;;;;;;;;;;;;4084:24;;:4;:24;;;:140;;;;4123:10;:100;;;;;4152:20;4164:7;4152:11;:20::i;:::-;4138:34;;:10;:34;;;:84;;;;4176:46;4193:7;:16;4201:7;4193:16;;;;;;;;;;;;;;;;;;;;;4211:10;4176:16;:46::i;:::-;4138:84;4123:100;4084:140;4066:198;;;;;;;;;;;;:::i;:::-;;;;;;;;;4280:15;:24;4296:7;4280:24;;;;;;;;;;;;4273:31;;;;;;;;;;;4330:2;4311:7;:16;4319:7;4311:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4349:6;4344:252;4365:9;:15;4375:4;4365:15;;;;;;;;;;;;;;;:22;;;;4361:1;:26;4344:252;;;4431:7;4409:9;:15;4419:4;4409:15;;;;;;;;;;;;;;;4425:1;4409:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4405:184;;4476:9;:15;4486:4;4476:15;;;;;;;;;;;;;;;4517:1;4492:9;:15;4502:4;4492:15;;;;;;;;;;;;;;;:22;;;;:26;;;;:::i;:::-;4476:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4455:9;:15;4465:4;4455:15;;;;;;;;;;;;;;;4471:1;4455:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;4535:9;:15;4545:4;4535:15;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4572:5;;4405:184;4389:3;;;;;:::i;:::-;;;;4344:252;;;;4602:9;:13;4612:2;4602:13;;;;;;;;;;;;;;;4628:7;4602:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4670:7;4666:2;4651:27;;4660:4;4651:27;;;;;;;;;;;;3976:706;3897:785;;;:::o;6567:111::-;6622:4;6672:1;6644:30;;:7;:16;6652:7;6644:16;;;;;;;;;;;;;;;;;;;;;:30;;;;6637:37;;6567:111;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:77;1713:7;1742:5;1731:16;;1676:77;;;:::o;1759:122::-;1832:24;1850:5;1832:24;:::i;:::-;1825:5;1822:35;1812:63;;1871:1;1868;1861:12;1812:63;1759:122;:::o;1887:139::-;1933:5;1971:6;1958:20;1949:29;;1987:33;2014:5;1987:33;:::i;:::-;1887:139;;;;:::o;2032:329::-;2091:6;2140:2;2128:9;2119:7;2115:23;2111:32;2108:119;;;2146:79;;:::i;:::-;2108:119;2266:1;2291:53;2336:7;2327:6;2316:9;2312:22;2291:53;:::i;:::-;2281:63;;2237:117;2032:329;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:118::-;2688:24;2706:5;2688:24;:::i;:::-;2683:3;2676:37;2601:118;;:::o;2725:222::-;2818:4;2856:2;2845:9;2841:18;2833:26;;2869:71;2937:1;2926:9;2922:17;2913:6;2869:71;:::i;:::-;2725:222;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:118::-;4220:24;4238:5;4220:24;:::i;:::-;4215:3;4208:37;4133:118;;:::o;4257:222::-;4350:4;4388:2;4377:9;4373:18;4365:26;;4401:71;4469:1;4458:9;4454:17;4445:6;4401:71;:::i;:::-;4257:222;;;;:::o;4485:89::-;4521:7;4561:6;4554:5;4550:18;4539:29;;4485:89;;;:::o;4580:115::-;4665:23;4682:5;4665:23;:::i;:::-;4660:3;4653:36;4580:115;;:::o;4701:218::-;4792:4;4830:2;4819:9;4815:18;4807:26;;4843:69;4909:1;4898:9;4894:17;4885:6;4843:69;:::i;:::-;4701:218;;;;:::o;4925:619::-;5002:6;5010;5018;5067:2;5055:9;5046:7;5042:23;5038:32;5035:119;;;5073:79;;:::i;:::-;5035:119;5193:1;5218:53;5263:7;5254:6;5243:9;5239:22;5218:53;:::i;:::-;5208:63;;5164:117;5320:2;5346:53;5391:7;5382:6;5371:9;5367:22;5346:53;:::i;:::-;5336:63;;5291:118;5448:2;5474:53;5519:7;5510:6;5499:9;5495:22;5474:53;:::i;:::-;5464:63;;5419:118;4925:619;;;;;:::o;5550:329::-;5609:6;5658:2;5646:9;5637:7;5633:23;5629:32;5626:119;;;5664:79;;:::i;:::-;5626:119;5784:1;5809:53;5854:7;5845:6;5834:9;5830:22;5809:53;:::i;:::-;5799:63;;5755:117;5550:329;;;;:::o;5885:619::-;5962:6;5970;5978;6027:2;6015:9;6006:7;6002:23;5998:32;5995:119;;;6033:79;;:::i;:::-;5995:119;6153:1;6178:53;6223:7;6214:6;6203:9;6199:22;6178:53;:::i;:::-;6168:63;;6124:117;6280:2;6306:53;6351:7;6342:6;6331:9;6327:22;6306:53;:::i;:::-;6296:63;;6251:118;6408:2;6434:53;6479:7;6470:6;6459:9;6455:22;6434:53;:::i;:::-;6424:63;;6379:118;5885:619;;;;;:::o;6510:116::-;6580:21;6595:5;6580:21;:::i;:::-;6573:5;6570:32;6560:60;;6616:1;6613;6606:12;6560:60;6510:116;:::o;6632:133::-;6675:5;6713:6;6700:20;6691:29;;6729:30;6753:5;6729:30;:::i;:::-;6632:133;;;;:::o;6771:468::-;6836:6;6844;6893:2;6881:9;6872:7;6868:23;6864:32;6861:119;;;6899:79;;:::i;:::-;6861:119;7019:1;7044:53;7089:7;7080:6;7069:9;7065:22;7044:53;:::i;:::-;7034:63;;6990:117;7146:2;7172:50;7214:7;7205:6;7194:9;7190:22;7172:50;:::i;:::-;7162:60;;7117:115;6771:468;;;;;:::o;7245:474::-;7313:6;7321;7370:2;7358:9;7349:7;7345:23;7341:32;7338:119;;;7376:79;;:::i;:::-;7338:119;7496:1;7521:53;7566:7;7557:6;7546:9;7542:22;7521:53;:::i;:::-;7511:63;;7467:117;7623:2;7649:53;7694:7;7685:6;7674:9;7670:22;7649:53;:::i;:::-;7639:63;;7594:118;7245:474;;;;;:::o;7725:180::-;7773:77;7770:1;7763:88;7870:4;7867:1;7860:15;7894:4;7891:1;7884:15;7911:320;7955:6;7992:1;7986:4;7982:12;7972:22;;8039:1;8033:4;8029:12;8060:18;8050:81;;8116:4;8108:6;8104:17;8094:27;;8050:81;8178:2;8170:6;8167:14;8147:18;8144:38;8141:84;;8197:18;;:::i;:::-;8141:84;7962:269;7911:320;;;:::o;8237:170::-;8377:22;8373:1;8365:6;8361:14;8354:46;8237:170;:::o;8413:366::-;8555:3;8576:67;8640:2;8635:3;8576:67;:::i;:::-;8569:74;;8652:93;8741:3;8652:93;:::i;:::-;8770:2;8765:3;8761:12;8754:19;;8413:366;;;:::o;8785:419::-;8951:4;8989:2;8978:9;8974:18;8966:26;;9038:9;9032:4;9028:20;9024:1;9013:9;9009:17;9002:47;9066:131;9192:4;9066:131;:::i;:::-;9058:139;;8785:419;;;:::o;9210:85::-;9255:7;9284:5;9273:16;;9210:85;;;:::o;9301:60::-;9329:3;9350:5;9343:12;;9301:60;;;:::o;9367:158::-;9425:9;9458:61;9476:42;9485:32;9511:5;9485:32;:::i;:::-;9476:42;:::i;:::-;9458:61;:::i;:::-;9445:74;;9367:158;;;:::o;9531:147::-;9626:45;9665:5;9626:45;:::i;:::-;9621:3;9614:58;9531:147;;:::o;9684:238::-;9785:4;9823:2;9812:9;9808:18;9800:26;;9836:79;9912:1;9901:9;9897:17;9888:6;9836:79;:::i;:::-;9684:238;;;;:::o;9928:162::-;10068:14;10064:1;10056:6;10052:14;10045:38;9928:162;:::o;10096:366::-;10238:3;10259:67;10323:2;10318:3;10259:67;:::i;:::-;10252:74;;10335:93;10424:3;10335:93;:::i;:::-;10453:2;10448:3;10444:12;10437:19;;10096:366;;;:::o;10468:419::-;10634:4;10672:2;10661:9;10657:18;10649:26;;10721:9;10715:4;10711:20;10707:1;10696:9;10692:17;10685:47;10749:131;10875:4;10749:131;:::i;:::-;10741:139;;10468:419;;;:::o;10893:140::-;10942:9;10975:52;10993:33;11002:23;11019:5;11002:23;:::i;:::-;10993:33;:::i;:::-;10975:52;:::i;:::-;10962:65;;10893:140;;;:::o;11039:129::-;11125:36;11155:5;11125:36;:::i;:::-;11120:3;11113:49;11039:129;;:::o;11174:220::-;11266:4;11304:2;11293:9;11289:18;11281:26;;11317:70;11384:1;11373:9;11369:17;11360:6;11317:70;:::i;:::-;11174:220;;;;:::o;11400:::-;11540:34;11536:1;11528:6;11524:14;11517:58;11609:3;11604:2;11596:6;11592:15;11585:28;11400:220;:::o;11626:366::-;11768:3;11789:67;11853:2;11848:3;11789:67;:::i;:::-;11782:74;;11865:93;11954:3;11865:93;:::i;:::-;11983:2;11978:3;11974:12;11967:19;;11626:366;;;:::o;11998:419::-;12164:4;12202:2;12191:9;12187:18;12179:26;;12251:9;12245:4;12241:20;12237:1;12226:9;12222:17;12215:47;12279:131;12405:4;12279:131;:::i;:::-;12271:139;;11998:419;;;:::o;12423:170::-;12563:22;12559:1;12551:6;12547:14;12540:46;12423:170;:::o;12599:366::-;12741:3;12762:67;12826:2;12821:3;12762:67;:::i;:::-;12755:74;;12838:93;12927:3;12838:93;:::i;:::-;12956:2;12951:3;12947:12;12940:19;;12599:366;;;:::o;12971:419::-;13137:4;13175:2;13164:9;13160:18;13152:26;;13224:9;13218:4;13214:20;13210:1;13199:9;13195:17;13188:47;13252:131;13378:4;13252:131;:::i;:::-;13244:139;;12971:419;;;:::o;13396:180::-;13444:77;13441:1;13434:88;13541:4;13538:1;13531:15;13565:4;13562:1;13555:15;13582:194;13622:4;13642:20;13660:1;13642:20;:::i;:::-;13637:25;;13676:20;13694:1;13676:20;:::i;:::-;13671:25;;13720:1;13717;13713:9;13705:17;;13744:1;13738:4;13735:11;13732:37;;;13749:18;;:::i;:::-;13732:37;13582:194;;;;:::o;13782:191::-;13822:3;13841:20;13859:1;13841:20;:::i;:::-;13836:25;;13875:20;13893:1;13875:20;:::i;:::-;13870:25;;13918:1;13915;13911:9;13904:16;;13939:3;13936:1;13933:10;13930:36;;;13946:18;;:::i;:::-;13930:36;13782:191;;;;:::o;13979:168::-;14119:20;14115:1;14107:6;14103:14;14096:44;13979:168;:::o;14153:366::-;14295:3;14316:67;14380:2;14375:3;14316:67;:::i;:::-;14309:74;;14392:93;14481:3;14392:93;:::i;:::-;14510:2;14505:3;14501:12;14494:19;;14153:366;;;:::o;14525:419::-;14691:4;14729:2;14718:9;14714:18;14706:26;;14778:9;14772:4;14768:20;14764:1;14753:9;14749:17;14742:47;14806:131;14932:4;14806:131;:::i;:::-;14798:139;;14525:419;;;:::o;14950:180::-;14998:77;14995:1;14988:88;15095:4;15092:1;15085:15;15119:4;15116:1;15109:15;15136:232;15276:34;15272:1;15264:6;15260:14;15253:58;15345:15;15340:2;15332:6;15328:15;15321:40;15136:232;:::o;15374:366::-;15516:3;15537:67;15601:2;15596:3;15537:67;:::i;:::-;15530:74;;15613:93;15702:3;15613:93;:::i;:::-;15731:2;15726:3;15722:12;15715:19;;15374:366;;;:::o;15746:419::-;15912:4;15950:2;15939:9;15935:18;15927:26;;15999:9;15993:4;15989:20;15985:1;15974:9;15970:17;15963:47;16027:131;16153:4;16027:131;:::i;:::-;16019:139;;15746:419;;;:::o;16171:166::-;16311:18;16307:1;16299:6;16295:14;16288:42;16171:166;:::o;16343:366::-;16485:3;16506:67;16570:2;16565:3;16506:67;:::i;:::-;16499:74;;16582:93;16671:3;16582:93;:::i;:::-;16700:2;16695:3;16691:12;16684:19;;16343:366;;;:::o;16715:419::-;16881:4;16919:2;16908:9;16904:18;16896:26;;16968:9;16962:4;16958:20;16954:1;16943:9;16939:17;16932:47;16996:131;17122:4;16996:131;:::i;:::-;16988:139;;16715:419;;;:::o;17140:172::-;17280:24;17276:1;17268:6;17264:14;17257:48;17140:172;:::o;17318:366::-;17460:3;17481:67;17545:2;17540:3;17481:67;:::i;:::-;17474:74;;17557:93;17646:3;17557:93;:::i;:::-;17675:2;17670:3;17666:12;17659:19;;17318:366;;;:::o;17690:419::-;17856:4;17894:2;17883:9;17879:18;17871:26;;17943:9;17937:4;17933:20;17929:1;17918:9;17914:17;17907:47;17971:131;18097:4;17971:131;:::i;:::-;17963:139;;17690:419;;;:::o;18115:180::-;18163:77;18160:1;18153:88;18260:4;18257:1;18250:15;18284:4;18281:1;18274:15;18301:176;18333:1;18350:20;18368:1;18350:20;:::i;:::-;18345:25;;18384:20;18402:1;18384:20;:::i;:::-;18379:25;;18423:1;18413:35;;18428:18;;:::i;:::-;18413:35;18469:1;18466;18462:9;18457:14;;18301:176;;;;:::o;18483:181::-;18623:33;18619:1;18611:6;18607:14;18600:57;18483:181;:::o;18670:366::-;18812:3;18833:67;18897:2;18892:3;18833:67;:::i;:::-;18826:74;;18909:93;18998:3;18909:93;:::i;:::-;19027:2;19022:3;19018:12;19011:19;;18670:366;;;:::o;19042:419::-;19208:4;19246:2;19235:9;19231:18;19223:26;;19295:9;19289:4;19285:20;19281:1;19270:9;19266:17;19259:47;19323:131;19449:4;19323:131;:::i;:::-;19315:139;;19042:419;;;:::o;19467:180::-;19515:77;19512:1;19505:88;19612:4;19609:1;19602:15;19636:4;19633:1;19626:15;19653:233;19692:3;19715:24;19733:5;19715:24;:::i;:::-;19706:33;;19761:66;19754:5;19751:77;19748:103;;19831:18;;:::i;:::-;19748:103;19878:1;19871:5;19867:13;19860:20;;19653:233;;;:::o

Swarm Source

ipfs://1c08ad4077ed2952fd113361a40bc7ae809d16bfab23ccb0455abec9fb8484d3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.