Token EXZENSVERS

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
5,000,000,000 EXSV

Holders:
276 addresses

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

ExzensVers, gameFi virtual giants football field, offices residences by integrating meta. It was prepared on the basis of Play-to-Earn.


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

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x1e1aa510428da6d7eb56d9112b396f32c85e04b4

Contract Name:
LERC20

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2022-07-11
*/

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface ILssController {
    function beforeTransfer(address sender, address recipient, uint256 amount) external;

    function beforeTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external;

    function beforeApprove(address sender, address spender, uint256 amount) external;

    function beforeIncreaseAllowance(address msgSender, address spender, uint256 addedValue) external;

    function beforeDecreaseAllowance(address msgSender, address spender, uint256 subtractedValue) external;
}

contract LERC20 is Context {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    address public recoveryAdmin;
    address private recoveryAdminCandidate;
    bytes32 private recoveryAdminKeyHash;
    address public admin;
    uint256 public timelockPeriod;
    uint256 public losslessTurnOffTimestamp;
    bool public isLosslessOn = true;
    ILssController public lossless;

    constructor(uint256 totalSupply_, string memory name_, string memory symbol_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) {
        _mint(_msgSender(), totalSupply_);
        _name = name_;
        _symbol = symbol_;
        admin = admin_;
        recoveryAdmin = recoveryAdmin_;
        recoveryAdminCandidate = address(0);
        recoveryAdminKeyHash = "";
        timelockPeriod = timelockPeriod_;
        losslessTurnOffTimestamp = 0;
        lossless = ILssController(lossless_);
    }


    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event NewAdmin(address indexed _newAdmin);
    event NewRecoveryAdminProposal(address indexed _candidate);
    event NewRecoveryAdmin(address indexed _newAdmin);
    event LosslessTurnOffProposal(uint256 _turnOffDate);
    event LosslessOff();
    event LosslessOn();

    // --- LOSSLESS modifiers ---

    modifier lssAprove(address spender, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeApprove(_msgSender(), spender, amount);
        } 
        _;
    }

    modifier lssTransfer(address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransfer(_msgSender(), recipient, amount);
        } 
        _;
    }

    modifier lssTransferFrom(address sender, address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransferFrom(_msgSender(),sender, recipient, amount);
        }
        _;
    }

    modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
        if (isLosslessOn) {
            lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
        }
        _;
    }

    modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
        if (isLosslessOn) {
            lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
        }
        _;
    }

    modifier onlyRecoveryAdmin() {
        require(_msgSender() == recoveryAdmin, "LERC20: Must be recovery admin");
        _;
    }

    // --- LOSSLESS management ---
    function transferOutBlacklistedFunds(address[] calldata from) external {
        require(_msgSender() == address(lossless), "LERC20: Only lossless contract");

        uint256 fromLength = from.length;
        uint256 totalAmount = 0;
        
        for (uint256 i = 0; i < fromLength; i++) {
            address fromAddress = from[i];
            uint256 fromBalance = _balances[fromAddress];
            _balances[fromAddress] = 0;
            totalAmount += fromBalance;
            emit Transfer(fromAddress, address(lossless), fromBalance);
        }

        _balances[address(lossless)] += totalAmount;
    }

    function setLosslessAdmin(address newAdmin) external onlyRecoveryAdmin {
        require(newAdmin != admin, "LERC20: Cannot set same address");
        emit NewAdmin(newAdmin);
        admin = newAdmin;
    }

    function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash)  external onlyRecoveryAdmin {
        recoveryAdminCandidate = candidate;
        recoveryAdminKeyHash = keyHash;
        emit NewRecoveryAdminProposal(candidate);
    }

    function acceptRecoveryAdminOwnership(bytes memory key) external {
        require(_msgSender() == recoveryAdminCandidate, "LERC20: Must be canditate");
        require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key");
        emit NewRecoveryAdmin(recoveryAdminCandidate);
        recoveryAdmin = recoveryAdminCandidate;
        recoveryAdminCandidate = address(0);
    }

    function proposeLosslessTurnOff() external onlyRecoveryAdmin {
        require(losslessTurnOffTimestamp == 0, "LERC20: TurnOff already proposed");
        require(isLosslessOn, "LERC20: Lossless already off");
        losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
        emit LosslessTurnOffProposal(losslessTurnOffTimestamp);
    }

    function executeLosslessTurnOff() external onlyRecoveryAdmin {
        require(losslessTurnOffTimestamp != 0, "LERC20: TurnOff not proposed");
        require(losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress");
        isLosslessOn = false;
        losslessTurnOffTimestamp = 0;
        emit LosslessOff();
    }

    function executeLosslessTurnOn() external onlyRecoveryAdmin {
        require(!isLosslessOn, "LERC20: Lossless already on");
        losslessTurnOffTimestamp = 0;
        isLosslessOn = true;
        emit LosslessOn();
    }

    function getAdmin() public view virtual returns (address) {
        return admin;
    }

    // --- ERC20 methods ---

    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 (uint8) {
        return 18;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual lssTransfer(recipient, amount) returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual lssAprove(spender, amount) returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual lssTransferFrom(sender, recipient, amount) returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "LERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual lssIncreaseAllowance(spender, addedValue) returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual lssDecreaseAllowance(spender, subtractedValue) returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "LERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "LERC20: transfer from the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "LERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "LERC20: mint to the zero address");
    
        _totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked { 
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewRecoveryAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_candidate","type":"address"}],"name":"NewRecoveryAdminProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lossless","outputs":[{"internalType":"contract ILssController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600b805460ff191660011790553480156200001e57600080fd5b50604051620018ec380380620018ec833981016040819052620000419162000325565b6200004d3388620000e9565b855162000062906003906020890190620001af565b50845162000078906004906020880190620001af565b50600880546001600160a01b039586166001600160a01b03199182161790915560058054948616948216949094179093556006805490931690925560006007819055600991909155600a55600b80549190921661010002610100600160a81b03199091161790555062000450915050565b6001600160a01b038216620001445760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373604482015260640160405180910390fd5b8060026000828254620001589190620003d8565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001bd90620003fd565b90600052602060002090601f016020900481019282620001e157600085556200022c565b82601f10620001fc57805160ff19168380011785556200022c565b828001600101855582156200022c579182015b828111156200022c5782518255916020019190600101906200020f565b506200023a9291506200023e565b5090565b5b808211156200023a57600081556001016200023f565b80516001600160a01b03811681146200026d57600080fd5b919050565b600082601f83011262000283578081fd5b81516001600160401b0380821115620002a057620002a06200043a565b604051601f8301601f19908116603f01168101908282118183101715620002cb57620002cb6200043a565b81604052838152602092508683858801011115620002e7578485fd5b8491505b838210156200030a5785820183015181830184015290820190620002eb565b838211156200031b57848385830101525b9695505050505050565b600080600080600080600060e0888a03121562000340578283fd5b875160208901519097506001600160401b03808211156200035f578485fd5b6200036d8b838c0162000272565b975060408a015191508082111562000383578485fd5b50620003928a828b0162000272565b955050620003a36060890162000255565b9350620003b36080890162000255565b925060a08801519150620003ca60c0890162000255565b905092959891949750929550565b60008219821115620003f857634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200041257607f821691505b602082108114156200043457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61148c80620004606000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636e9960c3116100de578063a9059cbb11610097578063ccfa214f11610071578063ccfa214f1461031b578063d6e242b814610328578063dd62ed3e14610330578063f851a4401461036957600080fd5b8063a9059cbb146102ed578063b38fe95714610300578063b5c228771461030857600080fd5b80636e9960c31461027257806370a082311461028357806393310ffe146102ac578063936af911146102bf57806395d89b41146102d2578063a457c2d7146102da57600080fd5b8063313ce56711610130578063313ce567146101fc57806334f6ebf51461020b578063395093511461023b5780635b8a194a1461024e5780635f6529a31461025657806361086b001461026957600080fd5b806306fdde0314610178578063095ea7b31461019657806318160ddd146101b957806323b872dd146101cb5780632baa3c9e146101de5780632ecaf675146101f3575b600080fd5b61018061037c565b60405161018d919061131b565b60405180910390f35b6101a96101a43660046111b4565b61040e565b604051901515815260200161018d565b6002545b60405190815260200161018d565b6101a96101d9366004611179565b6104a0565b6101f16101ec366004611126565b6105f4565b005b6101bd60095481565b6040516012815260200161018d565b600b546102239061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b6101a96102493660046111b4565b6106db565b6101f161078d565b600554610223906001600160a01b031681565b6101bd600a5481565b6008546001600160a01b0316610223565b6101bd610291366004611126565b6001600160a01b031660009081526020819052604090205490565b6101f16102ba3660046111b4565b610850565b6101f16102cd3660046111dd565b6108d3565b610180610a47565b6101a96102e83660046111b4565b610a56565b6101a96102fb3660046111b4565b610b70565b6101f1610bf7565b6101f161031636600461124d565b610d05565b600b546101a99060ff1681565b6101f1610e15565b6101bd61033e366004611147565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600854610223906001600160a01b031681565b60606003805461038b906113d4565b80601f01602080910402602001604051908101604052809291908181526020018280546103b7906113d4565b80156104045780601f106103d957610100808354040283529160200191610404565b820191906000526020600020905b8154815290600101906020018083116103e757829003601f168201915b5050505050905090565b600b546000908390839060ff161561048a57600b5461010090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b8152600401610457939291906112f7565b600060405180830381600087803b15801561047157600080fd5b505af1158015610485573d6000803e3d6000fd5b505050505b610495338686610f31565b506001949350505050565b600b5460009084908490849060ff161561053c57600b5461010090046001600160a01b031663379f5c69336040516001600160e01b031960e084901b1681526001600160a01b0391821660048201528187166024820152908516604482015260648101849052608401600060405180830381600087803b15801561052357600080fd5b505af1158015610537573d6000803e3d6000fd5b505050505b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156105c75760405162461bcd60e51b815260206004820152602960248201527f4c45524332303a207472616e7366657220616d6f756e74206578636565647320604482015268616c6c6f77616e636560b81b60648201526084015b60405180910390fd5b6105d2888888610f92565b6105e688336105e189856113bd565b610f31565b506001979650505050505050565b6005546001600160a01b0316336001600160a01b0316146106275760405162461bcd60e51b81526004016105be9061136e565b6008546001600160a01b03828116911614156106855760405162461bcd60e51b815260206004820152601f60248201527f4c45524332303a2043616e6e6f74207365742073616d6520616464726573730060448201526064016105be565b6040516001600160a01b038216907f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c90600090a2600880546001600160a01b0319166001600160a01b0392909216919091179055565b600b546000908390839060ff161561075757600b5461010090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b8152600401610724939291906112f7565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b3360008181526001602090815260408083206001600160a01b038a168452909152902054610495919087906105e19088906113a5565b6005546001600160a01b0316336001600160a01b0316146107c05760405162461bcd60e51b81526004016105be9061136e565b600b5460ff16156108135760405162461bcd60e51b815260206004820152601b60248201527f4c45524332303a204c6f73736c65737320616c7265616479206f6e000000000060448201526064016105be565b6000600a819055600b805460ff191660011790556040517f1ba3b66404043da8297d0b876fa6464f2cb127edfc6626308046d4503028322b9190a1565b6005546001600160a01b0316336001600160a01b0316146108835760405162461bcd60e51b81526004016105be9061136e565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517f6c591da8da2f6e69746d7d9ae61c27ee29fbe303798141b4942ae2aef54274b190600090a25050565b600b5461010090046001600160a01b0316336001600160a01b03161461093b5760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016105be565b806000805b82811015610a0c57600085858381811061096a57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061097f9190611126565b6001600160a01b038116600090815260208190526040812080549190559091506109a981856113a5565b600b546040518381529195506001600160a01b03610100909104811691908416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350508080610a049061140f565b915050610940565b50600b5461010090046001600160a01b031660009081526020819052604081208054839290610a3c9084906113a5565b909155505050505050565b60606004805461038b906113d4565b600b546000908390839060ff1615610ad257600b5461010090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610a9f939291906112f7565b600060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050505b3360009081526001602090815260408083206001600160a01b038916845290915290205484811015610b555760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60448201526577207a65726f60d01b60648201526084016105be565b610b6433876105e188856113bd565b50600195945050505050565b600b546000908390839060ff1615610bec57600b5461010090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b8152600401610bb9939291906112f7565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b505050505b610495338686610f92565b6005546001600160a01b0316336001600160a01b031614610c2a5760405162461bcd60e51b81526004016105be9061136e565b600a54610c795760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a205475726e4f6666206e6f742070726f706f7365640000000060448201526064016105be565b42600a541115610ccb5760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016105be565b600b805460ff191690556000600a8190556040517f3eb72350c9c7928d31e9ab450bfff2c159434aa4b82658a7d8eae7f109cb4e7b9190a1565b6006546001600160a01b0316336001600160a01b031614610d685760405162461bcd60e51b815260206004820152601960248201527f4c45524332303a204d7573742062652063616e6469746174650000000000000060448201526064016105be565b6007548151602083012014610db55760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016105be565b6006546040516001600160a01b03909116907fb94bba6936ec7f75ee931dadf6e1a4d66b43d09b6fa0178fb13df9b77fb5841f90600090a25060068054600580546001600160a01b03199081166001600160a01b03841617909155169055565b6005546001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b81526004016105be9061136e565b600a5415610e985760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a205475726e4f666620616c72656164792070726f706f73656460448201526064016105be565b600b5460ff16610eea5760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a204c6f73736c65737320616c7265616479206f66660000000060448201526064016105be565b600954610ef790426113a5565b600a8190556040519081527f6ca688e6e3ddd707280140b2bf0106afe883689b6c74e68cbd517576dd9c245a9060200160405180910390a1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ff75760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105be565b6001600160a01b038316600090815260208190526040902054818110156110705760405162461bcd60e51b815260206004820152602760248201527f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016105be565b61107a82826113bd565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906110b09084906113a5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110fc91815260200190565b60405180910390a350505050565b80356001600160a01b038116811461112157600080fd5b919050565b600060208284031215611137578081fd5b6111408261110a565b9392505050565b60008060408385031215611159578081fd5b6111628361110a565b91506111706020840161110a565b90509250929050565b60008060006060848603121561118d578081fd5b6111968461110a565b92506111a46020850161110a565b9150604084013590509250925092565b600080604083850312156111c6578182fd5b6111cf8361110a565b946020939093013593505050565b600080602083850312156111ef578182fd5b823567ffffffffffffffff80821115611206578384fd5b818501915085601f830112611219578384fd5b813581811115611227578485fd5b8660208260051b850101111561123b578485fd5b60209290920196919550909350505050565b60006020828403121561125e578081fd5b813567ffffffffffffffff80821115611275578283fd5b818401915084601f830112611288578283fd5b81358181111561129a5761129a611440565b604051601f8201601f19908116603f011681019083821181831017156112c2576112c2611440565b816040528281528760208487010111156112da578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602080835283518082850152825b818110156113475785810183015185820160400152820161132b565b818111156113585783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b600082198211156113b8576113b861142a565b500190565b6000828210156113cf576113cf61142a565b500390565b600181811c908216806113e857607f821691505b6020821081141561140957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156114235761142361142a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220d7b29f794c6bd31102907514abadfd253d60fdd9880d3d41df27166e3d6f466264736f6c6343000804003300000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000013dd8b8f54c3b54860f8d41a6fbff7ffc6bf01ef00000000000000000000000013dd8b8f54c3b54860f8d41a6fbff7ffc6bf01ef000000000000000000000000000000000000000000000000000000000001518000000000000000000000000066622e2c1b991983e88132da19b2c31f710090350000000000000000000000000000000000000000000000000000000000000009646967697765617665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034447570000000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

990:9257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6421:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7303:187;;;;;;:::i;:::-;;:::i;:::-;;;4404:14:1;;4397:22;4379:41;;4367:2;4352:18;7303:187:0;4334:92:1;6715:99:0;6794:12;;6715:99;;;10615:25:1;;;10603:2;10588:18;6715:99:0;10570:76:1;7498:465:0;;;;;;:::i;:::-;;:::i;4464:212::-;;;;;;:::i;:::-;;:::i;:::-;;1396:29;;;;;;6623:84;;;6697:2;10793:36:1;;10781:2;10766:18;6623:84:0;10748:87:1;1516:30:0;;;;;;;;-1:-1:-1;;;;;1516:30:0;;;;;;-1:-1:-1;;;;;3354:32:1;;;3336:51;;3324:2;3309:18;1516:30:0;3291:102:1;7971:257:0;;;;;;:::i;:::-;;:::i;6055:229::-;;;:::i;1246:28::-;;;;;-1:-1:-1;;;;;1246:28:0;;;1432:39;;;;;;6292:89;6368:5;;-1:-1:-1;;;;;6368:5:0;6292:89;;6822:118;;;;;;:::i;:::-;-1:-1:-1;;;;;6914:18:0;6887:7;6914:18;;;;;;;;;;;;6822:118;4684:249;;;;;;:::i;:::-;;:::i;3824:632::-;;;;;;:::i;:::-;;:::i;6520:95::-;;;:::i;8236:425::-;;;;;;:::i;:::-;;:::i;6948:197::-;;;;;;:::i;:::-;;:::i;5702:345::-;;;:::i;4941:392::-;;;;;;:::i;:::-;;:::i;1478:31::-;;;;;;;;;5341:353;;;:::i;7153:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7260:18:0;;;7233:7;7260:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7153:142;1369:20;;;;;-1:-1:-1;;;;;1369:20:0;;;6421:91;6466:13;6499:5;6492:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6421:91;:::o;7303:187::-;2660:12;;7404:4;;7378:7;;7387:6;;2660:12;;2656:98;;;2689:8;;;;;-1:-1:-1;;;;;2689:8:0;:22;178:10;2726:7;2735:6;2689:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:98;7421:39:::1;178:10:::0;7444:7:::1;7453:6;7421:8;:39::i;:::-;-1:-1:-1::0;7478:4:0::1;::::0;7303:187;-1:-1:-1;;;;7303:187:0:o;7498:465::-;3069:12;;7638:4;;7602:6;;7610:9;;7621:6;;3069:12;;3065:112;;;3098:8;;;;;-1:-1:-1;;;;;3098:8:0;:27;178:10;3098:67;;-1:-1:-1;;;;;;3098:67:0;;;;;;;-1:-1:-1;;;;;3685:15:1;;;3098:67:0;;;3667:34:1;3737:15;;;3717:18;;;3710:43;3789:15;;;3769:18;;;3762:43;3821:18;;;3814:34;;;3601:19;;3098:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:112;-1:-1:-1;;;;;7682:19:0;::::1;7655:24;7682:19:::0;;;:11:::1;:19;::::0;;;;;;;178:10;7682:33;;;;;;;;7734:26;;::::1;;7726:80;;;::::0;-1:-1:-1;;;7726:80:0;;6596:2:1;7726:80:0::1;::::0;::::1;6578:21:1::0;6635:2;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;-1:-1:-1;;;6725:18:1;;;6718:39;6774:19;;7726:80:0::1;;;;;;;;;7817:36;7827:6;7835:9;7846:6;7817:9;:36::i;:::-;7874:57;7883:6:::0;178:10;7905:25:::1;7924:6:::0;7905:16;:25:::1;:::i;:::-;7874:8;:57::i;:::-;-1:-1:-1::0;7951:4:0::1;::::0;7498:465;-1:-1:-1;;;;;;;7498:465:0:o;4464:212::-;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;4566:5:::1;::::0;-1:-1:-1;;;;;4554:17:0;;::::1;4566:5:::0;::::1;4554:17;;4546:61;;;::::0;-1:-1:-1;;;4546:61:0;;5470:2:1;4546:61:0::1;::::0;::::1;5452:21:1::0;5509:2;5489:18;;;5482:30;5548:33;5528:18;;;5521:61;5599:18;;4546:61:0::1;5442:181:1::0;4546:61:0::1;4623:18;::::0;-1:-1:-1;;;;;4623:18:0;::::1;::::0;::::1;::::0;;;::::1;4652:5;:16:::0;;-1:-1:-1;;;;;;4652:16:0::1;-1:-1:-1::0;;;;;4652:16:0;;;::::1;::::0;;;::::1;::::0;;4464:212::o;7971:257::-;3286:12;;8101:4;;8071:7;;8080:10;;3286:12;;3282:112;;;3315:8;;;;;-1:-1:-1;;;;;3315:8:0;:32;178:10;3362:7;3371:10;3315:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:112;178:10;8150:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8150:34:0;::::1;::::0;;;;;;;;8118:80:::1;::::0;178:10;8141:7;;8150:47:::1;::::0;8187:10;;8150:47:::1;:::i;6055:229::-:0;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;6135:12:::1;::::0;::::1;;6134:13;6126:53;;;::::0;-1:-1:-1;;;6126:53:0;;9192:2:1;6126:53:0::1;::::0;::::1;9174:21:1::0;9231:2;9211:18;;;9204:30;9270:29;9250:18;;;9243:57;9317:18;;6126:53:0::1;9164:177:1::0;6126:53:0::1;6217:1;6190:24;:28:::0;;;6229:12:::1;:19:::0;;-1:-1:-1;;6229:19:0::1;6244:4;6229:19;::::0;;6264:12:::1;::::0;::::1;::::0;6217:1;6264:12:::1;6055:229::o:0;4684:249::-;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;4799:22:::1;:34:::0;;-1:-1:-1;;;;;;4799:34:0::1;-1:-1:-1::0;;;;;4799:34:0;::::1;::::0;;::::1;::::0;;;4844:20:::1;:30:::0;;;4890:35:::1;::::0;::::1;::::0;-1:-1:-1;;4890:35:0::1;4684:249:::0;;:::o;3824:632::-;3938:8;;;;;-1:-1:-1;;;;;3938:8:0;178:10;-1:-1:-1;;;;;3914:33:0;;3906:76;;;;-1:-1:-1;;;3906:76:0;;9905:2:1;3906:76:0;;;9887:21:1;9944:2;9924:18;;;9917:30;9983:32;9963:18;;;9956:60;10033:18;;3906:76:0;9877:180:1;3906:76:0;4016:4;3995:18;;4082:311;4106:10;4102:1;:14;4082:311;;;4138:19;4160:4;;4165:1;4160:7;;;;;-1:-1:-1;;;4160:7:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4204:22:0;;4182:19;4204:22;;;;;;;;;;;;4241:26;;;4138:29;;-1:-1:-1;4282:26:0;4204:22;4282:26;;:::i;:::-;4358:8;;4328:53;;10615:25:1;;;4282:26:0;;-1:-1:-1;;;;;;4358:8:0;;;;;;;4328:53;;;;;;10603:2:1;10588:18;4328:53:0;;;;;;;4082:311;;4118:3;;;;;:::i;:::-;;;;4082:311;;;-1:-1:-1;4423:8:0;;;;;-1:-1:-1;;;;;4423:8:0;4405:9;:28;;;;;;;;;;:43;;4437:11;;4405:9;:43;;4437:11;;4405:43;:::i;:::-;;;;-1:-1:-1;;;;;;3824:632:0:o;6520:95::-;6567:13;6600:7;6593:14;;;;;:::i;8236:425::-;3508:12;;8376:4;;8341:7;;8350:15;;3508:12;;3504:117;;;3537:8;;;;;-1:-1:-1;;;;;3537:8:0;:32;178:10;3584:7;3593:15;3537:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3504:117;178:10;8393:24:::1;8420:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8420:34:0;::::1;::::0;;;;;;;;8473:35;;::::1;;8465:86;;;::::0;-1:-1:-1;;;8465:86:0;;10264:2:1;8465:86:0::1;::::0;::::1;10246:21:1::0;10303:2;10283:18;;;10276:30;10342:34;10322:18;;;10315:62;-1:-1:-1;;;10393:18:1;;;10386:36;10439:19;;8465:86:0::1;10236:228:1::0;8465:86:0::1;8562:67;178:10:::0;8585:7;8594:34:::1;8613:15:::0;8594:16;:34:::1;:::i;8562:67::-;-1:-1:-1::0;8649:4:0::1;::::0;8236:425;-1:-1:-1;;;;;8236:425:0:o;6948:197::-;2853:12;;7056:4;;7028:9;;7039:6;;2853:12;;2849:101;;;2882:8;;;;;-1:-1:-1;;;;;2882:8:0;:23;178:10;2920:9;2931:6;2882:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2849:101;7073:42:::1;178:10:::0;7097:9:::1;7108:6;7073:9;:42::i;5702:345::-:0;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;5782:24:::1;::::0;5774:70:::1;;;::::0;-1:-1:-1;;;5774:70:0;;7354:2:1;5774:70:0::1;::::0;::::1;7336:21:1::0;7393:2;7373:18;;;7366:30;7432;7412:18;;;7405:58;7480:18;;5774:70:0::1;7326:178:1::0;5774:70:0::1;5891:15;5863:24;;:43;;5855:85;;;::::0;-1:-1:-1;;;5855:85:0;;5830:2:1;5855:85:0::1;::::0;::::1;5812:21:1::0;5869:2;5849:18;;;5842:30;5908:31;5888:18;;;5881:59;5957:18;;5855:85:0::1;5802:179:1::0;5855:85:0::1;5951:12;:20:::0;;-1:-1:-1;;5951:20:0::1;::::0;;5966:5:::1;5982:24;:28:::0;;;6026:13:::1;::::0;::::1;::::0;5966:5;6026:13:::1;5702:345::o:0;4941:392::-;5041:22;;-1:-1:-1;;;;;5041:22:0;178:10;-1:-1:-1;;;;;5025:38:0;;5017:76;;;;-1:-1:-1;;;5017:76:0;;8118:2:1;5017:76:0;;;8100:21:1;8157:2;8137:18;;;8130:30;8196:27;8176:18;;;8169:55;8241:18;;5017:76:0;8090:175:1;5017:76:0;5130:20;;5112:14;;;;;;:38;5104:70;;;;-1:-1:-1;;;5104:70:0;;7006:2:1;5104:70:0;;;6988:21:1;7045:2;7025:18;;;7018:30;-1:-1:-1;;;7064:18:1;;;7057:49;7123:18;;5104:70:0;6978:169:1;5104:70:0;5207:22;;5190:40;;-1:-1:-1;;;;;5207:22:0;;;;5190:40;;5207:22;;5190:40;-1:-1:-1;5257:22:0;;;5241:13;:38;;-1:-1:-1;;;;;;5241:38:0;;;-1:-1:-1;;;;;5257:22:0;;5241:38;;;;5290:35;;;4941:392::o;5341:353::-;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;5421:24:::1;::::0;:29;5413:74:::1;;;::::0;-1:-1:-1;;;5413:74:0;;8472:2:1;5413:74:0::1;::::0;::::1;8454:21:1::0;;;8491:18;;;8484:30;8550:34;8530:18;;;8523:62;8602:18;;5413:74:0::1;8444:182:1::0;5413:74:0::1;5506:12;::::0;::::1;;5498:53;;;::::0;-1:-1:-1;;;5498:53:0;;9548:2:1;5498:53:0::1;::::0;::::1;9530:21:1::0;9587:2;9567:18;;;9560:30;9626;9606:18;;;9599:58;9674:18;;5498:53:0::1;9520:178:1::0;5498:53:0::1;5607:14;::::0;5589:32:::1;::::0;:15:::1;:32;:::i;:::-;5562:24;:59:::0;;;5637:49:::1;::::0;10615:25:1;;;5637:49:0::1;::::0;10603:2:1;10588:18;5637:49:0::1;;;;;;;5341:353::o:0;10058:186::-;-1:-1:-1;;;;;10152:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10204:32;;10615:25:1;;;10204:32:0;;10588:18:1;10204:32:0;;;;;;;10058:186;;;:::o;8669:464::-;-1:-1:-1;;;;;8775:20:0;;8767:71;;;;-1:-1:-1;;;8767:71:0;;7711:2:1;8767:71:0;;;7693:21:1;7750:2;7730:18;;;7723:30;7789:34;7769:18;;;7762:62;-1:-1:-1;;;7840:18:1;;;7833:36;7886:19;;8767:71:0;7683:228:1;8767:71:0;-1:-1:-1;;;;;8875:17:0;;8851:21;8875:17;;;;;;;;;;;8911:23;;;;8903:75;;;;-1:-1:-1;;;8903:75:0;;6188:2:1;8903:75:0;;;6170:21:1;6227:2;6207:18;;;6200:30;6266:34;6246:18;;;6239:62;-1:-1:-1;;;6317:18:1;;;6310:37;6364:19;;8903:75:0;6160:229:1;8903:75:0;9009:22;9025:6;9009:13;:22;:::i;:::-;-1:-1:-1;;;;;8989:17:0;;;:9;:17;;;;;;;;;;;:42;;;;9042:20;;;;;;;;:30;;9066:6;;8989:9;9042:30;;9066:6;;9042:30;:::i;:::-;;;;;;;;9107:9;-1:-1:-1;;;;;9090:35:0;9099:6;-1:-1:-1;;;;;9090:35:0;;9118:6;9090:35;;;;10615:25:1;;10603:2;10588:18;;10570:76;9090:35:0;;;;;;;;8669:464;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:1:o;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1549:665::-;1635:6;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:2;;;1717:6;1709;1702:22;1664:2;1762:9;1749:23;1791:18;1832:2;1824:6;1821:14;1818:2;;;1853:6;1845;1838:22;1818:2;1896:6;1885:9;1881:22;1871:32;;1941:7;1934:4;1930:2;1926:13;1922:27;1912:2;;1968:6;1960;1953:22;1912:2;2013;2000:16;2039:2;2031:6;2028:14;2025:2;;;2060:6;2052;2045:22;2025:2;2118:7;2113:2;2103:6;2100:1;2096:14;2092:2;2088:23;2084:32;2081:45;2078:2;;;2144:6;2136;2129:22;2078:2;2180;2172:11;;;;;2202:6;;-1:-1:-1;1654:560:1;;-1:-1:-1;;;;1654:560:1:o;2219:966::-;2287:6;2340:2;2328:9;2319:7;2315:23;2311:32;2308:2;;;2361:6;2353;2346:22;2308:2;2406:9;2393:23;2435:18;2476:2;2468:6;2465:14;2462:2;;;2497:6;2489;2482:22;2462:2;2540:6;2529:9;2525:22;2515:32;;2585:7;2578:4;2574:2;2570:13;2566:27;2556:2;;2612:6;2604;2597:22;2556:2;2653;2640:16;2675:2;2671;2668:10;2665:2;;;2681:18;;:::i;:::-;2756:2;2750:9;2724:2;2810:13;;-1:-1:-1;;2806:22:1;;;2830:2;2802:31;2798:40;2786:53;;;2854:18;;;2874:22;;;2851:46;2848:2;;;2900:18;;:::i;:::-;2940:10;2936:2;2929:22;2975:2;2967:6;2960:18;3015:7;3010:2;3005;3001;2997:11;2993:20;2990:33;2987:2;;;3041:6;3033;3026:22;2987:2;3102;3097;3093;3089:11;3084:2;3076:6;3072:15;3059:46;3125:15;;;3142:2;3121:24;3114:40;;;;3129:6;2298:887;-1:-1:-1;;;;;2298:887:1:o;3859:375::-;-1:-1:-1;;;;;4117:15:1;;;4099:34;;4169:15;;;;4164:2;4149:18;;4142:43;4216:2;4201:18;;4194:34;;;;4049:2;4034:18;;4016:218::o;4660:603::-;4772:4;4801:2;4830;4819:9;4812:21;4862:6;4856:13;4905:6;4900:2;4889:9;4885:18;4878:34;4930:4;4943:140;4957:6;4954:1;4951:13;4943:140;;;5052:14;;;5048:23;;5042:30;5018:17;;;5037:2;5014:26;5007:66;4972:10;;4943:140;;;5101:6;5098:1;5095:13;5092:2;;;5171:4;5166:2;5157:6;5146:9;5142:22;5138:31;5131:45;5092:2;-1:-1:-1;5247:2:1;5226:15;-1:-1:-1;;5222:29:1;5207:45;;;;5254:2;5203:54;;4781:482;-1:-1:-1;;;4781:482:1:o;8631:354::-;8833:2;8815:21;;;8872:2;8852:18;;;8845:30;8911:32;8906:2;8891:18;;8884:60;8976:2;8961:18;;8805:180::o;10840:128::-;10880:3;10911:1;10907:6;10904:1;10901:13;10898:2;;;10917:18;;:::i;:::-;-1:-1:-1;10953:9:1;;10888:80::o;10973:125::-;11013:4;11041:1;11038;11035:8;11032:2;;;11046:18;;:::i;:::-;-1:-1:-1;11083:9:1;;11022:76::o;11103:380::-;11182:1;11178:12;;;;11225;;;11246:2;;11300:4;11292:6;11288:17;11278:27;;11246:2;11353;11345:6;11342:14;11322:18;11319:38;11316:2;;;11399:10;11394:3;11390:20;11387:1;11380:31;11434:4;11431:1;11424:15;11462:4;11459:1;11452:15;11316:2;;11158:325;;;:::o;11488:135::-;11527:3;-1:-1:-1;;11548:17:1;;11545:2;;;11568:18;;:::i;:::-;-1:-1:-1;11615:1:1;11604:13;;11535:88::o;11628:127::-;11689:10;11684:3;11680:20;11677:1;11670:31;11720:4;11717:1;11710:15;11744:4;11741:1;11734:15;11760:127;11821:10;11816:3;11812:20;11809:1;11802:31;11852:4;11849:1;11842:15;11876:4;11873:1;11866:15

Swarm Source

ipfs://d7b29f794c6bd31102907514abadfd253d60fdd9880d3d41df27166e3d6f4662
Loading