{"request":{"id":43692,"contractAddress":"0x159d8a100d5a869edda532626fde7737056c06c5","codeFormat":"solidity-standard-json-input","sourceCode":{"language":"Solidity","settings":{"libraries":{"contracts/factory/ProxyDeployer.sol":{"ProxyDeployer":"0xbb9596091C7cd72998181B3c5B8D9DbE2Ea691c7"},"contracts/factory/TokenDeployer.sol":{"TokenDeployer":"0xDc95a11b020f95C6389ca400Fb7E37Fe63D8eCF4"}},"optimizer":{"enabled":true,"mode":"3"},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.methodIdentifiers","metadata"]}}},"sources":{"@sygnum/solidity-base-contracts/contracts/helpers/Initializable.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\n\npragma solidity ^0.8.0;\n\nabstract contract Initializable {\n    /**\n     * @dev Indicates that the contract has been initialized.\n     */\n    bool private initialized;\n\n    /**\n     * @dev Indicates that the contract is in the process of being initialized.\n     */\n    bool private initializing;\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized();\n\n    /**\n     * @dev Error: \"Initializable: Contract instance has already been initialized\"\n     */\n    error InitializableContractAlreadyInitialized();\n\n    /**\n     * @dev Error: \"Initializable: Contract instance is initializing\"\n     */\n    error InitializableContractIsInitializing();\n\n    /**\n     * @dev Modifier to use in the initializer function of a contract.\n     */\n    modifier initializer() {\n        bool isTopLevelCall = !initializing;\n\n        if (isTopLevelCall && !isConstructor() && initialized) revert InitializableContractAlreadyInitialized();\n\n        if (isTopLevelCall) {\n            initializing = true;\n            initialized = true;\n        }\n\n        _;\n\n        if (isTopLevelCall) {\n            initializing = false;\n            emit Initialized();\n        }\n    }\n\n    /**\n     * @dev Returns true if and only if the function is running in the constructor\n     */\n    function isConstructor() private view returns (bool) {\n        // extcodesize checks the size of the code stored in an address, and\n        // address returns the current address. Since the code is still not\n        // deployed when running a constructor, any checks on its code size will\n        // yield zero, making it an effective way to detect if a contract is\n        // under construction or not.\n        address self = address(this);\n        uint256 cs;\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            cs := extcodesize(self)\n        }\n        return cs == 0;\n    }\n\n    /**\n     * @dev Function that returns wheteher a contract is already initialized. Returns `initialized`\n     */\n    function isInitialized() public view virtual returns (bool) {\n        return initialized;\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        if (initializing) revert InitializableContractIsInitializing();\n        if (!initialized) {\n            initialized = true;\n            emit Initialized();\n        }\n    }\n\n    // Reserved storage space to allow for layout changes in the future.\n    uint256[50] private ______gap;\n}\n"},"@sygnum/solidity-base-contracts/contracts/role/Roles.sol":{"content":"// SPDX-License-Identifier: Unlicensed\n\npragma solidity ^0.8.8;\n\n/**\n * @title Roles\n * @dev Library for managing addresses assigned to a Role.\n */\nlibrary Roles {\n    struct Role {\n        mapping(address => bool) bearer;\n    }\n\n    /**\n     * @dev Error: \"Roles: account already has role\"\n     */\n    error RolesAccountAlreadyHasRole(address _account);\n\n    /**\n     * @dev Error: \"Roles: account does not have role\"\n     */\n    error RolesAccountDoesNotHaveRole(address _account);\n\n    /**\n     * @dev Error: \"Roles: account is the zero address\"\n     */\n    error RolesAccountIsZeroAddress();\n\n    /**\n     * @dev Give an account access to this role.\n     */\n    function add(Role storage role, address account) internal {\n        if (has(role, account)) revert RolesAccountAlreadyHasRole(account);\n        role.bearer[account] = true;\n    }\n\n    /**\n     * @dev Remove an account's access to this role.\n     */\n    function remove(Role storage role, address account) internal {\n        if (!has(role, account)) revert RolesAccountDoesNotHaveRole(account);\n        role.bearer[account] = false;\n    }\n\n    /**\n     * @dev Check if an account has this role.\n     * @return bool\n     */\n    function has(Role storage role, address account) internal view returns (bool) {\n        if (account == address(0)) revert RolesAccountIsZeroAddress();\n        return role.bearer[account];\n    }\n}\n"},"@sygnum/solidity-base-contracts/contracts/role/base/BaseOperators.sol":{"content":"// SPDX-License-Identifier: Unlicensed\n\n/**\n * @title BaseOperators\n * @author Team 3301 <team3301@sygnum.com>\n * @dev For managing operators, admins, and system accounts.\n */\n\npragma solidity ^0.8.0;\n\nimport \"../Roles.sol\";\nimport \"./Operatorable.sol\";\n\ncontract BaseOperators {\n    using Roles for Roles.Role;\n\n    address private _multisig;\n    Roles.Role private _operators;\n    Roles.Role private _admins;\n    Roles.Role private _systems;\n    Roles.Role private _relays;\n\n    /**\n     * @dev Error: \"BaseOperators: caller does not have the admin role\"\n     */\n    error BaseOperatorsCallerNotAdmin();\n\n    /**\n     * @dev Error: \"BaseOperators: caller does not have multisig role\"\n     */\n    error BaseOperatorsCallerNotMultisig();\n\n    /**\n     * @dev Error: \"BaseOperators: caller does not have the admin role nor relay\"\n     */\n    error BaseOperatorsCallerNotAdminOrRelay();\n\n    /**\n     * @dev Error: \"BaseOperators: address cannot be empty.\"\n     */\n    error BaseOperatorsZeroAddress();\n\n    /**\n     * @dev Error: \"BaseOperators: admin can not remove himself\"\n     */\n    error BaseOperatorsAdminRemoveSelf();\n\n    /**\n     * @dev Error: \"BaseOperators: cannot assign new multisig when multisig already assigned\"\n     */\n    error BaseOperatorsMultisigAlreadyAssigned();\n\n    /**\n     * @dev Error: \"BaseOperators: multisig has to be contract\"\n     */\n    error BaseOperatorsMultisigNotContract();\n\n    event OperatorAdded(address indexed caller, address indexed account);\n    event OperatorRemoved(address indexed caller, address indexed account);\n    event AdminAdded(address indexed caller, address indexed account);\n    event AdminRemoved(address indexed caller, address indexed account);\n    event SystemAdded(address indexed caller, address indexed account);\n    event SystemRemoved(address indexed caller, address indexed account);\n    event RelayAdded(address indexed caller, address indexed relay);\n    event RelayRemoved(address indexed caller, address indexed relay);\n    event MultisigChanged(address indexed caller, address indexed multisig);\n\n    /**\n     * @dev Reverts if caller does not have admin role associated.\n     */\n    modifier onlyAdmin() {\n        if (!isAdmin(msg.sender)) revert BaseOperatorsCallerNotAdmin();\n        _;\n    }\n\n    /**\n     * @dev Reverts if caller does not have multisig privileges;\n     */\n    modifier onlyMultisig() {\n        if (!isMultisig(msg.sender)) revert BaseOperatorsCallerNotMultisig();\n        _;\n    }\n\n    /**\n     * @dev Reverts if caller does not have admin or relay role associated.\n     */\n    modifier onlyAdminOrRelay() {\n        if (!isAdmin(msg.sender) && !isRelay(msg.sender)) revert BaseOperatorsCallerNotAdminOrRelay();\n        _;\n    }\n\n    constructor(address _admin) {\n        _addAdmin(_admin);\n    }\n\n    /**\n     * @dev Confirms operator contract address once active.\n     * @param _address Operatorable contract addres.\n     */\n    function confirmFor(address _address) public onlyAdmin {\n        if (_address == address(0)) revert BaseOperatorsZeroAddress();\n        Operatorable(_address).confirmOperatorsContract();\n    }\n\n    /**\n     * @return If '_account' has operator privileges.\n     */\n    function isOperator(address _account) public view returns (bool) {\n        return _operators.has(_account);\n    }\n\n    /**\n     * @dev Admin can give '_account' address operator privileges.\n     * @param _account address that should be given operator privileges.\n     */\n    function addOperator(address _account) public onlyAdminOrRelay {\n        _addOperator(_account);\n    }\n\n    /**\n     * @dev Admin can revoke '_account' address operator privileges.\n     * @param _account address that should be revoked operator privileges.\n     */\n    function removeOperator(address _account) public onlyAdminOrRelay {\n        _removeOperator(_account);\n    }\n\n    /**\n     * @return If '_account' has operator privileges.\n     */\n    function isAdmin(address _account) public view returns (bool) {\n        return _admins.has(_account);\n    }\n\n    /**\n     * @dev Admin can give '_account' address admin privileges.\n     * @param _account address that should be given admin privileges.\n     */\n    function addAdmin(address _account) public onlyAdminOrRelay {\n        _addAdmin(_account);\n    }\n\n    /**\n     * @dev Admin can revoke '_account' address admin privileges.\n     * @param _account address that should be revoked admin privileges.\n     */\n    function removeAdmin(address _account) public onlyAdminOrRelay {\n        if (_account == msg.sender) revert BaseOperatorsAdminRemoveSelf();\n        _removeAdmin(_account);\n    }\n\n    /**\n     * @return If '_account' has admin or operator privileges.\n     */\n    function isOperatorOrAdmin(address _account) public view returns (bool) {\n        return (isAdmin(_account) || isOperator(_account));\n    }\n\n    /**\n     * @return If '_account' has admin and operator privileges, also known as a Super Admin.\n     */\n    function isOperatorAndAdmin(address _account) public view returns (bool) {\n        return (isAdmin(_account) && isOperator(_account));\n    }\n\n    /**\n     * @return If '_account' has system privileges.\n     */\n    function isSystem(address _account) public view returns (bool) {\n        return _systems.has(_account);\n    }\n\n    /**\n     * @dev Admin account or relay contract can give '_account' address system privileges.\n     * @param _account address that should be given system privileges.\n     */\n    function addSystem(address _account) public onlyAdminOrRelay {\n        _addSystem(_account);\n    }\n\n    /**\n     * @dev Admin account or relay contract can revoke '_account' address system privileges.\n     * @param _account address that should be revoked system privileges.\n     */\n    function removeSystem(address _account) public onlyAdminOrRelay {\n        _removeSystem(_account);\n    }\n\n    /**\n     * @return If '_account' has relay privileges.\n     */\n    function isRelay(address _account) public view returns (bool) {\n        return _relays.has(_account);\n    }\n\n    /**\n     * @dev Operator can give '_account' address relay privileges.\n     * @param _account address that should be given relay privileges.\n     */\n    function addRelay(address _account) public onlyAdmin {\n        _addRelay(_account);\n    }\n\n    /**\n     * @dev Operator can revoke '_account' address relay privileges.\n     * @param _account address that should be revoked relay privileges.\n     */\n    function removeRelay(address _account) public onlyAdmin {\n        _removeRelay(_account);\n    }\n\n    /**\n     * @return If '_contract' has multisig privileges.\n     */\n    function isMultisig(address _contract) public view returns (bool) {\n        return _multisig == _contract;\n    }\n\n    /**\n     * @dev Admin can give '_contract' address multisig privileges.\n     * @param _contract address that should be given multisig privileges.\n     */\n    function addMultisig(address _contract) public onlyAdmin {\n        if (_multisig != address(0)) revert BaseOperatorsMultisigAlreadyAssigned();\n        _changeMultisig(_contract);\n    }\n\n    /**\n     * @dev Multisig can change multisig privileges to new multisig '_contract'.\n     * @param _contract address that should be the new multisig.\n     */\n    function changeMultisig(address _contract) public onlyMultisig {\n        _changeMultisig(_contract);\n    }\n\n    /**\n     * @dev Admin can give '_account' address operator and admin privileges making the '_account' a super admin, whereby they can call operator and admin functions.\n     * @param _account address that should be given operator and admin privileges.\n     */\n    function addOperatorAndAdmin(address _account) public onlyAdminOrRelay {\n        _addAdmin(_account);\n        _addOperator(_account);\n    }\n\n    /**\n     * @dev Admin can revoke '_account' address operator and admin privileges.\n     * @param _account address that should be revoked operator and admin privileges.\n     */\n    function removeOperatorAndAdmin(address _account) public onlyAdminOrRelay {\n        if (_account == msg.sender) revert BaseOperatorsAdminRemoveSelf();\n        _removeAdmin(_account);\n        _removeOperator(_account);\n    }\n\n    /**\n     * @dev Admin can change '_account' admin privileges to an operator privileges.\n     * @param _account address that should be given operator and admin privileges.\n     */\n    function changeToOperator(address _account) public onlyAdmin {\n        if (_account == msg.sender) revert BaseOperatorsAdminRemoveSelf();\n        _removeAdmin(_account);\n        _addOperator(_account);\n    }\n\n    /**\n     * @dev Admin can change '_account' operator privileges to admin privileges.\n     * @param _account address that should be given operator and admin privileges.\n     */\n    function changeToAdmin(address _account) public onlyAdmin {\n        _addAdmin(_account);\n        _removeOperator(_account);\n    }\n\n    /** INTERNAL FUNCTIONS */\n    function _addOperator(address _account) internal {\n        _operators.add(_account);\n        emit OperatorAdded(msg.sender, _account);\n    }\n\n    function _removeOperator(address _account) internal {\n        _operators.remove(_account);\n        emit OperatorRemoved(msg.sender, _account);\n    }\n\n    function _addAdmin(address _account) internal {\n        _admins.add(_account);\n        emit AdminAdded(msg.sender, _account);\n    }\n\n    function _removeAdmin(address _account) internal {\n        _admins.remove(_account);\n        emit AdminRemoved(msg.sender, _account);\n    }\n\n    function _addSystem(address _account) internal {\n        _systems.add(_account);\n        emit SystemAdded(msg.sender, _account);\n    }\n\n    function _removeSystem(address _account) internal {\n        _systems.remove(_account);\n        emit SystemRemoved(msg.sender, _account);\n    }\n\n    function _addRelay(address _account) internal {\n        _relays.add(_account);\n        emit RelayAdded(msg.sender, _account);\n    }\n\n    function _removeRelay(address _account) internal {\n        _relays.remove(_account);\n        emit RelayRemoved(msg.sender, _account);\n    }\n\n    function _changeMultisig(address _contract) internal {\n        if (_contract == address(0)) revert BaseOperatorsZeroAddress();\n        if (isMultisig(msg.sender)) {\n            uint32 size;\n            // solhint-disable-next-line\n            assembly {\n                size := extcodesize(_contract)\n            }\n            if (size == 0) revert BaseOperatorsMultisigNotContract();\n        }\n        _multisig = _contract;\n        emit MultisigChanged(msg.sender, _contract);\n    }\n}\n"},"@sygnum/solidity-base-contracts/contracts/role/base/Operatorable.sol":{"content":"// SPDX-License-Identifier: Unlicensed\n\n/**\n * @title Operatorable\n * @author Team 3301 <team3301@sygnum.com>\n * @dev Operatorable contract stores the BaseOperators contract address, and modifiers for\n *       contracts.\n */\n\npragma solidity ^0.8.0;\n\nimport \"../interface/IBaseOperators.sol\";\nimport \"../../helpers/Initializable.sol\";\n\ncontract Operatorable is Initializable {\n    IBaseOperators internal operatorsInst;\n    address private operatorsPending;\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the operator role\"\n     */\n    error OperatorableCallerNotOperator();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the admin role\"\n     */\n    error OperatorableCallerNotAdmin();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the system role\"\n     */\n    error OperatorableCallerNotSystem();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the multisig role\"\n     */\n    error OperatorableCallerNotMultisig();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the admin or system role\"\n     */\n    error OperatorableCallerNotAdminOrSystem();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the operator role nor system\"\n     */\n    error OperatorableCallerNotOperatorOrSystem();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the relay role\"\n     */\n    error OperatorableCallerNotRelay();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the operator role nor relay\"\n     */\n    error OperatorableCallerNotOperatorOrRelay();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the admin role nor relay\"\n     */\n    error OperatorableCallerNotAdminOrRelay();\n\n    /**\n     * @dev Error: \"Operatorable: caller does not have the operator role nor system nor relay\"\n     */\n    error OperatorableCallerNotOperatorOrSystemOrRelay();\n\n    /**\n     * @dev Error: \"OperatorableCallerNotOperator() nor admin nor relay\"\n     */\n    error OperatorableCallerNotOperatorOrAdminOrRelay();\n\n    /**\n     * @dev Error: \"Operatorable: address of new operators contract can not be zero\"\n     */\n    error OperatorableNewOperatorsZeroAddress();\n\n    /**\n     * @dev Error: \"Operatorable: should be called from new operators contract\"\n     */\n    error OperatorableCallerNotOperatorsContract(address _caller);\n\n    event OperatorsContractChanged(address indexed caller, address indexed operatorsAddress);\n    event OperatorsContractPending(address indexed caller, address indexed operatorsAddress);\n\n    /**\n     * @dev Reverts if sender does not have operator role associated.\n     */\n    modifier onlyOperator() {\n        if (!isOperator(msg.sender)) revert OperatorableCallerNotOperator();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have admin role associated.\n     */\n    modifier onlyAdmin() {\n        if (!isAdmin(msg.sender)) revert OperatorableCallerNotAdmin();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have system role associated.\n     */\n    modifier onlySystem() {\n        if (!isSystem(msg.sender)) revert OperatorableCallerNotSystem();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have multisig privileges.\n     */\n    modifier onlyMultisig() {\n        if (!isMultisig(msg.sender)) revert OperatorableCallerNotMultisig();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have admin or system role associated.\n     */\n    modifier onlyAdminOrSystem() {\n        if (!isAdminOrSystem(msg.sender)) revert OperatorableCallerNotAdminOrSystem();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have operator or system role associated.\n     */\n    modifier onlyOperatorOrSystem() {\n        if (!isOperatorOrSystem(msg.sender)) revert OperatorableCallerNotOperatorOrSystem();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have the relay role associated.\n     */\n    modifier onlyRelay() {\n        if (!isRelay(msg.sender)) revert OperatorableCallerNotRelay();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have relay or operator role associated.\n     */\n    modifier onlyOperatorOrRelay() {\n        if (!isOperator(msg.sender) && !isRelay(msg.sender)) revert OperatorableCallerNotOperatorOrRelay();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have relay or admin role associated.\n     */\n    modifier onlyAdminOrRelay() {\n        if (!isAdmin(msg.sender) && !isRelay(msg.sender)) revert OperatorableCallerNotAdminOrRelay();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have the operator, or system, or relay role associated.\n     */\n    modifier onlyOperatorOrSystemOrRelay() {\n        if (!isOperator(msg.sender) && !isSystem(msg.sender) && !isRelay(msg.sender))\n            revert OperatorableCallerNotOperatorOrSystemOrRelay();\n        _;\n    }\n\n    /**\n     * @dev Reverts if sender does not have the operator, or admin, or relay role associated.\n     */\n    modifier onlyOperatorOrAdminOrRelay() {\n        if (!isOperator(msg.sender) && !isAdmin(msg.sender) && !isRelay(msg.sender))\n            revert OperatorableCallerNotOperatorOrAdminOrRelay();\n        _;\n    }\n\n    /**\n     * @dev Initialization instead of constructor, called once. The setOperatorsContract function can be called only by Admin role with\n     *       confirmation through the operators contract.\n     * @param _baseOperators BaseOperators contract address.\n     */\n    function initialize(address _baseOperators) public virtual initializer {\n        _setOperatorsContract(_baseOperators);\n    }\n\n    /**\n     * @dev Set the new the address of Operators contract, should be confirmed from operators contract by calling confirmFor(addr)\n     *       where addr is the address of current contract instance. This is done to prevent the case when the new contract address is\n     *       broken and control of the contract can be lost in such case\n     * @param _baseOperators BaseOperators contract address.\n     */\n    function setOperatorsContract(address _baseOperators) public onlyAdmin {\n        if (_baseOperators == address(0)) revert OperatorableNewOperatorsZeroAddress();\n\n        operatorsPending = _baseOperators;\n        emit OperatorsContractPending(msg.sender, _baseOperators);\n    }\n\n    /**\n     * @dev The function should be called from new operators contract by admin to ensure that operatorsPending address\n     *       is the real contract address.\n     */\n    function confirmOperatorsContract() public {\n        if (operatorsPending == address(0)) revert OperatorableNewOperatorsZeroAddress();\n\n        if (msg.sender != operatorsPending) revert OperatorableCallerNotOperatorsContract(msg.sender);\n\n        _setOperatorsContract(operatorsPending);\n    }\n\n    /**\n     * @return The address of the BaseOperators contract.\n     */\n    function getOperatorsContract() public view returns (address) {\n        return address(operatorsInst);\n    }\n\n    /**\n     * @return The pending address of the BaseOperators contract.\n     */\n    function getOperatorsPending() public view returns (address) {\n        return operatorsPending;\n    }\n\n    /**\n     * @return If '_account' has operator privileges.\n     */\n    function isOperator(address _account) public view returns (bool) {\n        return operatorsInst.isOperator(_account);\n    }\n\n    /**\n     * @return If '_account' has admin privileges.\n     */\n    function isAdmin(address _account) public view returns (bool) {\n        return operatorsInst.isAdmin(_account);\n    }\n\n    /**\n     * @return If '_account' has system privileges.\n     */\n    function isSystem(address _account) public view returns (bool) {\n        return operatorsInst.isSystem(_account);\n    }\n\n    /**\n     * @return If '_account' has relay privileges.\n     */\n    function isRelay(address _account) public view returns (bool) {\n        return operatorsInst.isRelay(_account);\n    }\n\n    /**\n     * @return If '_contract' has multisig privileges.\n     */\n    function isMultisig(address _contract) public view returns (bool) {\n        return operatorsInst.isMultisig(_contract);\n    }\n\n    /**\n     * @return If '_account' has admin or system privileges.\n     */\n    function isAdminOrSystem(address _account) public view returns (bool) {\n        return (operatorsInst.isAdmin(_account) || operatorsInst.isSystem(_account));\n    }\n\n    /**\n     * @return If '_account' has operator or system privileges.\n     */\n    function isOperatorOrSystem(address _account) public view returns (bool) {\n        return (operatorsInst.isOperator(_account) || operatorsInst.isSystem(_account));\n    }\n\n    /** INTERNAL FUNCTIONS */\n    function _setOperatorsContract(address _baseOperators) internal {\n        if (_baseOperators == address(0)) revert OperatorableNewOperatorsZeroAddress();\n\n        operatorsInst = IBaseOperators(_baseOperators);\n        emit OperatorsContractChanged(msg.sender, _baseOperators);\n    }\n}\n"},"@sygnum/solidity-base-contracts/contracts/role/interface/IBaseOperators.sol":{"content":"// SPDX-License-Identifier: Unlicensed\n\n/**\n * @title IBaseOperators\n * @notice Interface for BaseOperators contract\n */\n\npragma solidity ^0.8.0;\n\ninterface IBaseOperators {\n    function isOperator(address _account) external view returns (bool);\n\n    function isAdmin(address _account) external view returns (bool);\n\n    function isSystem(address _account) external view returns (bool);\n\n    function isRelay(address _account) external view returns (bool);\n\n    function isMultisig(address _contract) external view returns (bool);\n\n    function confirmFor(address _address) external;\n\n    function addOperator(address _account) external;\n\n    function removeOperator(address _account) external;\n\n    function addAdmin(address _account) external;\n\n    function removeAdmin(address _account) external;\n\n    function addSystem(address _account) external;\n\n    function removeSystem(address _account) external;\n\n    function addRelay(address _account) external;\n\n    function removeRelay(address _account) external;\n\n    function addOperatorAndAdmin(address _account) external;\n\n    function removeOperatorAndAdmin(address _account) external;\n}\n"}}},"contractName":"@sygnum/solidity-base-contracts/contracts/role/base/BaseOperators.sol:BaseOperators","compilerZksolcVersion":"v1.3.22","compilerSolcVersion":"0.8.8","optimizationUsed":true,"optimizerMode":null,"constructorArguments":"0x000000000000000000000000aff271f2fafc904ab777a885b8c64cef787a438a","isSystem":false,"forceEvmla":false},"artifacts":{"bytecode":[0,2,0,0,0,0,0,2,0,4,0,0,0,0,0,2,0,1,0,0,0,1,3,85,0,0,0,128,4,0,0,57,0,0,0,64,0,64,4,63,0,0,0,0,3,1,0,25,0,0,0,96,3,48,2,112,0,0,2,62,3,48,1,151,0,0,0,1,2,32,1,144,0,0,0,42,0,0,193,61,0,0,0,4,2,48,0,140,0,0,0,80,0,0,65,61,0,0,0,0,2,1,4,59,0,0,0,224,2,32,2,112,0,0,2,73,5,32,0,156,0,0,0,82,0,0,33,61,0,0,2,88,4,32,0,156,0,0,0,119,0,0,161,61,0,0,2,89,4,32,0,156,0,0,0,158,0,0,33,61,0,0,2,93,4,32,0,156,0,0,1,80,0,0,97,61,0,0,2,94,4,32,0,156,0,0,1,96,0,0,97,61,0,0,2,95,2,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,3,128,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,159,2,48,0,57,0,0,2,63,2,32,1,151,0,0,0,64,0,32,4,63,0,0,0,31,2,48,1,143,0,0,0,5,4,48,2,114,0,0,0,60,0,0,97,61,0,0,0,0,5,0,0,25,0,0,0,5,6,80,2,16,0,0,0,0,7,97,3,79,0,0,0,0,7,7,4,59,0,0,0,128,6,96,0,57,0,0,0,0,0,118,4,53,0,0,0,1,5,80,0,57,0,0,0,0,6,69,0,75,0,0,0,52,0,0,65,61,0,0,0,0,5,2,0,75,0,0,0,75,0,0,97,61,0,0,0,5,4,64,2,16,0,0,0,0,1,65,3,79,0,0,0,3,2,32,2,16,0,0,0,128,4,64,0,57,0,0,0,0,5,4,4,51,0,0,0,0,5,37,1,207,0,0,0,0,5,37,2,47,0,0,0,0,1,1,4,59,0,0,1,0,2,32,0,137,0,0,0,0,1,33,2,47,0,0,0,0,1,33,1,207,0,0,0,0,1,81,1,159,0,0,0,0,0,20,4,53,0,0,0,32,1,48,0,140,0,0,0,80,0,0,65,61,0,0,0,128,4,0,4,61,0,0,2,64,1,64,0,156,0,0,0,108,0,0,161,61,0,0,0,0,1,0,0,25,0,0,8,243,0,1,4,48,0,0,2,74,5,32,0,156,0,0,0,134,0,0,161,61,0,0,2,75,5,32,0,156,0,0,0,171,0,0,33,61,0,0,2,79,4,32,0,156,0,0,1,103,0,0,97,61,0,0,2,80,4,32,0,156,0,0,1,119,0,0,97,61,0,0,2,81,2,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,3,171,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,1,4,0,75,0,0,0,199,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,71,2,0,0,65,0,0,0,0,0,33,4,53,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,2,96,4,32,0,156,0,0,1,6,0,0,161,61,0,0,2,97,4,32,0,156,0,0,1,135,0,0,97,61,0,0,2,98,1,32,0,156,0,0,1,156,0,0,97,61,0,0,2,99,1,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,1,0,4,22,0,0,0,0,1,1,0,75,0,0,0,80,0,0,193,61,0,0,0,0,1,3,0,25,8,241,8,90,0,0,4,15,8,241,8,170,0,0,4,15,0,0,1,162,0,0,1,61,0,0,2,82,4,32,0,156,0,0,1,60,0,0,161,61,0,0,2,83,4,32,0,156,0,0,1,173,0,0,97,61,0,0,2,84,4,32,0,156,0,0,1,210,0,0,97,61,0,0,2,85,2,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,2,149,0,0,193,61,0,0,0,111,0,0,1,61,0,0,2,90,4,32,0,156,0,0,1,226,0,0,97,61,0,0,2,91,1,32,0,156,0,0,2,19,0,0,97,61,0,0,2,92,1,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,1,0,4,22,0,0,0,0,1,1,0,75,0,0,0,80,0,0,193,61,0,0,0,0,1,3,0,25,8,241,8,90,0,0,4,15,8,241,8,140,0,0,4,15,0,0,1,162,0,0,1,61,0,0,2,76,5,32,0,156,0,0,2,30,0,0,97,61,0,0,2,77,5,32,0,156,0,0,2,46,0,0,97,61,0,0,2,78,2,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,0,2,0,4,17,0,0,2,64,1,32,1,152,0,0,3,213,0,0,193,61,0,0,2,71,1,0,0,65,0,0,0,0,0,20,4,53,0,0,2,62,1,0,0,65,0,0,2,62,2,64,0,156,0,0,0,0,4,1,128,25,0,0,0,64,1,64,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,0,0,0,64,4,53,0,0,0,2,1,0,0,57,0,3,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,0,4,0,0,0,4,0,29,8,241,8,236,0,0,4,15,0,0,0,4,3,0,0,41,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,2,138,0,0,193,61,0,0,0,0,0,48,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,4,6,0,0,41,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,0,0,5,0,4,17,0,0,2,69,4,0,0,65,8,241,8,231,0,0,4,15,0,0,0,1,1,32,1,144,0,0,0,80,0,0,97,61,0,0,0,32,1,0,0,57,0,0,1,0,0,16,4,67,0,0,1,32,0,0,4,67,0,0,2,70,1,0,0,65,0,0,8,242,0,1,4,46,0,0,2,100,4,32,0,156,0,0,2,62,0,0,97,61,0,0,2,101,2,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,0,2,0,4,17,0,0,2,64,1,32,1,152,0,0,2,60,0,0,97,61,0,3,0,0,0,2,0,29,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,66,0,0,97,61,0,0,0,0,1,0,4,26,0,0,2,64,2,16,1,152,0,0,5,161,0,0,193,61,0,0,0,4,6,0,0,41,0,0,0,0,2,6,0,75,0,0,1,207,0,0,97,61,0,0,2,119,1,16,1,151,0,0,0,0,1,97,1,159,0,0,0,0,0,16,4,27,0,0,0,64,1,0,4,61,0,0,2,62,2,0,0,65,0,0,0,0,3,0,4,20,0,0,2,62,4,48,0,156,0,0,0,0,3,2,128,25,0,0,2,62,4,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,6,0,0,0,1,61,0,0,2,86,4,32,0,156,0,0,2,122,0,0,97,61,0,0,2,87,2,32,0,156,0,0,0,80,0,0,193,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,2,191,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,3,0,4,17,0,0,2,64,2,48,1,152,0,0,3,239,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,1,0,4,22,0,0,0,0,1,1,0,75,0,0,0,80,0,0,193,61,0,0,0,0,1,3,0,25,8,241,8,90,0,0,4,15,8,241,8,200,0,0,4,15,0,0,1,162,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,4,7,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,3,0,4,17,0,0,2,64,2,48,1,152,0,0,2,233,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,0,4,0,4,26,0,0,2,64,1,64,1,151,0,0,0,0,3,0,4,17,0,0,0,0,1,49,0,75,0,0,3,0,0,0,193,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,4,69,0,0,193,61,0,0,2,122,1,0,0,65,0,0,3,1,0,0,1,61,0,0,0,0,1,0,4,22,0,0,0,0,1,1,0,75,0,0,0,80,0,0,193,61,0,0,0,0,1,3,0,25,8,241,8,90,0,0,4,15,8,241,8,110,0,0,4,15,0,0,0,0,1,1,0,75,0,0,0,0,1,0,0,25,0,0,0,1,1,0,192,57,0,0,0,64,2,0,4,61,0,0,0,0,0,18,4,53,0,0,2,62,1,0,0,65,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,64,1,32,2,16,0,0,2,105,1,16,1,199,0,0,8,242,0,1,4,46,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,0,1,0,4,17,0,0,2,64,1,16,1,152,0,0,2,60,0,0,97,61,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,66,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,5,164,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,122,2,0,0,65,0,0,0,112,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,3,4,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,2,60,0,0,97,61,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,1,162,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,143,0,0,1,162,0,0,1,61,0,0,0,0,1,0,4,22,0,0,0,0,1,1,0,75,0,0,0,80,0,0,193,61,0,0,0,0,1,3,0,25,8,241,8,90,0,0,4,15,0,0,0,0,2,0,4,26,0,0,0,0,1,18,1,63,0,0,2,64,1,16,1,152,0,0,0,0,1,0,0,25,0,0,0,1,1,0,96,57,0,0,1,165,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,3,0,4,17,0,0,2,64,2,48,1,152,0,0,4,48,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,3,46,0,0,193,61,0,0,2,71,1,0,0,65,0,0,3,1,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,0,111,0,0,97,61,0,3,0,0,0,2,0,29,0,2,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,1,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,2,115,0,0,193,61,0,0,0,2,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,3,1,32,0,108,0,0,4,99,0,0,97,61,0,0,0,0,1,2,0,75,0,0,6,103,0,0,193,61,0,0,0,64,1,0,4,61,0,0,0,111,0,0,1,61,0,0,0,0,2,0,4,22,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,0,4,2,48,0,138,0,0,0,32,2,32,0,140,0,0,0,80,0,0,65,61,0,0,0,4,1,16,3,112,0,0,0,0,1,1,4,59,0,4,0,0,0,1,0,29,0,0,2,64,1,16,0,156,0,0,0,80,0,0,33,61,0,0,0,128,1,0,0,57,0,0,0,0,2,0,4,17,0,0,2,64,3,32,1,152,0,0,3,85,0,0,193,61,0,0,0,111,0,0,1,61,0,0,0,64,1,0,4,61,0,0,2,66,2,0,0,65,0,0,0,0,0,33,4,53,0,0,0,4,2,16,0,57,0,0,0,0,0,50,4,53,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,2,67,1,16,1,199,0,0,8,243,0,1,4,48,0,2,0,0,0,2,0,29,0,3,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,2,186,0,0,193,61,0,0,0,3,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,4,107,0,0,193,61,0,0,0,64,1,0,4,61,0,0,0,157,0,0,1,61,0,2,0,0,0,2,0,29,0,3,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,2,228,0,0,193,61,0,0,0,3,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,4,126,0,0,193,61,0,0,0,64,1,0,4,61,0,0,1,79,0,0,1,61,0,3,0,0,0,3,0,29,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,66,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,5,191,0,0,193,61,0,0,0,64,1,0,4,61,0,0,1,134,0,0,1,61,0,0,2,117,1,0,0,65,0,0,0,128,0,16,4,63,0,0,2,118,1,0,0,65,0,0,8,243,0,1,4,48,0,2,0,0,0,2,0,29,0,3,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,3,41,0,0,193,61,0,0,0,3,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,4,179,0,0,193,61,0,0,0,64,1,0,4,61,0,0,1,225,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,0,0,1,0,0,25,0,0,3,83,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,0,0,1,0,0,25,0,0,0,1,1,0,192,57,0,0,0,1,1,16,1,143,0,0,1,165,0,0,1,61,0,1,0,0,0,2,0,29,0,3,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,2,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,3,123,0,0,193,61,0,0,0,3,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,4,232,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,137,0,0,1,61,0,1,0,0,0,2,0,29,0,3,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,2,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,3,166,0,0,193,61,0,0,0,3,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,5,29,0,0,193,61,0,0,0,64,1,0,4,61,0,0,0,41,0,0,1,61,0,2,0,0,0,2,0,29,0,3,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,3,208,0,0,193,61,0,0,0,3,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,45,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,5,138,0,0,193,61,0,0,0,64,1,0,4,61,0,0,0,107,0,0,1,61,0,3,0,0,0,2,0,29,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,57,0,2,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,66,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,3,1,32,0,108,0,0,4,99,0,0,97,61,0,0,0,0,1,2,0,75,0,0,6,172,0,0,193,61,0,0,0,64,4,0,4,61,0,0,0,191,0,0,1,61,0,2,0,0,0,3,0,29,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,57,0,3,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,66,0,0,97,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,6,8,0,0,193,61,0,0,0,64,1,0,4,61,0,0,1,95,0,0,1,61,0,3,0,0,0,2,0,29,0,2,0,0,0,3,0,29,0,0,0,0,0,48,4,53,0,0,0,2,1,0,0,57,0,1,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,96,0,0,193,61,0,0,0,2,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,96,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,126,2,0,0,65,0,0,0,112,0,0,1,61,0,3,0,0,0,3,0,29,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,4,102,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,124,2,0,0,65,0,0,0,112,0,0,1,61,0,2,0,0,0,4,0,29,0,3,0,0,0,3,0,29,0,0,2,110,1,0,0,65,0,0,0,0,0,16,4,57,0,0,0,4,0,32,4,67,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,111,1,16,1,199,0,0,128,2,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,5,190,0,0,97,61,0,0,0,64,2,0,4,61,0,0,0,0,1,1,4,59,0,0,2,62,1,16,1,152,0,0,5,244,0,0,193,61,0,0,2,121,1,0,0,65,0,0,0,0,0,18,4,53,0,0,2,62,1,0,0,65,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,64,1,32,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,0,4,2,0,0,41,0,0,0,3,1,32,0,108,0,0,5,157,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,125,2,0,0,65,0,0,0,112,0,0,1,61,0,0,0,4,2,0,0,41,0,0,0,0,1,2,0,75,0,0,6,84,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,45,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,1,1,0,0,57,0,3,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,193,0,0,193,61,0,0,6,189,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,3,1,0,0,57,0,3,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,227,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,116,4,0,0,65,0,0,7,7,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,1,1,0,0,57,0,3,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,228,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,103,4,0,0,65,0,0,7,7,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,229,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,69,4,0,0,65,0,0,0,1,5,0,0,41,0,0,7,49,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,192,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,3,1,0,0,0,0,146,0,0,0,3,2,32,1,127,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,69,4,0,0,65,0,0,0,1,5,0,0,41,0,0,0,4,6,0,0,41,8,241,8,231,0,0,4,15,0,0,0,1,1,32,1,144,0,0,0,80,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,2,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,192,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,0,3,2,32,1,127,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,103,4,0,0,65,0,0,5,27,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,3,1,0,0,57,0,3,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,230,0,0,193,61,0,0,6,189,0,0,1,61,0,0,0,0,1,2,0,75,0,0,6,154,0,0,193,61,0,0,0,64,1,0,4,61,0,0,1,118,0,0,1,61,0,0,0,64,1,0,4,61,0,0,2,123,2,0,0,65,0,0,0,112,0,0,1,61,0,0,2,110,1,0,0,65,0,0,0,0,0,16,4,57,0,0,0,4,0,32,4,67,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,111,1,16,1,199,0,0,128,2,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,5,190,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,0,75,0,0,0,80,0,0,97,61,0,0,0,64,2,0,4,61,0,0,2,112,1,0,0,65,0,3,0,0,0,2,0,29,0,0,0,0,0,18,4,53,0,0,0,0,1,0,4,20,0,0,0,4,2,0,0,41,0,0,0,4,2,32,0,140,0,0,7,149,0,0,193,61,0,0,0,0,3,0,0,49,0,0,7,167,0,0,1,61,0,0,0,0,0,1,4,47,0,0,0,0,0,32,4,53,0,0,0,4,1,0,0,57,0,2,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,7,9,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,108,4,0,0,65,0,0,7,48,0,0,1,61,0,0,0,2,1,0,0,41,0,0,2,119,1,16,1,151,0,0,0,4,6,0,0,41,0,0,0,0,1,97,1,159,0,0,0,0,0,16,4,27,0,0,2,62,1,0,0,65,0,0,0,0,3,0,4,20,0,0,2,62,4,48,0,156,0,0,0,0,3,1,128,25,0,0,2,62,4,32,0,156,0,0,0,0,2,1,128,25,0,0,0,64,1,32,2,16,0,0,0,192,2,48,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,120,4,0,0,65,0,0,0,3,5,0,0,41,0,0,7,50,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,7,9,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,3,1,0,0,0,0,146,0,0,0,3,2,32,1,127,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,69,4,0,0,65,0,0,0,2,5,0,0,41,0,0,0,4,6,0,0,41,8,241,8,231,0,0,4,15,0,0,0,1,1,32,1,144,0,0,0,80,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,1,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,8,71,0,0,193,61,0,0,6,189,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,4,1,0,0,57,0,2,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,7,15,0,0,193,61,0,0,6,189,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,189,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,102,4,0,0,65,0,0,7,48,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,7,59,0,0,193,61,0,0,6,189,0,0,1,61,0,0,0,0,0,32,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,7,195,0,0,193,61,0,0,0,64,1,0,4,61,0,0,2,104,2,0,0,65,0,0,7,11,0,0,1,61,0,0,7,9,0,0,1,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,109,4,0,0,65,0,0,7,7,0,0,1,61,0,0,7,9,0,0,1,61,0,0,7,9,0,0,1,61,0,0,7,9,0,0,1,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,3,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,107,4,0,0,65,0,0,0,2,5,0,0,41,0,0,7,49,0,0,1,61,0,0,0,64,1,0,4,61,0,0,2,66,2,0,0,65,0,0,0,0,0,33,4,53,0,0,0,4,2,16,0,57,0,0,0,4,3,0,0,41,0,0,2,142,0,0,1,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,1,0,3,0,0,138,0,0,0,0,2,50,1,111,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,106,4,0,0,65,0,0,0,3,5,0,0,41,0,0,0,4,6,0,0,41,8,241,8,231,0,0,4,15,0,0,0,1,1,32,1,144,0,0,0,80,0,0,97,61,0,0,2,62,1,0,0,65,0,0,0,64,2,0,4,61,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,64,1,32,2,16,0,0,8,242,0,1,4,46,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,2,1,0,0,0,0,146,0,0,0,2,2,32,1,127,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,102,4,0,0,65,0,0,0,3,5,0,0,41,0,0,0,4,6,0,0,41,8,241,8,231,0,0,4,15,0,0,0,1,1,32,1,144,0,0,0,80,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,1,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,6,171,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,0,2,2,32,1,127,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,109,4,0,0,65,0,0,7,48,0,0,1,61,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,3,4,0,0,41,0,0,2,62,3,64,0,156,0,0,0,0,2,4,64,25,0,0,0,64,2,32,2,16,0,0,0,192,1,16,2,16,0,0,0,0,1,33,1,159,0,0,2,72,1,16,1,199,0,0,0,4,2,0,0,41,8,241,8,231,0,0,4,15,0,0,0,0,3,1,0,25,0,0,0,96,3,48,2,112,0,0,2,62,0,48,1,157,0,0,2,62,3,48,1,151,0,0,0,1,2,32,1,144,0,0,8,36,0,0,97,61,0,0,0,31,1,48,0,57,0,0,0,32,2,0,0,138,0,0,0,0,2,33,1,111,0,0,0,3,1,32,0,41,0,0,0,0,2,33,0,75,0,0,0,0,2,0,0,25,0,0,0,1,2,0,64,57,0,0,2,113,4,16,0,156,0,0,8,30,0,0,33,61,0,0,0,1,2,32,1,144,0,0,8,30,0,0,193,61,0,0,2,114,2,0,0,65,0,0,0,0,4,3,0,75,0,0,0,0,4,0,0,25,0,0,0,0,4,2,64,25,0,0,2,114,3,48,1,151,0,0,0,0,5,3,0,75,0,0,0,0,2,0,160,25,0,0,2,114,3,48,0,156,0,0,0,0,2,4,192,25,0,0,0,64,0,16,4,63,0,0,0,0,2,2,0,75,0,0,0,80,0,0,193,61,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,8,242,0,1,4,46,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,2,1,0,0,0,0,146,0,0,0,2,2,32,1,127,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,102,4,0,0,65,0,0,0,3,5,0,0,41,0,0,0,4,6,0,0,41,8,241,8,231,0,0,4,15,0,0,0,1,1,32,1,144,0,0,0,80,0,0,97,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,1,0,0,0,1,0,29,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,144,0,0,8,89,0,0,193,61,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,0,2,2,32,1,127,0,0,0,1,2,32,1,191,0,0,0,0,0,33,4,27,0,0,0,64,1,0,4,61,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,2,62,4,0,0,65,0,0,0,0,2,4,128,25,0,0,2,62,3,16,0,156,0,0,0,0,1,4,128,25,0,0,0,64,1,16,2,16,0,0,0,192,2,32,2,16,0,0,0,0,1,18,1,159,0,0,2,68,1,16,1,199,0,0,128,13,2,0,0,57,0,0,0,3,3,0,0,57,0,0,2,103,4,0,0,65,0,0,7,48,0,0,1,61,0,0,2,115,1,0,0,65,0,0,0,0,0,16,4,53,0,0,0,65,1,0,0,57,0,0,0,4,0,16,4,63,0,0,2,67,1,0,0,65,0,0,8,243,0,1,4,48,0,0,0,64,2,0,4,61,0,0,0,31,4,48,1,143,0,0,0,5,5,48,2,114,0,0,8,49,0,0,97,61,0,0,0,0,6,0,0,25,0,0,0,5,7,96,2,16,0,0,0,0,8,114,0,25,0,0,0,0,7,113,3,79,0,0,0,0,7,7,4,59,0,0,0,0,0,120,4,53,0,0,0,1,6,96,0,57,0,0,0,0,7,86,0,75,0,0,8,41,0,0,65,61,0,0,0,0,6,4,0,75,0,0,8,64,0,0,97,61,0,0,0,5,5,80,2,16,0,0,0,0,1,81,3,79,0,0,0,0,5,82,0,25,0,0,0,3,4,64,2,16,0,0,0,0,6,5,4,51,0,0,0,0,6,70,1,207,0,0,0,0,6,70,2,47,0,0,0,0,1,1,4,59,0,0,1,0,4,64,0,137,0,0,0,0,1,65,2,47,0,0,0,0,1,65,1,207,0,0,0,0,1,97,1,159,0,0,0,0,0,21,4,53,0,0,2,62,1,0,0,65,0,0,2,62,4,32,0,156,0,0,0,0,2,1,128,25,0,0,0,64,1,32,2,16,0,0,0,96,2,48,2,16,0,0,0,0,1,33,1,159,0,0,8,243,0,1,4,48,0,0,0,4,1,0,0,41,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,41,0,0,0,32,0,16,4,63,0,0,2,62,3,0,0,65,0,0,0,0,1,0,4,20,0,0,2,62,2,16,0,156,0,0,0,0,1,3,128,25,0,0,0,192,1,16,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,0,80,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,2,1,4,26,0,0,0,3,3,0,0,41,0,0,6,210,0,0,1,61,0,0,7,9,0,0,1,61,0,0,0,4,1,16,0,138,0,0,2,114,2,0,0,65,0,0,0,31,3,16,0,140,0,0,0,0,3,0,0,25,0,0,0,0,3,2,32,25,0,0,2,114,1,16,1,151,0,0,0,0,4,1,0,75,0,0,0,0,2,0,128,25,0,0,2,114,1,16,0,156,0,0,0,0,2,3,192,25,0,0,0,0,1,2,0,75,0,0,8,108,0,0,97,61,0,0,0,4,1,0,0,57,0,0,0,1,1,16,3,103,0,0,0,0,1,1,4,59,0,0,2,64,2,16,0,156,0,0,8,108,0,0,33,61,0,0,0,0,0,1,4,45,0,0,0,0,1,0,0,25,0,0,8,243,0,1,4,48,0,0,2,64,1,16,1,152,0,0,8,129,0,0,97,61,0,0,0,0,0,16,4,53,0,0,0,2,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,8,138,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,143,0,0,0,0,0,1,4,45,0,0,0,64,1,0,4,61,0,0,2,71,2,0,0,65,0,0,0,0,0,33,4,53,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,0,0,1,0,0,25,0,0,8,243,0,1,4,48,0,0,2,64,1,16,1,152,0,0,8,159,0,0,97,61,0,0,0,0,0,16,4,53,0,0,0,1,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,8,168,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,143,0,0,0,0,0,1,4,45,0,0,0,64,1,0,4,61,0,0,2,71,2,0,0,65,0,0,0,0,0,33,4,53,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,0,0,1,0,0,25,0,0,8,243,0,1,4,48,0,0,2,64,1,16,1,152,0,0,8,189,0,0,97,61,0,0,0,0,0,16,4,53,0,0,0,4,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,8,198,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,143,0,0,0,0,0,1,4,45,0,0,0,64,1,0,4,61,0,0,2,71,2,0,0,65,0,0,0,0,0,33,4,53,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,0,0,1,0,0,25,0,0,8,243,0,1,4,48,0,0,2,64,1,16,1,152,0,0,8,219,0,0,97,61,0,0,0,0,0,16,4,53,0,0,0,3,1,0,0,57,0,0,0,32,0,16,4,63,0,0,2,62,1,0,0,65,0,0,0,0,2,0,4,20,0,0,2,62,3,32,0,156,0,0,0,0,2,1,128,25,0,0,0,192,1,32,2,16,0,0,2,65,1,16,1,199,0,0,128,16,2,0,0,57,8,241,8,236,0,0,4,15,0,0,0,1,2,32,1,144,0,0,8,228,0,0,97,61,0,0,0,0,1,1,4,59,0,0,0,0,1,1,4,26,0,0,0,255,1,16,1,143,0,0,0,0,0,1,4,45,0,0,0,64,1,0,4,61,0,0,2,71,2,0,0,65,0,0,0,0,0,33,4,53,0,0,2,62,2,0,0,65,0,0,2,62,3,16,0,156,0,0,0,0,1,2,128,25,0,0,0,64,1,16,2,16,0,0,2,72,1,16,1,199,0,0,8,243,0,1,4,48,0,0,0,0,1,0,0,25,0,0,8,243,0,1,4,48,0,0,0,0,0,1,4,47,0,0,8,234,0,33,4,33,0,0,0,1,2,0,0,57,0,0,0,0,0,1,4,45,0,0,0,0,2,0,0,25,0,0,0,0,0,1,4,45,0,0,8,239,0,33,4,35,0,0,0,1,2,0,0,57,0,0,0,0,0,1,4,45,0,0,0,0,2,0,0,25,0,0,0,0,0,1,4,45,0,0,8,241,0,0,4,50,0,0,8,242,0,1,4,46,0,0,8,243,0,1,4,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,255,255,255,224,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,57,186,97,138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,63,73,60,119,44,140,40,63,209,36,67,44,45,15,83,154,179,67,250,160,66,88,254,136,229,41,18,211,107,16,43,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,1,0,0,0,0,0,0,0,0,0,113,90,22,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,72,2,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,173,41,173,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,21,30,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,21,30,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,218,29,235,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,242,212,145,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,173,41,173,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,173,173,242,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,216,224,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,108,212,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,108,212,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,112,215,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,138,88,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,72,2,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,190,117,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,75,168,104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,114,76,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,114,76,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,143,106,206,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,112,247,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,75,168,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,205,207,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,252,169,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,104,163,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,104,163,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,215,128,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,203,50,183,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,133,245,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,19,13,251,219,157,93,49,50,13,175,91,199,24,29,86,91,109,164,209,46,48,240,244,213,170,50,74,153,36,38,193,74,29,25,206,7,128,220,24,63,235,14,79,151,20,205,128,43,60,10,33,137,75,124,203,65,114,201,146,86,157,42,203,93,69,249,28,200,71,75,175,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,239,111,203,123,114,20,160,115,242,3,110,52,202,198,152,98,148,25,63,3,82,240,123,198,151,11,123,82,14,158,151,117,172,47,100,134,108,181,43,133,109,237,111,235,136,138,246,245,244,127,98,177,174,227,25,79,197,31,248,100,185,223,221,27,205,165,247,78,52,164,248,12,222,72,71,12,150,145,72,204,92,75,192,23,150,86,140,147,220,226,168,151,21,177,174,162,23,215,240,68,212,126,79,174,23,1,248,98,102,208,166,116,219,63,121,38,113,189,27,151,74,206,119,160,154,241,200,39,24,6,170,24,150,187,242,101,104,232,132,167,55,75,65,224,2,80,9,98,202,186,106,21,2,58,141,144,232,80,139,131,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,133,53,165,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,72,123,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,105,116,85,152,14,181,155,148,75,132,56,76,1,47,166,179,42,51,100,40,116,20,32,27,61,203,234,122,205,175,99,251,211,37,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,128,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,94,62,32,134,177,97,190,18,176,44,196,216,76,157,49,29,48,221,245,124,70,157,156,4,159,222,113,3,151,11,173,63,13,163,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,245,120,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,239,26,246,183,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,42,117,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,162,100,250,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,72,8,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,19,120,100,216,221,153,165,17,198,71,110,0,145,151,164,155,252,54,26,123,181,241,140,138,17,155,183,18,24,151,62],"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BaseOperatorsAdminRemoveSelf","type":"error"},{"inputs":[],"name":"BaseOperatorsCallerNotAdmin","type":"error"},{"inputs":[],"name":"BaseOperatorsCallerNotAdminOrRelay","type":"error"},{"inputs":[],"name":"BaseOperatorsCallerNotMultisig","type":"error"},{"inputs":[],"name":"BaseOperatorsMultisigAlreadyAssigned","type":"error"},{"inputs":[],"name":"BaseOperatorsMultisigNotContract","type":"error"},{"inputs":[],"name":"BaseOperatorsZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"RolesAccountAlreadyHasRole","type":"error"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"RolesAccountDoesNotHaveRole","type":"error"},{"inputs":[],"name":"RolesAccountIsZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"multisig","type":"address"}],"name":"MultisigChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OperatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"relay","type":"address"}],"name":"RelayAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"relay","type":"address"}],"name":"RelayRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SystemAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SystemRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"addMultisig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addOperatorAndAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addRelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addSystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"changeMultisig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"changeToAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"changeToOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"confirmFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"isMultisig","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isOperatorAndAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isOperatorOrAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isRelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isSystem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeOperatorAndAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeRelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeSystem","outputs":[],"stateMutability":"nonpayable","type":"function"}]},"verifiedAt":"2024-03-01T15:43:40.639364383Z"}